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.