Per effettuare ricerche all'interno dei file in Nextcloud, è necessario installare il framework di ricerca full-text, la relativa app per la piattaforma Elasticsearch e il provider File; quindi, connettere le app a un server Elasticsearch 8 compatibile e creare l'indice. Questo aggiunge il testo ricercabile dei documenti, ma comporta anche la necessità di un servizio separato da proteggere, monitorare e gestire. Il file README del connettore attuale identifica Elasticsearch 8 come versione principale supportata, pertanto è necessario verificare la compatibilità con la versione dell'app installata prima di selezionare una versione specifica di Elasticsearch.
Scegli la configurazione più adatta al tuo server
Elasticsearch aiuta gli utenti a trovare parole all'interno dei documenti, oltre ai nomi dei file e ai metadati di base. Il compromesso consiste in un ulteriore servizio da proteggere e gestire, oltre all'utilizzo di memoria, disco e CPU durante l'indicizzazione. Un piccolo cloud potrebbe non giustificare questo sovraccarico; un team che gestisce molti documenti potrebbe invece trovare la ricerca di contenuti un investimento valido.
L'integrazione è composta da tre applicazioni: Full Text Search coordina il provider e la piattaforma, Elasticsearch collega il framework al motore e Files fornisce il contenuto dei file. È possibile selezionare una sola applicazione della piattaforma alla volta. Consultare il file README del framework e il file README del provider Files .
Questi esempi Linux utilizzano percorsi e www-dataaccount Debian o Ubuntu. Adattare i percorsi e gli utenti del servizio per i container o altre distribuzioni.
1. Conferma la compatibilità e prepara Elasticsearch
Prima di installare Elasticsearch, verifica le versioni di Nextcloud e dell'app. Il file README del connettore indica che, a partire dalla versione 26.0.0 dell'app, è supportato Elasticsearch 8. Non dare per scontato che Elasticsearch 9 sia compatibile solo perché è più recente; consulta il file README del connettore e la wiki di installazione per la tua versione.
Installa Elasticsearch seguendo le istruzioni fornite da Elastic per il tuo sistema operativo e la versione principale compatibile. Il pacchetto Debian di Elastic include OpenJDK, quindi in genere non è necessaria un'installazione Java separata per questo pacchetto. Consulta la documentazione di installazione del pacchetto Debian di Elastic . Assicurati che Elasticsearch sia accessibile solo dall'host Nextcloud o dalla rete privata dell'applicazione, a meno che la tua architettura non richieda diversamente. Elasticsearch 8 abilita le funzionalità di sicurezza durante la configurazione del pacchetto; mantieni l'autenticazione e TLS per le implementazioni in rete e non esporre mai un endpoint di ricerca non autenticato a Internet.
Una volta avviato il servizio, testa il suo endpoint in locale utilizzando lo schema e le credenziali stabiliti durante l'installazione. Per un'istanza locale protetta, una richiesta potrebbe essere simile a questa curl --cacert /path/to/http_ca.crt -u elastic https://localhost:9200: inserisci la password quando richiesto anziché inserirla nella cronologia della shell. Utilizza il certificato CA generato per la tua installazione, non il percorso segnaposto. Una risposta positiva dovrebbe identificare il nodo e la versione di Elasticsearch. Se questo controllo fallisce, correggi il servizio, l'attendibilità del certificato o le credenziali prima di configurare Nextcloud.
2. Installa le app di ricerca di Nextcloud
Utilizza la pagina App di Nextcloud per installare e abilitare Ricerca full-text , Ricerca full-text - Piattaforma Elasticsearch e Ricerca full-text - File . Puoi anche utilizzare occlo strumento di amministrazione da riga di comando di Nextcloud, dalla directory di installazione di Nextcloud. Su un'installazione Debian o Ubuntu, il percorso è il seguente:
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
Utilizza l'account HTTP della tua distribuzione e segui le linee guida occ di Nextcloud . Se un'app è installata ma disabilitata, utilizza occ app:enable APP_ID. Mantieni tutte e tre le app compatibili con la tua versione di Nextcloud.
3. Configurare la piattaforma e il provider di file
Apri le impostazioni di amministrazione e seleziona la sezione Ricerca full-text. Scegli Elasticsearch come piattaforma di ricerca, quindi inserisci l'indirizzo del servlet di Elasticsearch, un nome di indice e le credenziali di connessione o le impostazioni del certificato richieste dalla versione del connettore installato. L'indirizzo deve essere raggiungibile dal processo del server Nextcloud. Se entrambi i servizi sono in esecuzione nella stessa rete di container, localhostin genere punta al container Nextcloud stesso e non al container di Elasticsearch; in tal caso, utilizza il nome del servizio Elasticsearch o il nome host interno.
Utilizza un nome di indice in minuscolo, ad esempio nextcloud; assegna a ciascun cloud un indice separato se condividono un servizio. I nomi separati facilitano l'amministrazione, ma non sostituiscono i controlli di accesso. Evita di includere le credenziali in screenshot, ticket e cronologia della shell.
Nelle impostazioni del provider File, abilita l'indicizzazione per i tipi di file e l'intervallo di dimensioni richiesti dai tuoi utenti. Il contenuto ricercabile dipende dal provider e dal supporto per l'estrazione; la sola indicizzazione dei nomi dei file non renderà ricercabile il testo all'interno di un PDF. Il processore di allegati di Elasticsearch estrae il testo dai formati di file comuni come PDF e documenti di Office, ma si applicano limiti di estrazione e formati supportati. In Elasticsearch 8, la funzionalità di acquisizione degli allegati è inclusa nella distribuzione; consulta la documentazione di riferimento del processore di allegati di Elastic . Per scansioni o immagini, la normale estrazione del testo dai documenti non è OCR: aggiungi un provider OCR solo se hai bisogno di questa funzionalità e ne hai verificato i requisiti. Mantieni limiti di dimensione dei file prudenti su un server con risorse limitate.
4. Crea l'indice e mantienilo aggiornato
Eseguire un controllo di integrità prima dell'indicizzazione. Dalla directory di Nextcloud, utilizzare:
sudo -E -u www-data php occ fulltextsearch:check
Risolvi prima gli errori di connessione, piattaforma o provider segnalati. Dopodiché, avvia l'indicizzazione iniziale:
sudo -E -u www-data php occ fulltextsearch:index
La prima esecuzione analizza i file degli utenti selezionati e può richiedere molto tempo. Mantieni stabile la sessione SSH o esegui il comando in un multiplexer di terminale come tmuxe monitora CPU, memoria e spazio su disco. L'indicizzazione copia il testo estratto e i metadati dei file in Elasticsearch; non sostituisce i backup di Nextcloud. Pianifica di proteggere l'indice di ricerca e le relative credenziali e ricorda che l'eliminazione o la ricostruzione dell'indice potrebbe richiedere un'altra indicizzazione completa.
Per gli aggiornamenti continui, assicurati che i processi in background di Nextcloud vengano eseguiti in modo affidabile. Il progetto documenta anche un fulltextsearch:liveworker per l'indicizzazione quasi immediata; questo può ridurre il ritardo di aggiornamento, ma aggiunge un servizio da supervisionare. Inizia con i processi pianificati e aggiungi il worker solo se il ritardo è rilevante. Adatta l' esempio del servizio upstream ai tuoi percorsi, account e ordine di avvio del database.
Verifica il risultato e scegli il tuo compromesso
Una volta completata l'indicizzazione, cerca una frase distintiva che compare all'interno di un piccolo documento di prova ma non nel suo nome file. Verifica che Nextcloud restituisca il file previsto per un utente che dispone delle autorizzazioni di lettura. Quindi carica o modifica un secondo documento di prova, consenti l'esecuzione del job in background o del worker live configurato e ripeti la ricerca. Un controllo di stato positivo da solo non dimostra che il contenuto del file sia stato indicizzato.
Se vengono visualizzati solo i nomi dei file, verificare il provider dei file, le impostazioni relative al tipo e alle dimensioni dei file, il supporto per l'estrazione e i log di indicizzazione. In caso di errori di connessione, controllare l'endpoint dalla rete di Nextcloud, la fiducia TLS e le credenziali.
Scegli Elasticsearch quando la ricerca dei contenuti è sufficientemente importante da giustificare il mantenimento di un ulteriore servizio stateful. Se la ricerca per nome file è sufficiente, evita di aggiungere risorse e di compromettere la sicurezza. Prima di implementare aggiornamenti in produzione, verifica l'esatta combinazione di Nextcloud, app ed Elasticsearch; questa configurazione non garantisce il supporto per tutti i metodi di implementazione.