La integración de Nextcloud con Elasticsearch sigue activa en 2026, pero conviene verificar un detalle de compatibilidad antes de comenzar: la aplicación actual de búsqueda de texto completo en la plataforma Elasticsearch es compatible con Elasticsearch 8, no con Elasticsearch 9. El repositorio oficial del proyecto indica que las versiones 26.0.0 y posteriores solo son compatibles con Elasticsearch 8. Además, Nextcloud 35 ahora cuenta con una versión 35.0.0 de la plataforma Elasticsearch, publicada el 18 de septiembre de 2026. Si va a actualizar un servidor existente, verifique que la versión de la aplicación coincida con su versión principal de Nextcloud antes de modificar el índice de búsqueda.
Esta guía muestra una configuración práctica para indexar el contenido de archivos en Nextcloud con Elasticsearch 8. Se centra en la pila estándar de tres aplicaciones: el marco de búsqueda de texto completo, el conector de la plataforma Elasticsearch y el proveedor de archivos. Los comandos utilizan la interfaz de línea de comandos de Nextcloud (Nextcloud occCLI) porque es más fácil de validar y automatizar que depender únicamente de la interfaz web.
Referencias oficiales: Búsqueda de texto completo de Nextcloud - Aplicación de la plataforma Elasticsearch , Repositorio de la plataforma Elasticsearch de Nextcloud , Marco de búsqueda de texto completo de Nextcloud , Proveedor de búsqueda de texto completo de archivos de Nextcloud y Guía de instalación de Docker de nodo único de Elastic .
Lo que realmente contiene la pila de búsqueda de texto completo de Nextcloud
La búsqueda de texto completo de Nextcloud no es una aplicación independiente. La aplicación principal de búsqueda de texto completo proporciona la infraestructura. Una aplicación de plataforma conecta dicha infraestructura con un motor de búsqueda, y una o más aplicaciones proveedoras extraen el contenido que se puede buscar. Para el contenido de archivos, el proveedor es Búsqueda de texto completo - Archivos. Elasticsearch almacena el índice resultante y responde a las consultas.
- Búsqueda de texto completo: el marco central y la capa de orquestación de búsqueda.
- Búsqueda de texto completo - Plataforma Elasticsearch: el conector que envía documentos y consultas a Elasticsearch.
- Búsqueda de texto completo - Archivos: el proveedor que expone los archivos de los usuarios al marco de trabajo para su indexación.
- Elasticsearch 8: el motor de búsqueda externo que almacena el índice.
La separación es importante al solucionar problemas. Un punto final HTTP de Elasticsearch que funcione no demuestra que Nextcloud pueda extraer el contenido de los archivos, y un proveedor de archivos habilitado no demuestra que el conector de la plataforma pueda acceder a Elasticsearch. El fulltextsearch:testcomando integrado es útil porque verifica la cadena configurada en lugar de solo un componente.
Antes de empezar
Necesitas acceso de administrador a Nextcloud, acceso a la línea de comandos del servidor o contenedor que ejecuta Nextcloud y una instancia de Elasticsearch 8 accesible desde ese entorno. Los ejemplos que se muestran a continuación asumen un servidor Linux y utilizan Docker para Elasticsearch, ya que esto mantiene el servicio de búsqueda aislado. Si ya ejecutas un clúster de Elasticsearch 8 gestionado o dedicado, utiliza su punto final HTTPS existente.
Para entornos de producción, no exponga el puerto 9200 directamente a Internet. La documentación actual de Elastic sobre Docker recomienda vincular el puerto HTTP a una interfaz controlada y mantener las funciones de seguridad. Elastic también documenta los requisitos del host, como los necesarios vm.max_map_countpara implementaciones de Docker en producción. Considere cualquier comando de nodo único con la seguridad deshabilitada como un acceso directo para un laboratorio local, no como una plantilla para producción.
Paso 1: Instale las tres aplicaciones de Nextcloud necesarias.
Desde la página de Nextcloud Apps, instale y habilite Búsqueda de texto completo , Búsqueda de texto completo - Plataforma Elasticsearch y Búsqueda de texto completo - Archivos . También puede instalarlas con occ, que suele ser más sencillo en servidores sin interfaz gráfica:
sudo -u www-data php /var/www/nextcloud/occ app:install fulltextsearch
sudo -u www-data php /var/www/nextcloud/occ app:install fulltextsearch_elasticsearch
sudo -u www-data php /var/www/nextcloud/occ app:install files_fulltextsearch
Si tus archivos de Nextcloud se encuentran en otra ubicación, ajusta la ruta a occ. En la imagen oficial de Docker de Nextcloud, la ruta suele ser /var/www/html/occ. Después de la instalación, usa occ app:listpara confirmar que las tres aplicaciones aparecen en Habilitadas.
Leyenda: La página de Nextcloud Apps con el marco de trabajo principal de texto completo, el conector de la plataforma Elasticsearch y el proveedor de archivos habilitados.
Paso 2: Inicie Elasticsearch 8 y verifique que Nextcloud pueda acceder a él.
El conector de Elasticsearch requiere Elasticsearch 8 desde la versión 26.0.0 de la aplicación Nextcloud. No utilice Elasticsearch 9 a menos que cambie la declaración oficial de compatibilidad para la versión de la aplicación que esté utilizando.
Para un laboratorio local, Elastic documenta un enfoque Docker de nodo único. Se puede iniciar una instancia de prueba mínima en una interfaz privada. En un entorno de producción, mantenga la autenticación y TLS habilitados y siga las instrucciones de instalación actuales de Elastic en lugar de deshabilitar la seguridad.
docker run --name es01 --net elastic -p 127.0.0.1:9200:9200 -it -m 6GB docker.elastic.co/elasticsearch/elasticsearch:<ELASTICSEARCH_8_VERSION>
El inicio seguro predeterminado de Elastic imprime la contraseña del usuario integrado elasticy crea certificados HTTP TLS. A continuación, puede verificar el nodo utilizando el certificado CA y las credenciales, como se describe en la guía oficial. Si Nextcloud se encuentra en otro contenedor Docker, recuerde que 127.0.0.1apunta al contenedor de Nextcloud, no al de Elasticsearch. Coloque ambos servicios en una red Docker compartida y utilice el nombre del servicio de Elasticsearch, como https://elasticsearch:9200, o bien, enrute a través de una dirección privada.
Leyenda: Vista de terminal de un servicio Elasticsearch de nodo único que se está iniciando y comprobando; para producción, mantenga la autenticación y TLS habilitados en lugar de utilizar una configuración de laboratorio no segura.
Paso 3: Configurar Nextcloud para usar Elasticsearch
Puedes configurar la plataforma en la interfaz de administración, pero el formulario de línea de comandos es preciso y reproducible. La integración All-in-One de Nextcloud configura el marco seleccionando la clase de plataforma Elasticsearch y luego pasa el nombre del host y del índice de Elasticsearch al conector.
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:configure '{"search_platform":"OCA\\FullTextSearch_Elasticsearch\\Platform\\ElasticSearchPlatform"}'
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch_elasticsearch:configure '{"elastic_host":"https://elastic:YOUR_PASSWORD@elasticsearch:9200","elastic_index":"nextcloud_index"}'
Utilice una URL de host accesible desde el proceso PHP de Nextcloud. Si su punto final de Elasticsearch utiliza una CA privada, asegúrese de que el entorno de Nextcloud confíe en dicha CA en lugar de desactivar la verificación de certificados. Evite almacenar credenciales en el historial de la consola en sistemas compartidos; utilice un método de configuración protegido adecuado para su implementación.
El nombre del índice debe estar en minúsculas y ser exclusivo de esta instancia de Nextcloud. Un nombre como este nextcloud_indexes fácil de identificar. Si varias instancias de Nextcloud comparten un clúster de Elasticsearch, asigne a cada instancia un nombre de índice único.
Leyenda: Pantalla de administración de búsqueda de texto completo con Elasticsearch seleccionado como plataforma de búsqueda y un nombre de índice específico configurado.
Paso 4: Elija qué contenido de archivo se debe indexar.
El proveedor de archivos controla qué categorías de contenido de archivos se envían para su indexación. La inicialización All-in-One de Nextcloud actualmente permite la extracción de documentos PDF y de Office con este comando:
sudo -u www-data php /var/www/nextcloud/occ files_fulltextsearch:configure '{"files_pdf":true,"files_office":true}'
Las opciones de proveedores disponibles pueden variar según la versión de la aplicación, así que revise la configuración actual antes de copiar los ajustes de un tutorial anterior. Recuerde también que la calidad de la extracción de texto depende del archivo de origen. Un PDF normal con texto incrustado es mucho más fácil de indexar que un PDF escaneado que solo contiene imágenes. La búsqueda de texto completo no garantiza automáticamente la precisión de un OCR deficiente.
Paso 5: Pruebe la configuración de búsqueda completa.
Antes de indexar una biblioteca grande, ejecute la prueba del framework:
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:test
Una prueba exitosa debería demostrar que la plataforma es accesible y que la combinación de proveedor/plataforma configurada funciona correctamente. Si falla, corrija la conexión antes de iniciar el índice inicial. Las causas típicas incluyen el uso localhostde un contenedor incorrecto, problemas de confianza en el certificado, fallos de autenticación, una versión principal de Elasticsearch incompatible o una configuración de índice que Elasticsearch rechaza.
Paso 6: Construir el índice inicial
Una vez superada la prueba, cree el índice inicial:
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index
En un servidor grande, esto puede llevar tiempo y consumir CPU, memoria, E/S de almacenamiento y memoria heap de Elasticsearch. Ejecute el primer rastreo durante un período de bajo tráfico y supervise los registros de Nextcloud y Elasticsearch. El marco también admite un formulario de restablecimiento de errores utilizado por Nextcloud All-in-One durante la configuración inicial.
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index '{"errors":"reset"}' --no-readline
No reinicie ni reconstruya repetidamente un índice en buen estado sin motivo. Para las actualizaciones, lea primero las notas de la versión de las tres aplicaciones de búsqueda y compruebe si realmente se requiere una reindexación.
Paso 7: Mantener el índice actualizado
Un índice inicial es solo una instantánea. Las nuevas cargas y ediciones requieren una indexación continua. El marco de búsqueda de texto completo incluye un fulltextsearch:livecomando para el procesamiento continuo. Si lo utiliza, ejecútelo bajo un supervisor de procesos u otro administrador de servicios para que se reinicie después de fallos o reinicios del host.
sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:live
No inicie un proceso en primer plano no administrado en una sesión SSH y asuma que la indexación continuará después de cerrar la sesión. Las implementaciones de contenedores pueden ejecutar el proceso de trabajo en vivo como un proceso supervisado dedicado; los servidores tradicionales pueden usar systemd o un supervisor. Supervise este proceso como cualquier otro servicio en segundo plano.
Paso 8: Verifique la búsqueda tanto desde la CLI como desde la interfaz de Nextcloud.
Una vez finalizado el rastreo inicial, busque una frase que aparezca dentro de un documento conocido, en lugar de solo en su nombre de archivo. Esto confirma que la extracción e indexación de contenido funcionan correctamente. Las versiones recientes de búsqueda de texto completo también admiten la búsqueda a través de occ, lo cual resulta útil para diferenciar un problema de indexación del servidor de un problema del navegador o de la búsqueda unificada.
En la interfaz web, utilice el campo de búsqueda de Nextcloud y busque una frase distintiva en un archivo PDF, DOCX o de texto que sepa que fue indexado. Si las búsquedas por nombre de archivo funcionan, pero las búsquedas en el cuerpo del documento no, revise la configuración del proveedor de archivos y el tipo de documento de origen.
Leyenda: Una prueba exitosa del marco de trabajo y un índice inicial, seguidos de una búsqueda en Nextcloud que devuelve documentos indexados.
Solución de problemas comunes
Elasticsearch funciona con curl, pero Nextcloud no puede conectarse.
Realice la prueba desde el mismo espacio de nombres de red que el proceso PHP de Nextcloud. En Docker, una solicitud exitosa del host no demuestra que el contenedor de Nextcloud pueda resolver o acceder al servicio Elasticsearch. Verifique el DNS, las redes de contenedores, las reglas del firewall, la confianza TLS y el esquema exacto en la URL configurada.
El conector informa de un problema con la versión de Elasticsearch.
Verifique la versión principal de Elasticsearch, no solo la etiqueta de la imagen que desea implementar. El repositorio oficial del conector aún indica compatibilidad con Elasticsearch 8 para la versión 26.0.0 de la aplicación y posteriores. Al momento de redactar este documento, existe una solicitud abierta para la compatibilidad con Elasticsearch 9, por lo que no se debe asumir que Elasticsearch 9 sea compatible.
La indexación consume demasiada memoria.
Supervise el montón de Elasticsearch, los límites de memoria del contenedor y la memoria del host simultáneamente. La documentación de producción de Docker de Elastic también menciona configuraciones a nivel de host, como vm.max_map_count. Si la JVM se está cerrando, aumentar solo el límite de memoria PHP de Nextcloud no resolverá el problema de Elasticsearch.
Faltan algunos archivos compartidos o externos.
El comportamiento de la búsqueda puede depender del soporte del proveedor y de la versión de la aplicación. El proyecto del proveedor de archivos continúa monitorizando los problemas relacionados con carpetas compartidas, carpetas de grupo y almacenamiento externo. Si un tipo de almacenamiento se comporta de forma diferente a los archivos locales habituales, reproduzca el problema con un ejemplo pequeño y controlado y consulte el sistema oficial de seguimiento de errores del proveedor antes de reconstruir todo el índice.
Cómo saber si la configuración está completa
Una implementación correcta presenta cuatro señales observables: Elasticsearch 8 es accesible desde Nextcloud, fulltextsearch:testse ejecuta correctamente, la inicialización fulltextsearch:indexse completa sin errores sin resolver y la búsqueda de texto dentro de un documento conocido devuelve dicho archivo para un usuario autorizado. Mantenga la privacidad del punto final del índice, preserve la seguridad de Elasticsearch en producción y actualice las tres aplicaciones de búsqueda de Nextcloud al ritmo de su lanzamiento principal de Nextcloud.
Para obtener información específica sobre la versión, consulte la lista de versiones oficial de la plataforma Nextcloud Elasticsearch y la guía oficial de Docker para producción de Elastic . Estas fuentes son el lugar más seguro para confirmar la compatibilidad y los requisitos del sistema antes de una actualización importante.