Para pesquisar o conteúdo de arquivos no Nextcloud, instale o framework de pesquisa de texto completo, o aplicativo da plataforma Elasticsearch e o provedor de Arquivos; em seguida, conecte os aplicativos a um servidor Elasticsearch 8 compatível e crie o índice. Isso adiciona texto pesquisável aos documentos, mas também adiciona um serviço separado para proteger, monitorar e manter. O README do conector atual identifica o Elasticsearch 8 como a versão principal compatível, portanto, verifique a compatibilidade com a versão do aplicativo instalado antes de selecionar uma versão específica do Elasticsearch.
Escolha a configuração que melhor se adapta ao seu servidor.
O Elasticsearch ajuda os usuários a encontrar palavras dentro de documentos, além de nomes de arquivos e metadados básicos. A contrapartida é um serviço adicional para proteger e manter, além do uso de memória, disco e CPU durante a indexação. Uma nuvem pequena pode não justificar essa sobrecarga; uma equipe com grande volume de documentos pode achar que a busca de conteúdo vale o custo.
A integração é composta por três aplicativos: a Busca de Texto Completo coordena o provedor e a plataforma, o Elasticsearch conecta a estrutura ao mecanismo de busca e o Files fornece o conteúdo dos arquivos. Apenas um aplicativo de plataforma pode ser selecionado por vez. Consulte o README da estrutura e o README do provedor Files .
Estes exemplos do Linux usam caminhos e www-datacontas do Debian ou Ubuntu. Ajuste os caminhos e os usuários de serviço para contêineres ou outras distribuições.
1. Confirme a compatibilidade e prepare o Elasticsearch.
Verifique as versões do Nextcloud e do aplicativo antes de instalar o Elasticsearch. O arquivo README do conector indica que, a partir da versão 26.0.0 do aplicativo, ele é compatível com o Elasticsearch 8. Não presuma que o Elasticsearch 9 seja compatível apenas por ser mais recente; consulte o arquivo README do conector e o guia de instalação para verificar a sua versão.
Instale o Elasticsearch seguindo as instruções da Elastic para o seu sistema operacional e a versão principal compatível. O pacote Debian da Elastic inclui o OpenJDK, portanto, normalmente não é necessária uma instalação separada do Java para esse pacote. Consulte a documentação de instalação do pacote Debian da Elastic . Mantenha o Elasticsearch acessível apenas a partir do host do Nextcloud ou da rede privada do aplicativo, a menos que sua arquitetura exija o contrário. O Elasticsearch 8 habilita recursos de segurança durante a configuração do pacote; mantenha a autenticação e o TLS para implantações em rede e nunca exponha um endpoint de pesquisa não autenticado à internet pública.
Após o serviço iniciar, teste o endpoint localmente usando o esquema e as credenciais definidas durante a instalação. Para uma instância local segura, uma requisição pode ser semelhante a esta curl --cacert /path/to/http_ca.crt -u elastic https://localhost:9200: `<caminho_do_example.com>`; digite a senha quando solicitado, em vez de salvá-la no histórico do shell. Use o certificado da CA gerado para sua instalação, não o caminho padrão. Uma resposta bem-sucedida deve identificar o nó e a versão do Elasticsearch. Se essa verificação falhar, corrija o serviço, a confiança no certificado ou as credenciais antes de configurar o Nextcloud.
2. Instale os aplicativos de busca do Nextcloud.
Use a página de Aplicativos do Nextcloud para instalar e ativar a Pesquisa de texto completo , a Pesquisa de texto completo - Plataforma Elasticsearch e a Pesquisa de texto completo - Arquivos . Você também pode usar occo `nextcloud`, a ferramenta de administração de linha de comando do Nextcloud, a partir do diretório de instalação do Nextcloud. Em uma instalação Debian ou Ubuntu, o padrão é:
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
Use a conta HTTP da sua distribuição e siga as orientações do Nextcloud para o comando `occ` . Se um aplicativo estiver instalado, mas desativado, use o comando ` occ app:enable APP_ID. Mantenha os três aplicativos compatíveis com a sua versão do Nextcloud.
3. Configure a plataforma e o provedor de arquivos.
Abra as configurações de administrador e selecione a seção "Pesquisa de texto completo". Escolha o Elasticsearch como plataforma de pesquisa e, em seguida, insira o endereço do servlet do Elasticsearch, um nome de índice e quaisquer credenciais de conexão ou configurações de certificado necessárias, expostas pela versão do conector instalada. O endereço deve ser acessível a partir do processo do servidor Nextcloud. Se ambos os serviços estiverem em execução na mesma rede de contêineres, localhostgeralmente o endereço aponta para o próprio contêiner do Nextcloud, e não para o contêiner do Elasticsearch; use o nome do serviço Elasticsearch ou o nome de host interno.
Use um nome de índice em minúsculas, como nextcloud`<nome_do_índice>`; atribua um índice separado a cada nuvem caso elas compartilhem um serviço. Nomes separados facilitam a administração, mas não substituem os controles de acesso. Mantenha as credenciais fora de capturas de tela, tickets e histórico do shell.
Nas configurações do provedor de Arquivos, habilite a indexação para os tipos de arquivo e o intervalo de tamanho que seus usuários precisam. O conteúdo pesquisável depende do provedor e do suporte à extração; indexar apenas os nomes dos arquivos não tornará o texto dentro de um PDF pesquisável. O processador de anexos do Elasticsearch extrai texto de formatos de arquivo comuns, como PDF e documentos do Office, mas existem limites de extração e formatos suportados. No Elasticsearch 8, a funcionalidade de ingestão de anexos está incluída na distribuição; consulte a referência do processador de anexos do Elasticsearch . Para digitalizações ou imagens, a extração de texto comum do documento não é OCR: adicione um provedor de OCR somente se precisar dessa funcionalidade e tiver verificado seus requisitos. Mantenha os limites de tamanho de arquivo conservadores em um servidor com recursos limitados.
4. Crie o índice e mantenha-o atualizado.
Execute uma verificação de integridade antes de indexar. No diretório do Nextcloud, use:
sudo -E -u www-data php occ fulltextsearch:check
Primeiro, resolva os erros relatados de conexão, plataforma ou provedor. Em seguida, inicie a indexação inicial:
sudo -E -u www-data php occ fulltextsearch:index
A primeira execução percorre os arquivos dos usuários selecionados e pode demorar bastante. Mantenha a sessão SSH estável ou execute o comando em um multiplexador de terminal, como o `ssh` tmux, e monitore o uso de CPU, memória e espaço em disco. A indexação copia o texto extraído e os metadados dos arquivos para o Elasticsearch; ela não substitui os backups do Nextcloud. Planeje proteger o índice de pesquisa e suas credenciais, e lembre-se de que excluir ou reconstruir o índice pode exigir uma nova execução completa da indexação.
Para atualizações contínuas, certifique-se de que as tarefas em segundo plano do Nextcloud sejam executadas de forma confiável. O projeto também documenta um fulltextsearch:liveworker para indexação quase imediata; ele pode reduzir o atraso na atualização, mas adiciona um serviço para supervisionar. Comece com tarefas agendadas e adicione o worker somente se o atraso for um fator importante. Adapte o exemplo de serviço upstream aos seus caminhos, conta e ordem de inicialização do banco de dados.
Verifique o resultado e escolha a sua opção.
Após a conclusão da indexação, procure por uma frase distintiva que apareça dentro de um pequeno documento de teste, mas não em seu nome de arquivo. Confirme se o Nextcloud retorna o arquivo esperado para um usuário que tenha permissão para lê-lo. Em seguida, carregue ou edite um segundo documento de teste, permita que a tarefa em segundo plano configurada ou o worker ativo seja executado e repita a pesquisa. Uma verificação de status bem-sucedida por si só não comprova que o conteúdo do arquivo foi indexado.
Se apenas os nomes dos arquivos forem exibidos, verifique o provedor de arquivos, as configurações de tipo e tamanho de arquivo, o suporte à extração e os logs de indexação. Para falhas de conexão, verifique o endpoint da rede do Nextcloud, a confiança TLS e as credenciais.
Escolha o Elasticsearch quando a busca por conteúdo for valiosa o suficiente para justificar a manutenção de outro serviço com estado. Se a busca por nome de arquivo for suficiente, ignore esse recurso adicional e a sobrecarga de segurança. Antes de atualizações em produção, verifique a combinação exata de Nextcloud, aplicativo e Elasticsearch; esta configuração não garante suporte para todos os métodos de implantação.