Ajouter la recherche plein texte Elasticsearch à Nextcloud

Pour effectuer une recherche dans le contenu des fichiers sur Nextcloud, installez le framework de recherche plein texte, son application Elasticsearch et le fournisseur de fichiers. Connectez ensuite ces applications à un serveur Elasticsearch 8 compatible et créez l'index. Cette opération ajoute le texte des documents consultable, mais nécessite également un service distinct pour la sécurité, la surveillance et la maintenance. La documentation du connecteur indique qu'Elasticsearch 8 est la version majeure prise en charge ; vérifiez donc la compatibilité avec votre version d'application avant de choisir une version spécifique d'Elasticsearch.

Choisissez la configuration qui convient à votre serveur

Elasticsearch permet aux utilisateurs de trouver des mots clés dans des documents, au-delà des noms de fichiers et des métadonnées de base. En contrepartie, il s'agit d'un service supplémentaire à sécuriser et à maintenir, qui consomme également de la mémoire, du disque et du processeur lors de l'indexation. Un petit cloud peut ne pas justifier cette surcharge ; une équipe manipulant un grand nombre de documents peut trouver la recherche de contenu rentable.

L'intégration repose sur trois applications : la recherche plein texte assure la coordination entre le fournisseur et la plateforme, Elasticsearch connecte le framework au moteur et Files fournit le contenu des fichiers. Une seule application de plateforme peut être sélectionnée à la fois. Consultez les fichiers README du framework et du fournisseur Files .

Ces exemples Linux utilisent les chemins et le www-datacompte Debian ou Ubuntu. Adaptez les chemins et les utilisateurs de service pour les conteneurs ou d'autres distributions.

1. Vérifier la compatibilité et préparer Elasticsearch

Vérifiez vos versions de Nextcloud et de l'application avant d'installer Elasticsearch. Le fichier README du connecteur indique qu'à partir de la version 26.0.0 de l'application, Elasticsearch 8 est pris en charge. Ne présumez pas de la compatibilité avec Elasticsearch 9, même s'il s'agit d'une version plus récente ; consultez le fichier README du connecteur et le wiki d'installation pour votre version.

Installez Elasticsearch en suivant les instructions d'Elastic pour votre système d'exploitation et la version majeure compatible. Le paquet Debian d'Elastic inclut OpenJDK ; une installation Java séparée n'est donc généralement pas nécessaire. Consultez la documentation d'installation du paquet Debian d'Elastic . Sauf exigence contraire de votre architecture, Elasticsearch doit rester accessible uniquement depuis l'hôte Nextcloud ou le réseau d'applications privé. Elasticsearch 8 active des fonctionnalités de sécurité lors de la configuration du paquet : conservez l'authentification et le protocole TLS pour les déploiements en réseau et n'exposez jamais un point de terminaison de recherche non authentifié sur Internet.

Une fois le service démarré, testez son point de terminaison localement en utilisant le schéma et les identifiants définis lors de l'installation. Pour une instance locale sécurisée, une requête peut ressembler à cecicurl --cacert /path/to/http_ca.crt -u elastic https://localhost:9200 ; saisissez le mot de passe lorsque vous y êtes invité plutôt que de l'enregistrer dans l'historique du terminal. Utilisez le certificat d'autorité de certification généré pour votre installation, et non le chemin d'accès générique. Une réponse positive devrait identifier le nœud Elasticsearch et sa version. Si ce test échoue, corrigez le service, la confiance du certificat ou les identifiants avant de configurer Nextcloud.

2. Installez les applications de recherche Nextcloud

Utilisez la page Applications de Nextcloud pour installer et activer la recherche plein texte , la recherche plein texte sur Elasticsearch Platform et la recherche plein texte dans les fichiers . Vous pouvez également utiliser occl'outil d'administration en ligne de commande de Nextcloud, depuis le répertoire d'installation de Nextcloud. Sur une installation Debian ou Ubuntu, la procédure est la suivante :

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

Utilisez le compte HTTP de votre distribution et suivez les instructions occ de Nextcloud . Si une application est installée mais désactivée, utilisez [ instruction manquante occ app:enable APP_ID]. Assurez-vous que les trois applications sont compatibles avec votre version de Nextcloud.

3. Configurer la plateforme et le fournisseur de fichiers

Ouvrez les paramètres d'administration et sélectionnez la section « Recherche en texte intégral ». Choisissez Elasticsearch comme plateforme de recherche, puis saisissez l'adresse du servlet Elasticsearch, un nom d'index et les informations d'identification ou les paramètres de certificat requis par votre version de connecteur. L'adresse doit être accessible depuis le processus serveur Nextcloud. Si les deux services s'exécutent sur le même réseau de conteneurs, l' localhostadresse doit généralement pointer vers le conteneur Nextcloud lui-même et non vers le conteneur Elasticsearch ; utilisez alors le nom du service Elasticsearch ou son nom d'hôte interne.

Utilisez un nom d'index en minuscules, par exemplenextcloud ; attribuez un index distinct à chaque cloud s'ils partagent un service. Des noms distincts facilitent l'administration, mais ne remplacent pas les contrôles d'accès. Évitez d'inclure les identifiants dans les captures d'écran, les tickets et l'historique de la console.

Dans les paramètres du fournisseur de fichiers, activez l'indexation pour les types de fichiers et la plage de tailles requis par vos utilisateurs. Le contenu indexable dépend du fournisseur et de la prise en charge de l'extraction ; l'indexation des noms de fichiers seuls ne permet pas d'indexer le texte d'un PDF. Le processeur de pièces jointes d'Elasticsearch extrait le texte des formats de fichiers courants tels que les PDF et les documents Office, mais des limites d'extraction et des formats pris en charge s'appliquent. Dans Elasticsearch 8, la fonctionnalité d'ingestion des pièces jointes est incluse ; consultez la documentation du processeur de pièces jointes d'Elastic . Pour les numérisations ou les images, l'extraction de texte classique n'est pas une reconnaissance optique de caractères (OCR) : ajoutez un fournisseur OCR uniquement si vous avez besoin de cette fonctionnalité et après avoir vérifié ses prérequis. Sur un serveur aux ressources limitées, veillez à ne pas dépasser les limites de taille des fichiers.

4. Constituez l'index et tenez-le à jour.

Effectuez un contrôle d'intégrité avant l'indexation. Depuis le répertoire Nextcloud, utilisez :

sudo -E -u www-data php occ fulltextsearch:check

Commencez par résoudre les erreurs de connexion, de plateforme ou de fournisseur signalées. Ensuite, lancez l'indexation initiale :

sudo -E -u www-data php occ fulltextsearch:index

La première exécution parcourt les fichiers des utilisateurs sélectionnés et peut être longue. Maintenez une session SSH stable ou exécutez la commande dans un multiplexeur de terminal tmuxet surveillez l'utilisation du processeur, de la mémoire et de l'espace disque. L'indexation copie le texte extrait et les métadonnées des fichiers dans Elasticsearch ; elle ne remplace pas les sauvegardes Nextcloud. Protégez l'index de recherche et ses identifiants, et n'oubliez pas que la suppression ou la reconstruction de l'index peut nécessiter une nouvelle indexation complète.

Pour des mises à jour continues, assurez-vous que les tâches en arrière-plan de Nextcloud s'exécutent correctement. Le projet documente également un fulltextsearch:liveprocessus d'indexation quasi instantanée ; il peut réduire le délai de mise à jour, mais nécessite un service de supervision supplémentaire. Commencez par des tâches planifiées et n'ajoutez le processus d'indexation que si le délai est critique. Adaptez l' exemple de service en amont à vos chemins d'accès, votre compte et l'ordre de démarrage de votre base de données.

Vérifiez le résultat et choisissez votre compromis.

Une fois l'indexation terminée, recherchez une expression distinctive présente dans un court document de test, mais absente de son nom. Vérifiez que Nextcloud renvoie bien le fichier attendu pour un utilisateur autorisé à le lire. Ensuite, téléchargez ou modifiez un second document de test, laissez la tâche en arrière-plan ou le processus en direct s'exécuter, puis répétez la recherche. Un test d'état réussi ne garantit pas à lui seul que le contenu du fichier a été indexé.

Si seuls les noms de fichiers apparaissent, vérifiez le fournisseur de fichiers, les paramètres de type et de taille des fichiers, la prise en charge de l'extraction et les journaux d'index. En cas d'échec de connexion, vérifiez le point de terminaison sur le réseau Nextcloud, la confiance TLS et les informations d'identification.

Choisissez Elasticsearch lorsque la recherche de contenu est suffisamment importante pour justifier le maintien d'un service avec état supplémentaire. Si la recherche par nom de fichier suffit, évitez cette surcharge de ressources et de sécurité. Avant les mises à niveau en production, vérifiez la combinaison exacte de Nextcloud, de l'application et d'Elasticsearch ; cette configuration ne prend pas en charge toutes les méthodes de déploiement.

Laisser un commentaire

Activez le chiffrement côté serveur Nextcloud avec Measured Impact

Configurez Nextcloud SSE pour le stockage qui en a besoin, protégez les clés de chiffrement et mesurez l'impact sur les transferts et le processeur avant de chiffrer les fichiers existants.

Ajouter la recherche plein texte Elasticsearch à Nextcloud

Connectez la recherche de fichiers de Nextcloud à Elasticsearch, indexez le contenu des documents et choisissez une configuration adaptée à votre serveur et à vos besoins de sécurité.

Définir une politique d'expiration fiable pour les fichiers supprimés de Nextcloud

Définir une politique d'expiration fiable pour les fichiers supprimés de Nextcloud

Configurez Nextcloud pour supprimer les fichiers supprimés après une période de rétention définie, planifiez les tâches en arrière-plan de manière fiable et évitez les commandes qui vident la corbeille de tous les utilisateurs.

Effacer l'avertissement concernant les index de base de données manquants de Nextcloud

Effacer l'avertissement concernant les index de base de données manquants de Nextcloud

Exécutez la réparation OCC de Nextcloud en toute sécurité, prévisualisez les modifications de la base de données et vérifiez pourquoi l'avertissement peut persister.

Augmenter la limite de chargement web de Nextcloud au-delà de 2 Go

Augmenter la limite de chargement web de Nextcloud au-delà de 2 Go

Autorisez les chargements de fichiers plus volumineux via le navigateur Nextcloud en alignant les paramètres PHP, Nginx ou Apache, le stockage temporaire et les délais d'expiration, et vérifiez quelle limite bloque le fichier.

Effacer l'avertissement de mémoire PHP de Nextcloud sur le serveur web

Définissez la limite de mémoire PHP réellement utilisée par Nextcloud, redémarrez le service concerné et confirmez le paramètre de 512 Mo dans la vue d'ensemble de l'administration.

Connectez un compartiment compatible S3 au stockage externe Nextcloud

Montez un compartiment de stockage d'objets compatible dans Nextcloud en utilisant son backend S3, avec le point de terminaison, les informations d'identification, le périmètre d'accès et les étapes de vérification appropriés.

Transférez vos données Nextcloud vers un disque externe sans interruption de stockage.

Transférez vos données Nextcloud vers un disque externe sans interruption de stockage.

Déplacez en toute sécurité un répertoire de données Nextcloud Linux vers un disque externe en utilisant un montage UUID persistant, le mode maintenance, une copie vérifiée et le lien symbolique du chemin d'origine.

Erreur de base de données Nextcloud après une mise à jour : que vérifier en premier ?

Rétablissez l'accès à Nextcloud après une mise à jour en diagnostiquant les erreurs SQL, en vérifiant la connectivité de la base de données et en terminant en toute sécurité les migrations interrompues.

Réinitialisez un mot de passe d'administrateur Nextcloud perdu avec OCC

Utilisez la commande OCC de Nextcloud pour réinitialiser un mot de passe administrateur depuis l'interface de ligne de commande du serveur, avec des instructions concernant les noms d'utilisateur, les permissions et les fournisseurs d'authentification externes.