Agregar búsqueda de texto completo de Elasticsearch a Nextcloud

Para buscar dentro del contenido de archivos en Nextcloud, instale el marco de búsqueda de texto completo, su aplicación de plataforma Elasticsearch y el proveedor de archivos; luego conecte las aplicaciones a un servidor Elasticsearch 8 compatible y cree el índice. Esto añade texto de documentos con capacidad de búsqueda, pero también añade un servicio independiente para su seguridad, monitorización y mantenimiento. El archivo README del conector actual identifica Elasticsearch 8 como su versión principal compatible, por lo que verifique la compatibilidad con la versión de la aplicación instalada antes de seleccionar una versión específica de Elasticsearch.

Elige la configuración que mejor se adapte a tu servidor.

Elasticsearch ayuda a los usuarios a encontrar palabras dentro de los documentos, más allá de los nombres de archivo y los metadatos básicos. La contrapartida es un servicio adicional que requiere seguridad y mantenimiento, además del uso de memoria, disco y CPU durante la indexación. Una nube pequeña podría no justificar este costo adicional; sin embargo, un equipo que maneja grandes volúmenes de documentos podría considerar que la búsqueda de contenido vale la pena.

La integración se compone de tres aplicaciones: la búsqueda de texto completo coordina el proveedor y la plataforma, Elasticsearch conecta el marco de trabajo con el motor y Files proporciona el contenido de los archivos. Solo se puede seleccionar una aplicación de plataforma a la vez. Consulte el archivo README del marco de trabajo y el archivo README del proveedor de Files .

Estos ejemplos de Linux utilizan rutas y www-datacuentas de Debian o Ubuntu. Ajuste las rutas y los usuarios de servicio para contenedores u otras distribuciones.

1. Confirme la compatibilidad y prepare Elasticsearch.

Antes de instalar Elasticsearch, compruebe las versiones de Nextcloud y de la aplicación. El archivo README del conector indica que, a partir de la versión 26.0.0 de la aplicación, es compatible con Elasticsearch 8. No dé por sentado que Elasticsearch 9 es compatible solo porque sea más reciente; consulte el archivo README del conector y la wiki de instalación para su versión.

Instale Elasticsearch siguiendo las instrucciones de Elastic para su sistema operativo y la versión principal compatible. El paquete Debian de Elastic incluye OpenJDK, por lo que normalmente no se requiere una instalación de Java por separado. Consulte la documentación de instalación del paquete Debian de Elastic . Mantenga Elasticsearch accesible solo desde el host de Nextcloud o la red privada de la aplicación, a menos que su arquitectura requiera lo contrario. Elasticsearch 8 habilita funciones de seguridad durante la configuración del paquete; mantenga la autenticación y TLS para implementaciones en red y nunca exponga un punto final de búsqueda no autenticado a Internet.

Una vez iniciado el servicio, pruebe su punto final localmente utilizando el esquema y las credenciales establecidas durante la instalación. Para una instancia local segura, la solicitud podría ser similar a esta curl --cacert /path/to/http_ca.crt -u elastic https://localhost:9200: introduzca la contraseña cuando se le solicite, en lugar de guardarla en el historial de la consola. Utilice el certificado CA generado para su instalación, no la ruta de marcador de posición. Una respuesta correcta debería identificar el nodo y la versión de Elasticsearch. Si esta comprobación falla, corrija el servicio, la confianza del certificado o las credenciales antes de configurar Nextcloud.

2. Instala las aplicaciones de búsqueda de Nextcloud.

Utilice la página de aplicaciones de Nextcloud para instalar y habilitar la búsqueda de texto completo , la búsqueda de texto completo en la plataforma Elasticsearch y la búsqueda de texto completo en archivos . También puede utilizar occla herramienta de administración de línea de comandos de Nextcloud desde el directorio de instalación de Nextcloud. En una instalación de Debian o Ubuntu, el patrón es:

cd /var/www/nextcloud
sudo -E -u www-data php occ app:install fulltextsearch
sudo -E -u www-data php occ app:install fulltextsearch_elasticsearch
sudo -E -u www-data php occ app:install files_fulltextsearch

Usa la cuenta HTTP de tu distribución y sigue las instrucciones de occ de Nextcloud . Si una aplicación está instalada pero deshabilitada, usa occ app:enable APP_ID. Mantén las tres aplicaciones compatibles con tu versión de Nextcloud.

3. Configurar la plataforma y el proveedor de archivos.

Abra la configuración de administrador y seleccione la sección de búsqueda de texto completo. Elija Elasticsearch como plataforma de búsqueda e ingrese la dirección del servlet de Elasticsearch, un nombre de índice y las credenciales de conexión o la configuración del certificado necesarias que exponga la versión del conector instalada. La dirección debe ser accesible desde el proceso del servidor Nextcloud. Si ambos servicios se ejecutan en la misma red de contenedores, localhostgeneralmente apunta al contenedor de Nextcloud, no al de Elasticsearch; en ese caso, utilice el nombre del servicio de Elasticsearch o el nombre de host interno.

Utilice un nombre de índice en minúsculas, como por ejemplo nextcloud; asigne un índice independiente a cada nube si comparten un servicio. Los nombres independientes facilitan la administración, pero no reemplazan los controles de acceso. Mantenga las credenciales fuera de las capturas de pantalla, los tickets y el historial de la consola.

En la configuración del proveedor de archivos, habilite la indexación para los tipos de archivo y el rango de tamaño que sus usuarios necesiten. El contenido que se puede buscar depende del proveedor y de la compatibilidad con la extracción; indexar solo los nombres de archivo no hará que el texto dentro de un PDF sea buscable. El procesador de archivos adjuntos de Elasticsearch extrae texto de formatos de archivo comunes como PDF y documentos de Office, pero se aplican límites de extracción y formatos compatibles. En Elasticsearch 8, la funcionalidad de ingesta de archivos adjuntos está incluida en la distribución; consulte la referencia del procesador de archivos adjuntos de Elastic . Para escaneos o imágenes, la extracción de texto de documentos ordinaria no es OCR: agregue un proveedor de OCR solo si necesita esa capacidad y ha verificado sus requisitos. Mantenga límites de tamaño de archivo conservadores en un servidor con recursos limitados.

4. Crea el índice y mantenlo actualizado.

Ejecuta una comprobación de estado antes de la indexación. Desde el directorio de Nextcloud, usa:

sudo -E -u www-data php occ fulltextsearch:check

Resuelva primero los errores de conexión, plataforma o proveedor que se hayan reportado. Luego, inicie el índice inicial:

sudo -E -u www-data php occ fulltextsearch:index

La primera ejecución recorre los archivos de los usuarios seleccionados y puede tardar bastante. Mantenga la sesión SSH estable o ejecute el comando en un multiplexor de terminal como tmux, y supervise la CPU, la memoria y el espacio en disco. La indexación copia el texto extraído y los metadatos de los archivos en Elasticsearch; no sustituye a las copias de seguridad de Nextcloud. Planifique la protección del índice de búsqueda y sus credenciales, y recuerde que eliminar o reconstruir el índice puede requerir otra pasada de indexación completa.

Para actualizaciones continuas, asegúrese de que las tareas en segundo plano de Nextcloud se ejecuten de forma fiable. El proyecto también documenta un fulltextsearch:liveproceso de trabajo para la indexación casi inmediata; esto puede reducir el tiempo de actualización, pero añade un servicio que supervisar. Comience con tareas programadas y añada el proceso de trabajo solo si el tiempo de espera es un factor importante. Adapte el ejemplo del servicio de origen a sus rutas, cuenta y orden de inicio de la base de datos.

Verifica el resultado y elige tu opción de compensación.

Una vez finalizada la indexación, busque una frase distintiva que aparezca en un pequeño documento de prueba, pero no en su nombre de archivo. Confirme que Nextcloud devuelve el archivo esperado para un usuario con permisos de lectura. A continuación, cargue o edite un segundo documento de prueba, permita que se ejecute la tarea en segundo plano o el proceso en vivo configurados y repita la búsqueda. Una comprobación de estado exitosa por sí sola no demuestra que el contenido del archivo se haya indexado correctamente.

Si solo aparecen los nombres de los archivos, verifique el proveedor de archivos, la configuración de tipo y tamaño de archivo, la compatibilidad con la extracción y los registros de indexación. En caso de fallos de conexión, compruebe el punto final de la red de Nextcloud, la confianza TLS y las credenciales.

Elija Elasticsearch cuando la búsqueda de contenido sea lo suficientemente valiosa como para justificar el mantenimiento de otro servicio con estado. Si la búsqueda por nombre de archivo es suficiente, omita ese costo adicional de recursos y seguridad. Antes de actualizar a producción, verifique la combinación exacta de Nextcloud, la aplicación y Elasticsearch; esta configuración no garantiza la compatibilidad con todos los métodos de implementación.

Dejar un comentario

Agregar búsqueda de texto completo de Elasticsearch a Nextcloud

Conecta la búsqueda de archivos de Nextcloud con Elasticsearch, indexa el contenido de los documentos y elige una configuración que se adapte a las necesidades de tu servidor y de seguridad.

Establece una política de caducidad fiable para los archivos eliminados de Nextcloud.

Establece una política de caducidad fiable para los archivos eliminados de Nextcloud.

Configure Nextcloud para que elimine los archivos borrados después de un período de retención definido, programe tareas en segundo plano de forma fiable y evite comandos que vacíen la papelera de todos los usuarios.

Borrar la advertencia de Nextcloud sobre índices de base de datos faltantes

Borrar la advertencia de Nextcloud sobre índices de base de datos faltantes

Ejecuta la reparación de OCC de Nextcloud de forma segura, previsualiza los cambios en la base de datos y comprueba por qué persiste la advertencia.

Aumentar el límite de subida web de Nextcloud por encima de 2 GB

Aumentar el límite de subida web de Nextcloud por encima de 2 GB

Permita la carga de archivos más grandes en el navegador Nextcloud alineando la configuración de PHP, Nginx o Apache, el almacenamiento temporal y el tiempo de espera, y verifique qué límite está bloqueando el archivo.

Borre la advertencia de memoria PHP de Nextcloud en el servidor web.

Establezca el límite de memoria PHP que Nextcloud utiliza realmente, reinicie el servicio correcto y confirme la configuración de 512 MB en la Vista general de administración.

Conecta un bucket compatible con S3 al almacenamiento externo de Nextcloud.

Monta un bucket de almacenamiento de objetos compatible en Nextcloud utilizando su backend S3, con el punto final, las credenciales, el ámbito de acceso y los pasos de verificación correctos.

Traslada tus datos de Nextcloud a una unidad externa sin perder espacio de almacenamiento.

Traslada tus datos de Nextcloud a una unidad externa sin perder espacio de almacenamiento.

Traslada de forma segura un directorio de datos de Linux Nextcloud a una unidad externa utilizando un montaje UUID persistente, el modo de mantenimiento, una copia verificada y el enlace simbólico de la ruta original.

Error de la base de datos de Nextcloud después de una actualización: qué comprobar primero

Restaure el acceso a Nextcloud después de una actualización diagnosticando errores SQL, comprobando la conectividad de la base de datos y completando de forma segura las migraciones interrumpidas.

Restablecer una contraseña de administrador de Nextcloud perdida con OCC

Utilice el comando OCC de Nextcloud para restablecer la contraseña de administrador desde la consola del servidor, con instrucciones sobre nombres de usuario, permisos y proveedores de inicio de sesión externos.

Agregue el encabezado HSTS en el punto final HTTPS que sirve a Nextcloud.

Elimine la advertencia HSTS de Nextcloud configurando el encabezado en Apache, NGINX o su proxy TLS, y luego verifique la respuesta HTTPS pública de forma segura.