Partie 1: Configuration d'un seul nœud
Aujourd'hui, le stockage électronique de vos documents ou données sur un périphérique de stockage est à la fois rapide et facile, il est également comparable. En usage est une référence de nom de fichier qui vise à décrire ce qu'est le document. Alternativement, les données sont conservées dans un système de gestion de base de données (DBMS) comme PostgreSQL, MariADB ou MongoDB pour ne nommer que quelques options. Plusieurs supports de stockage sont connectés localement ou à distance à l'ordinateur, tels que le bâton USB, le disque dur interne ou externe, le stockage connecté au réseau (NAS), le stockage cloud ou le GPU / Flash, comme dans un NVIDIA V100 [10] [10].
En revanche, le processus inverse, trouver les bons documents dans une collection de documents, est plutôt complexe. Cela nécessite principalement de détecter le format de fichier sans défaut, d'indexer le document et d'extraire les concepts clés (classification des documents). C'est là que le framework Apache Solr entre. Il offre une interface pratique pour faire les étapes mentionnées - construire un index de documents, accepter les requêtes de recherche, faire la recherche réelle et renvoyer un résultat de recherche. Apache Solr constitue ainsi le noyau d'une recherche efficace sur une base de données ou un silo de document.
Dans cet article, vous apprendrez comment fonctionne Apache Solr, comment configurer un seul nœud, index des documents, effectuer une recherche et récupérer le résultat.
Les articles de suivi s'appuient sur celui-ci et, en eux, nous discutons d'autres cas d'utilisation plus spécifiques tels que l'intégration d'un SGBD PostgreSQL en tant que source de données ou équilibrage de chargement sur plusieurs nœuds.
À propos du projet Apache Solr
Apache Solr est un cadre de moteur de recherche basé sur le puissant serveur d'index de recherche Lucene [2]. Écrit en Java, il est maintenu sous l'égide de l'Apache Software Foundation (ASF) [6]. Il est disponible gratuitement sous la licence Apache 2.
Le sujet «Recherchez les documents et les données à nouveau» joue un rôle très important dans le monde du logiciel, et de nombreux développeurs y font face intensivement. Le site Web AwesomeOpenSource [4] répertorie plus de 150 projets d'oer-moteur de recherche. Au début de 2021, Elasticsearch [8] et Apache Solr / Lucene sont les deux meilleurs chiens lorsqu'il s'agit de rechercher des ensembles de données plus importants. Le développement de votre moteur de recherche nécessite beaucoup de connaissances, Frank le fait avec la bibliothèque Advas Advanced Search [3] basée à Python depuis 2002.
Configuration d'Apache Solr:
L'installation et le fonctionnement d'Apache Solr ne sont pas compliqués, c'est simplement une série entière d'étapes à effectuer par vous. Prévoyez environ 1 heure pour le résultat de la première requête de données. De plus, Apache Solr n'est pas seulement un projet de passe-temps, mais est également utilisé dans un environnement professionnel. Par conséquent, l'environnement du système d'exploitation choisi est conçu pour une utilisation à long terme.
En tant qu'environnement de base pour cet article, nous utilisons Debian GNU / Linux 11, qui est la prochaine version de Debian (au début de 2021) et devrait être disponible à la mi-2021. Pour ce tutoriel, nous nous attendons à ce que vous l'avez déjà installé, en tant que système natif, dans une machine virtuelle comme VirtualBox, soit un conteneur AWS.
En dehors des composants de base, vous avez besoin d'installer les packages logiciels suivants sur le système:
Ces packages sont des composants standard de Debian GNU / Linux. Si ce n'est pas encore installé, vous pouvez les installer en une seule fois en tant qu'utilisateur avec des droits administratifs, par exemple, root ou via sudo, indiqué comme suit:
# apt-get install curl default-java libcommons-Cli-java libxerces2-java libtika-java
Ayant préparé l'environnement, la 2ème étape est l'installation d'Apache Solr. Pour l'instant, Apache Solr n'est pas disponible en tant que package Debian ordinaire. Par conséquent, il est nécessaire de récupérer Apache Solr 8.8 de la section de téléchargement du site Web du projet [9] d'abord. Utilisez la commande wget ci-dessous pour la stocker dans le répertoire / TMP de votre système:
$ wget -o / tmp https: // téléchargements.apache.org / lunene / solr / 8.8.0 / solr-8.8.0.tgz
L'interrupteur -o raccourcis.Fichier GZ dans le répertoire donné. L'archive a une taille d'environ 190 m. Ensuite, déballer les archives dans le répertoire / opt à l'aide de TAR. En conséquence, vous trouverez deux sous-répertoires - / opt / solr et / opt / solr-8.8.0, tandis que / opt / solr est configuré comme un lien symbolique vers ce dernier. Apache Solr est livré avec un script de configuration que vous exécutez ensuite, c'est comme suit:
# / opt / solr-8.8.0 / bin / install_solr_service.shot
Il en résulte que la création de l'utilisateur Linux SOLR s'exécute dans le service SOLR plus son répertoire domestique sous / var / solr établit le service SOLR, ajouté avec ses nœuds correspondants et démarre le service SOLR sur le port 8983. Ce sont les valeurs par défaut. Si vous n'êtes pas satisfait d'eux, vous pouvez les modifier lors de l'installation ou même la lamedice, le script d'installation accepte les commutateurs correspondants pour les ajustements de configuration. Nous vous recommandons de consulter la documentation Apache Solr concernant ces paramètres.
Le logiciel SOLR est organisé dans les répertoires suivants:
Plus en détail, vous pouvez lire ces répertoires dans la documentation Apache Solr [12].
Gérer Apache Solr:
Apache Solr s'exécute en tant que service en arrière-plan. Vous pouvez le démarrer de deux manières, soit en utilisant SystemCTL (première ligne) en tant qu'utilisateur avec des autorisations administratives ou directement à partir du répertoire SOLR (deuxième ligne). Nous répertorions les deux commandes de terminal ci-dessous:
# systemctl start solr
$ solr / bin / solr start
L'arrêt d'Apache Solr se fait de la même manière:
# systemctl stop solr
$ solr / bin / solr stop
De la même manière, le redémarrage du service Apache Solr:
# systemctl redémarrer solr
$ solr / bin / solr redémarrage
De plus, l'état du processus Apache Solr peut être affiché comme suit:
# SystemCTL Status Solr
$ solr / bin / solr statut
La sortie répertorie le fichier de service qui a été démarré, à la fois les messages d'horodatage et de journal correspondants. La figure ci-dessous montre que le service Apache Solr a été démarré sur le port 8983 avec le processus 632. Le processus se déroule avec succès pendant 38 minutes.
Pour voir si le processus Apache Solr est actif, vous pouvez également vérifier en utilisant la commande PS en combinaison avec Grep. Cela limite la sortie PS à tous les processus Apache Solr qui sont actuellement actifs.
# PS AX | grep - coulor solr
La figure ci-dessous le démontre pour un seul processus. Vous voyez l'appel de Java qui s'accompagne d'une liste de paramètres, par exemple des ports d'utilisation de la mémoire (512M) à écouter sur 8983 pour les requêtes, 7983 pour les demandes d'arrêt et le type de connexion (HTTP).
Ajout d'utilisateurs:
Les processus Apache Solr s'exécutent avec un utilisateur spécifique nommé Solr. Cet utilisateur est utile pour gérer les processus SOLR, télécharger des données et envoyer des demandes. Lors de la configuration, l'utilisateur Solr n'a pas de mot de passe et devrait en avoir un pour se connecter pour continuer. Définissez un mot de passe pour l'utilisateur Solr comme la racine de l'utilisateur, il est montré comme suit:
# passwd solr
Administration SOLR:
La gestion d'Apache Solr est effectuée à l'aide du tableau de bord Solr. Ceci est accessible via le navigateur Web de http: // localhost: 8983 / solr. La figure ci-dessous montre la vue principale.
À gauche, vous voyez le menu principal qui vous conduit aux sous-sections pour l'exploitation forestière, l'administration des cœurs SOLR, la configuration Java et les informations d'état. Choisissez le noyau souhaité à l'aide de la boîte de sélection sous le menu. Sur le côté droit du menu, les informations correspondantes s'affichent. L'entrée du menu du tableau de bord montre plus de détails concernant le processus Apache Solr, ainsi que la charge actuelle et l'utilisation de la mémoire.
Veuillez savoir que le contenu du tableau de bord change en fonction du nombre de cœurs SOLR et des documents qui ont été indexés. Les modifications affectent à la fois les éléments du menu et les informations correspondantes visibles à droite.
Comprendre le fonctionnement des moteurs de recherche:
En parlant simplement, les moteurs de recherche analysent les documents, les catégorisent et vous permettent de faire une recherche en fonction de leur catégorisation. Fondamentalement, le processus se compose de trois étapes, qui sont qualifiées de rampe, d'indexation et de classement [13].
Rampant est la première étape et décrit un processus par lequel le contenu nouveau et mis à jour est collecté. Le moteur de recherche utilise des robots qui sont également connus sous le nom d'araignées ou de robots, d'où le terme rampant pour passer par les documents disponibles.
La deuxième étape est appelée indexage. Le contenu précédemment collecté est rendu consultable en transformant les documents originaux en un format que le moteur de recherche comprend. Les mots clés et les concepts sont extraits et stockés dans des bases de données (massives).
La troisième étape est appelée classement et décrit le processus de tri des résultats de recherche en fonction de leur pertinence avec une requête de recherche. Il est courant d'afficher les résultats dans l'ordre descendant afin que le résultat qui ait la plus grande pertinence pour la requête du chercheur arrive en premier.
Apache Solr fonctionne de la même manière que le processus en trois étapes décrit précédemment. Comme le moteur de recherche populaire Google, Apache Solr utilise une séquence de rassemblements, de stockage et d'indexation des documents de différentes sources et les rend disponibles / consultables en temps quasi réel.
Apache Solr utilise différentes manières pour indexer les documents, y compris les suivants [14]:
Un gestionnaire de requête est utilisé dans Apache Solr lorsqu'une demande de recherche est envoyée. Le gestionnaire de requête analyse la requête donnée basée sur le même concept de gestionnaire d'index pour correspondre à la requête et aux documents précédemment indexés. Les matchs sont classés en fonction de leur pertinence ou de leur pertinence. Un bref exemple de requête est démontré ci-dessous.
Téléchargement des documents:
Par souci de simplicité, nous utilisons un exemple de jeu de données pour l'exemple suivant qui est déjà fourni par Apache Solr. Le téléchargement des documents est effectué en tant qu'utilisateur SOLR. L'étape 1 est la création d'un noyau avec le nom TechProducts (pour un certain nombre d'articles technologiques).
$ solr / bin / solr create -c TechProducts
Tout va bien si vous voyez le message «créé de nouveaux« TechProducts »de base» ». L'étape 2 ajoute des données (données XML d'EXAMPLedocs) aux Core TechProducts précédemment créés. Dans l'utilisation est le post de l'outil qui est paramétré par -c (nom du noyau) et les documents à télécharger.
$ solr / bin / post -c TechProducts solr / exemple / exampledocs / *.xml
Cela entraînera la sortie ci-dessous et contiendra l'ensemble de l'appel plus les 14 documents qui ont été indexés.
De plus, le tableau de bord montre les modifications. Une nouvelle entrée nommée TechProducts est visible dans le menu déroulant sur le côté gauche, et le nombre de documents correspondants a changé sur le côté droit. Malheureusement, une vue détaillée des ensembles de données brutes n'est pas possible.
Dans le cas où le noyau / collection doit être supprimé, utilisez la commande suivante:
$ solr / bin / solr delete -c TechProducts
Interroger les données:
Apache Solr propose deux interfaces pour interroger les données: via le tableau de bord Web et la ligne de commande. Nous expliquerons les deux méthodes ci-dessous.
L'envoi de requêtes via le tableau de bord SOLR est effectué comme suit:
La ligne de commande accepte la même requête que dans le tableau de bord. La différence est que vous devez connaître le nom des champs de requête. Afin d'envoyer la même requête que ci-dessus, vous devez exécuter la commande suivante dans un terminal:
$ curl
http: // localhost: 8983 / solr / techproducts / requête?Q = ”manu": "Belkin
La sortie est au format JSON, comme indiqué ci-dessous. Le résultat se compose d'un en-tête de réponse et de la réponse réelle. La réponse se compose de deux ensembles de données.
Emballer:
Toutes nos félicitations! Vous avez atteint la première étape avec succès. L'infrastructure de base est configurée et vous avez appris à télécharger et à interroger des documents.
L'étape suivante couvrira comment affiner la requête, formuler des requêtes plus complexes et comprendre les différents formulaires Web fournis par la page de requête Apache Solr. De plus, nous discuterons de la façon de post-processus le résultat de la recherche en utilisant différents formats de sortie tels que XML, CSV et JSON.
À propos des auteurs:
Jacqui Kabeta est un environnementaliste, un chercheur passionné, un entraîneur et un mentor. Dans plusieurs pays africains, elle a travaillé dans l'industrie informatique et les environnements d'ONG.
Frank Hofmann est un développeur, entraîneur et auteur informatique et préfère travailler à Berlin, Genève et Cape Town. Co-auteur du livre de gestion des packages Debian disponible auprès de DPMB.org