Como configurar a pesquisa de texto completo no Nextcloud usando o Elasticsearch 8

A integração do Nextcloud com o Elasticsearch ainda está ativa em 2026, mas há um detalhe de compatibilidade que vale a pena verificar antes de começar: o aplicativo atual de busca de texto completo - Plataforma Elasticsearch é compatível com o Elasticsearch 8, e não com o Elasticsearch 9. O repositório oficial do projeto afirma que as versões 26.0.0 e posteriores são compatíveis apenas com o Elasticsearch 8. Além disso, o Nextcloud 35 agora possui uma versão correspondente da plataforma Elasticsearch, a 35.0.0, publicada em 18 de setembro de 2026. Se você estiver atualizando um servidor existente, verifique a versão do aplicativo que corresponde à sua versão principal do Nextcloud antes de modificar o índice de pesquisa.

Este guia mostra uma configuração prática para indexar conteúdo de arquivos no Nextcloud com o Elasticsearch 8. Ele se concentra na pilha padrão de três aplicativos: o framework de busca de texto completo, o conector da plataforma Elasticsearch e o provedor de arquivos. Os comandos usam a occCLI do Nextcloud porque é mais fácil de validar e automatizar do que depender apenas da interface web.

Referências oficiais: Aplicativo Nextcloud Full text search - Elasticsearch Platform , Repositório da plataforma Elasticsearch do Nextcloud , Framework de busca de texto completo do Nextcloud , Provedor de busca de texto completo do Nextcloud Files e Guia de instalação do Docker em nó único da Elastic .

O que realmente contém o conjunto de ferramentas de pesquisa de texto completo do Nextcloud

A busca de texto completo do Nextcloud não é um aplicativo único. O aplicativo principal de Busca de Texto Completo fornece a estrutura. Um aplicativo de plataforma conecta essa estrutura a um mecanismo de busca, e um ou mais aplicativos provedores extraem o conteúdo pesquisável. Para conteúdo de arquivos, o provedor é o Busca de Texto Completo - Arquivos. O Elasticsearch armazena o índice resultante e responde às consultas.

  • Pesquisa de texto completo: a estrutura central e a camada de orquestração de pesquisa.
  • Pesquisa de texto completo - Plataforma Elasticsearch: o conector que envia documentos e consultas para o Elasticsearch.
  • Pesquisa de texto completo - Arquivos: o provedor que expõe os arquivos dos usuários à estrutura para indexação.
  • Elasticsearch 8: o mecanismo de busca externo que armazena o índice.

A separação é importante na resolução de problemas. Um endpoint HTTP do Elasticsearch funcionando não prova que o Nextcloud consegue extrair o conteúdo de um arquivo, e um provedor de Arquivos habilitado não prova que o conector da plataforma consegue acessar o Elasticsearch. O comando integrado fulltextsearch:testé útil porque verifica a cadeia configurada em vez de apenas um componente.

Antes de começar

Você precisa de acesso de administrador ao Nextcloud, acesso ao shell do servidor ou contêiner que executa o Nextcloud e uma instância do Elasticsearch 8 acessível a partir desse ambiente. Os exemplos abaixo pressupõem um servidor Linux e o uso do Docker para o Elasticsearch, pois ele mantém o serviço de busca isolado. Se você já utiliza um cluster Elasticsearch 8 gerenciado ou dedicado, use o endpoint HTTPS existente.

Para produção, não exponha a porta 9200 diretamente à internet pública. A documentação atual do Docker da Elastic recomenda vincular a porta HTTP a uma interface controlada e manter os recursos de segurança. A Elastic também documenta os requisitos de host para vm.max_map_countimplantações de Docker em produção. Trate qualquer comando de nó único com segurança desabilitada como um atalho para laboratório local, não como um modelo de produção.

Passo 1: Instale os três aplicativos Nextcloud necessários.

Na página de aplicativos do Nextcloud, instale e habilite a Pesquisa de texto completo , a Pesquisa de texto completo - Plataforma Elasticsearch e a Pesquisa de texto completo - Arquivos . Você também pode instalá-las com o comando occ`npm install`, o que geralmente é mais simples em servidores sem interface 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

Se os seus arquivos do Nextcloud estiverem em outro local, ajuste o caminho para occ. Na imagem oficial do Docker do Nextcloud, o caminho geralmente é /var/www/html/occ. Após a instalação, use occ app:listpara confirmar se todos os três aplicativos aparecem em Ativados.

A página de aplicativos do Nextcloud mostra as opções Pesquisa de texto completo, Pesquisa de texto completo - Plataforma Elasticsearch e Pesquisa de texto completo - Arquivos ativadas.

Legenda: A página de aplicativos do Nextcloud com a estrutura principal de texto completo, o conector da plataforma Elasticsearch e o provedor de arquivos ativados.

Passo 2: Inicie o Elasticsearch 8 e verifique se o Nextcloud consegue acessá-lo.

O conector Elasticsearch exige o Elasticsearch 8 desde a geração 26.0.0 do aplicativo Nextcloud. Não utilize o Elasticsearch 9, a menos que a declaração oficial de compatibilidade seja alterada para a versão do aplicativo que você está usando.

Para um laboratório local, a Elastic documenta uma abordagem com Docker em um único nó. Uma instância de teste mínima pode ser iniciada em uma interface privada. Em um ambiente de produção, mantenha a autenticação e o TLS habilitados e siga as orientações de instalação atuais da Elastic, em vez de desabilitar a segurança.

docker run --name es01   --net elastic   -p 127.0.0.1:9200:9200   -it -m 6GB   docker.elastic.co/elasticsearch/elasticsearch:<ELASTICSEARCH_8_VERSION>

A inicialização segura padrão do Elasticsearch exibe a senha do usuário integrado elastice cria certificados HTTP TLS. Você pode então verificar o nó usando o certificado da CA e as credenciais, conforme descrito no guia oficial. Se o Nextcloud estiver em outro contêiner Docker, lembre-se de que o 127.0.0.1caminho aponta para o próprio contêiner do Nextcloud, e não para o contêiner do Elasticsearch. Coloque ambos os serviços em uma rede Docker compartilhada e use o nome do serviço do Elasticsearch, como `<nome_do_serviço>` https://elasticsearch:9200, ou direcione a conexão por meio de um endereço privado.

Terminal Linux mostrando um contêiner Elasticsearch de nó único sendo iniciado e escutando na porta 9200.

Legenda: Visão do terminal de um serviço Elasticsearch de nó único sendo iniciado e verificado; para produção, mantenha a autenticação e o TLS habilitados em vez de usar uma configuração de laboratório não segura.

Etapa 3: Configure o Nextcloud para usar o Elasticsearch

Você pode configurar a plataforma na interface de administração, mas o formulário da CLI é preciso e reproduzível. A integração All-in-One do Nextcloud configura a estrutura selecionando a classe da plataforma Elasticsearch e, em seguida, passa o host do Elasticsearch e o nome do índice para o 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"}'

Use um URL de host acessível a partir do processo PHP do Nextcloud. Se o seu endpoint do Elasticsearch utiliza uma CA privada, certifique-se de que o ambiente Nextcloud confie nessa CA, em vez de desativar a verificação de certificado. Evite armazenar credenciais no histórico do shell em sistemas compartilhados; utilize um método de configuração protegido adequado à sua implementação.

O nome do índice deve estar em minúsculas e ser dedicado a esta instância do Nextcloud. Um nome como ` nextcloud_indexnextcloud.example.com` é fácil de identificar. Se várias instâncias do Nextcloud compartilharem um cluster Elasticsearch, atribua a cada instância um nome de índice exclusivo.

Tela de administração da pesquisa de texto completo do Nextcloud com o Elasticsearch selecionado, um endereço do Elasticsearch e o nome do índice nextcloud_index.

Legenda: Tela de administração da pesquisa de texto completo com o Elasticsearch selecionado como plataforma de pesquisa e um nome de índice dedicado configurado.

Etapa 4: Escolha qual conteúdo do arquivo deve ser indexado

O provedor de Arquivos controla quais categorias de conteúdo de arquivo são enviadas para indexação. A inicialização "Tudo em Um" do Nextcloud atualmente permite a extração de PDFs e documentos do Office com este comando:

sudo -u www-data php /var/www/nextcloud/occ files_fulltextsearch:configure '{"files_pdf":true,"files_office":true}'

As opções de provedor disponíveis podem variar de acordo com a versão do aplicativo, portanto, verifique a configuração atual antes de copiar as configurações de um tutorial antigo. Lembre-se também de que a qualidade da extração de texto depende do arquivo de origem. Um PDF normal com texto incorporado é muito mais fácil de indexar do que um PDF contendo apenas imagens digitalizadas. A pesquisa de texto completo não torna automaticamente um OCR ruim preciso.

Etapa 5: Teste a configuração completa da pesquisa

Antes de indexar uma biblioteca grande, execute o teste de estrutura:

sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:test

Um teste bem-sucedido deve demonstrar que a plataforma está acessível e que a combinação provedor/plataforma configurada pode operar. Se falhar, corrija a conexão antes de iniciar o índice inicial. As causas típicas incluem o uso localhostde um contêiner incorreto, problemas de confiança no certificado, falhas de autenticação, uma versão principal incompatível do Elasticsearch ou uma configuração de índice que o Elasticsearch rejeita.

Etapa 6: Construir o índice inicial

Após o teste ser aprovado, crie o índice inicial:

sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index

Em um servidor de grande porte, isso pode levar tempo e consumir CPU, memória, E/S de armazenamento e heap do Elasticsearch. Execute a primeira varredura durante um período de baixo tráfego e monitore os logs do Nextcloud e do Elasticsearch. O framework também oferece suporte a um formulário de redefinição de erros usado pelo Nextcloud All-in-One durante a configuração inicial.

sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:index '{"errors":"reset"}' --no-readline

Não reinicie e reconstrua repetidamente um índice íntegro sem um motivo. Para atualizações, leia primeiro as notas de versão dos três aplicativos de pesquisa e verifique se uma reindexação é realmente necessária.

Passo 7: Mantenha o índice atualizado

Um índice inicial é apenas um instantâneo. Novos uploads e edições exigem indexação contínua. A estrutura de pesquisa de texto completo inclui um fulltextsearch:livecomando para processamento contínuo. Se você o utilizar, execute-o sob um supervisor de processos ou outro gerenciador de serviços para que seja reiniciado após falhas ou reinicializações do host.

sudo -u www-data php /var/www/nextcloud/occ fulltextsearch:live

Não inicie um processo em primeiro plano não gerenciado em uma sessão SSH e assuma que a indexação continuará após o logout. Implantações em contêineres podem executar o worker ativo como um processo dedicado e supervisionado; servidores tradicionais podem usar o systemd ou um supervisor. Monitore-o como qualquer outro serviço em segundo plano.

Etapa 8: Verifique a pesquisa tanto na CLI quanto na interface do Nextcloud.

Após a conclusão da busca inicial, procure por uma frase que apareça dentro de um documento conhecido, e não apenas em seu nome de arquivo. Isso confirma que a extração e indexação de conteúdo estão funcionando. Versões recentes da busca de texto completo também suportam busca por meio de [texto incompleto] occ, o que é útil para separar um problema de indexação no servidor de um problema de navegador ou de busca unificada.

Na interface web, utilize o campo de busca do Nextcloud e procure por uma frase específica em um arquivo PDF, DOCX ou de texto que você sabe que foi indexado. Se as buscas por nome de arquivo funcionarem, mas as buscas pelo corpo do documento não, verifique as configurações do provedor de Arquivos e o tipo de documento de origem.

Terminal mostrando os comandos de teste e indexação de pesquisa de texto completo bem-sucedidos acima de um painel de pesquisa do Nextcloud que retorna documentos correspondentes.

Legenda: Teste de estrutura bem-sucedido e indexação inicial, seguidos por uma pesquisa no Nextcloud que retorna documentos indexados.

Solução de problemas em falhas comuns

O Elasticsearch funciona com o curl, mas o Nextcloud não consegue se conectar.

Faça o teste a partir do mesmo namespace de rede que o processo PHP do Nextcloud. No Docker, uma requisição bem-sucedida do host não comprova que o contêiner do Nextcloud consegue resolver ou alcançar o serviço Elasticsearch. Verifique o DNS, as redes do contêiner, as regras do firewall, a confiança TLS e o esquema exato na URL configurada.

O conector reporta um problema de versão do Elasticsearch.

Verifique a versão principal real do Elasticsearch, e não apenas a tag da imagem que você pretende implantar. O repositório oficial do conector ainda indica compatibilidade com o Elasticsearch 8 para a versão 26.0.0 e posteriores do aplicativo. No momento da redação deste documento, existe uma solicitação aberta para suporte ao Elasticsearch 9, portanto, não se deve presumir a compatibilidade com o Elasticsearch 9.

A indexação consome muita memória.

Monitore simultaneamente o heap do Elasticsearch, os limites de memória do contêiner e a memória do host. A documentação de produção do Docker da Elastic também menciona configurações de nível de host, como vm.max_map_count. Se a JVM estiver sendo encerrada, aumentar apenas o limite de memória PHP do Nextcloud não resolverá o problema no Elasticsearch.

Alguns arquivos compartilhados ou externos estão faltando.

O comportamento da busca pode depender do suporte do provedor e da versão do aplicativo. O projeto do provedor de Arquivos continua monitorando problemas relacionados a pastas compartilhadas, pastas de grupo e armazenamento externo. Se um tipo de armazenamento se comportar de maneira diferente dos arquivos locais comuns, reproduza o problema com um pequeno exemplo controlado e verifique o rastreador de problemas oficial do provedor antes de reconstruir todo o índice.

Como saber se a instalação está completa

Uma implantação saudável apresenta quatro sinais observáveis: o Elasticsearch 8 está acessível a partir do Nextcloud, fulltextsearch:testa verificação inicial fulltextsearch:indexé concluída sem erros não resolvidos e a busca por texto dentro de um documento conhecido retorna o arquivo para um usuário autorizado. Mantenha o endpoint do índice privado, preserve a segurança do Elasticsearch em produção e atualize os três aplicativos de busca do Nextcloud de acordo com a versão principal do Nextcloud.

Para detalhes específicos de versão, consulte a lista oficial de versões da plataforma Elasticsearch do Nextcloud e o guia oficial do Elastic para Docker em produção . Essas fontes são as mais seguras para confirmar a compatibilidade e os requisitos de hospedagem antes de uma atualização importante.

Deixar um comentário

Corrigir o alto uso de CPU no Jitsi Meet em navegadores de clientes

Corrigir o alto uso de CPU no Jitsi Meet em navegadores de clientes

Diagnostique picos de uso da CPU no navegador do Jitsi Meet e reduza a carga do cliente verificando os mosaicos de vídeo, os efeitos da câmera, os gráficos do navegador e as configurações do host.

Como monitorar as métricas do Jitsi Videobridge com Prometheus e Grafana

Como monitorar as métricas do Jitsi Videobridge com Prometheus e Grafana

Monitore a integridade, a carga da conferência e o tráfego do Jitsi Videobridge com seu endpoint Prometheus integrado e, em seguida, explore e visualize os dados em gráficos no Grafana.

Como configurar um nome de domínio personalizado para o Jitsi Meet no Docker

Como configurar um nome de domínio personalizado para o Jitsi Meet no Docker

Configure um domínio personalizado para o Jitsi Meet Docker com DNS, URL pública, HTTPS, Let's Encrypt, portas de firewall, configurações de NAT e verificação de ponta a ponta.

Corrigir erro 404 "Console de administração do Zimbra não encontrado" após a renovação do SSL.

Corrigir erro 404 "Console de administração do Zimbra não encontrado" após a renovação do SSL.

Corrija os erros 404 do Console de Administração do Zimbra após a renovação do SSL, verificando o URL e a porta corretos, o roteamento do proxy, o status do serviço, os certificados implantados e os logs.

Corrigir aviso do Nextcloud: “O cache OP do PHP não está configurado corretamente”

Corrigir aviso do Nextcloud: “O cache OP do PHP não está configurado corretamente”

Aprenda a diagnosticar e corrigir o aviso de configuração do PHP OPcache do Nextcloud, verificando o PHP SAPI ativo, os limites de tamanho, os comentários e as configurações de revalidação.

Corrigir erros de migração do banco de dados Kopano após uma atualização da versão do MySQL

Corrigir erros de migração do banco de dados Kopano após uma atualização da versão do MySQL

Solucione problemas de falhas na migração do banco de dados Kopano após uma atualização do MySQL ou MariaDB, verificando backups, versões do servidor, modos SQL, conjunto de caracteres, estado do esquema e logs.

Como configurar a autenticação LDAP e do Active Directory no Nextcloud

Como configurar a autenticação LDAP e do Active Directory no Nextcloud

Conecte o Nextcloud ao LDAP ou Active Directory com transporte seguro, filtros de usuários e grupos, atributos de login e uma implementação testada.

Corrigir notificações do Android sem os serviços do Google: Guia UnifiedPush

Corrigir notificações do Android sem os serviços do Google: Guia UnifiedPush

Corrija as notificações do Element no Android em telefones sem serviços do Google configurando o UnifiedPush, as permissões do Android, as configurações de bateria e realizando testes de verificação confiáveis.

Corrigir o aviso do Nextcloud "Banco de dados com alguns índices ausentes"

Corrigir o aviso do Nextcloud "Banco de dados com alguns índices ausentes"

Remova o aviso de índices de banco de dados ausentes do Nextcloud com o comando oficial occ. Primeiro, faça um backup, visualize as alterações, execute o reparo e verifique o resultado.

Como configurar o Single Sign-On (SSO) com o Keycloak no Element Web

Como configurar o Single Sign-On (SSO) com o Keycloak no Element Web

Configure o SSO do Keycloak para o Element Web conectando o OIDC ao Synapse, definindo a URL de retorno de chamada exata, mapeando as declarações do usuário e testando o logout.