Apache Solr

Présentation d'Apache Solr. Partie 3 Connexion à PostgreSQL

Présentation d'Apache Solr. Partie 3 Connexion à PostgreSQL
Apache Solr [1] est un framework de moteur de recherche écrit en Java et basé sur la bibliothèque de recherche Lucene [6]. Dans les deux articles précédents, nous avons configuré Apache Solr sur la prochaine version Debian GNU/Linux 11, lancé un noyau de données unique, téléchargé des exemples de données, montré comment interroger les données de sortie de différentes manières et post-traiter il.

Ceci est un article de suivi des deux précédents [2,3]. Jusqu'à présent, nous avons chargé des données indexées dans le stockage Apache Solr et interrogé des données sur ce. Maintenant, vous allez apprendre à connecter le système de gestion de base de données relationnelle PostgreSQL [4] à Apache Solr et à y faire une recherche en utilisant les capacités de Solr. Cela rend nécessaire de faire plusieurs étapes décrites ci-dessous plus en détail - configurer PostgreSQL, préparer une structure de données dans une base de données PostgreSQL, et connecter PostgreSQL à Apache Solr, et faire notre recherche.

Étape 1 : Configuration de PostgreSQL

À propos de PostgreSQL - une brève information

PostgreSQL est un ingénieux système de gestion de base de données relationnelle objet. Il est disponible et fait l'objet d'un développement actif depuis plus de 30 ans. Il est originaire de l'Université de Californie, où il est considéré comme le successeur d'Ingres [7].

Dès le départ, il est disponible sous open-source (GPL), libre d'utilisation, de modification et de distribution. Il est largement utilisé et très populaire dans l'industrie. PostgreSQL a été initialement conçu pour fonctionner uniquement sur les systèmes UNIX/Linux et a ensuite été conçu pour fonctionner sur d'autres systèmes tels que Microsoft Windows, Solaris et BSD. Le développement actuel de PostgreSQL est effectué dans le monde entier par de nombreux bénévoles.

Configuration de PostgreSQL

Si ce n'est pas encore fait, installez le serveur et le client PostgreSQL localement, par exemple, sur Debian GNU/Linux comme décrit ci-dessous en utilisant apt. Deux articles traitent de PostgreSQL - l'article de Yunis Said [5] traite de la configuration sur Ubuntu. Pourtant, il ne fait qu'effleurer la surface alors que mon article précédent se concentre sur la combinaison de PostgreSQL avec l'extension SIG PostGIS [6]. La description ici résume toutes les étapes dont nous avons besoin pour cette configuration particulière.

# apt installer postgresql-13 postgresql-client-13

Ensuite, vérifiez que PostgreSQL est en cours d'exécution à l'aide de la commande pg_isready. Ceci est un utilitaire qui fait partie du package PostgreSQL.

# pg_isready
/var/run/postgresql:5432 - Les connexions sont acceptées

La sortie ci-dessus montre que PostgreSQL est prêt et attend les connexions entrantes sur le port 5432. Sauf indication contraire, il s'agit de la configuration standard. L'étape suivante consiste à définir le mot de passe pour l'utilisateur UNIX Postgres :

# passwd Postgres

Gardez à l'esprit que PostgreSQL a sa propre base de données d'utilisateurs, alors que l'utilisateur administratif de PostgreSQL Postgres n'a pas encore de mot de passe. L'étape précédente doit également être effectuée pour l'utilisateur PostgreSQL Postgres :

# su - Postgres
$ psql -c "ALTER USER Postgres WITH PASSWORD 'password';"

Pour plus de simplicité, le mot de passe choisi n'est qu'un mot de passe et doit être remplacé par une phrase de mot de passe plus sûre sur les systèmes autres que les tests. La commande ci-dessus modifiera la table utilisateur interne de PostgreSQL. Soyez conscient des différents guillemets - le mot de passe entre guillemets simples et la requête SQL entre guillemets doubles pour empêcher l'interpréteur shell d'évaluer la commande de la mauvaise manière. Ajoutez également un point-virgule après la requête SQL avant les guillemets doubles à la fin de la commande.

Ensuite, pour des raisons administratives, connectez-vous à PostgreSQL en tant qu'utilisateur Postgres avec le mot de passe précédemment créé. La commande s'appelle psql :

$ psql

La connexion d'Apache Solr à la base de données PostgreSQL se fait en tant qu'utilisateur solr. Alors, ajoutons le Solr utilisateur PostgreSQL et définissons un Solr de mot de passe correspondant pour lui en une seule fois :

$ CREATE USER solr AVEC PASSWD 'solr';

Pour plus de simplicité, le mot de passe choisi est juste solr et doit être remplacé par une phrase de mot de passe plus sûre sur les systèmes en production.

Étape 2 : Préparation d'une structure de données

Pour stocker et récupérer des données, une base de données correspondante est nécessaire. La commande ci-dessous crée une base de données de voitures qui appartient à l'utilisateur solr et sera utilisée plus tard.

$ CREATE DATABASE voitures AVEC OWNER = solr;

Ensuite, connectez-vous aux voitures de base de données nouvellement créées en tant qu'utilisateur solr. L'option -d (option courte pour -dbname) définit le nom de la base de données, et -U (option courte pour -username) le nom de l'utilisateur PostgreSQL.

$ psql -d voitures -U solr

Une base de données vide n'est pas utile, mais des tables structurées avec du contenu le font. Créez la structure des chariots de table comme suit :

$ CREER TABLE voitures (
id entier,
faire varchar (100),
modèle varchar (100),
description varchar(100),
couleur varchar(50),
prix int
);

Les chariots de table contiennent six champs de données - id (entier), make (une chaîne de longueur 100), modèle (une chaîne de longueur 100), description (une chaîne de longueur 100), couleur (une chaîne de longueur 50) et prix (entier). Pour obtenir des exemples de données, ajoutez les valeurs suivantes aux wagons de table en tant qu'instructions SQL :

$ INSÉRER DANS les voitures (identifiant, marque, modèle, description, couleur, prix)
VALEURS (1, 'BMW', 'X5', 'Cool car', 'grey', 45000);
$ INSÉRER DANS les voitures (identifiant, marque, modèle, description, couleur, prix)
VALEURS (2, 'Audi', 'Quattro', 'voiture de course', 'blanc', 30000);

Le résultat est deux entrées représentant une BMW X5 grise qui coûte 45 000 USD, décrite comme une voiture cool, et une voiture de course blanche Audi Quattro qui coûte 30 000 USD.

Ensuite, quittez la console PostgreSQL en utilisant \q, ou quittez.

$ \q

Étape 3 : Connecter PostgreSQL à Apache Solr

La connexion de PostgreSQL et Apache Solr est basée sur deux logiciels - un pilote Java pour PostgreSQL appelé pilote Java Database Connectivity (JDBC) et une extension de la configuration du serveur Solr. Le pilote JDBC ajoute une interface Java à PostgreSQL, et l'entrée supplémentaire dans la configuration Solr indique à Solr comment se connecter à PostgreSQL à l'aide du pilote JDBC.

L'ajout du pilote JDBC se fait en tant qu'utilisateur root comme suit et installe le pilote JDBC à partir du référentiel de packages Debian :

# apt-get install libpostgresql-jdbc-java

Du côté d'Apache Solr, un nœud correspondant doit également exister. Si ce n'est pas encore fait, en tant qu'utilisateur UNIX, créez les voitures de nœud comme suit :

$ bin/solr create -c voitures

Ensuite, étendez la configuration Solr pour le nœud nouvellement créé. Ajoutez les lignes ci-dessous dans le fichier /var/solr/data/cars/conf/solrconfig.xml :

db-data-config.xml

De plus, créez un fichier /var/solr/data/cars/conf/data-config.xml et y stocker le contenu suivant :

Les lignes ci-dessus correspondent aux paramètres précédents et définissent le pilote JDBC, spécifient le port 5432 pour se connecter au SGBD PostgreSQL en tant que solr utilisateur avec le mot de passe correspondant, et définissent la requête SQL à exécuter à partir de PostgreSQL. Pour plus de simplicité, c'est une instruction SELECT qui récupère tout le contenu de la table.

Ensuite, redémarrez le serveur Solr pour activer vos modifications. En tant qu'utilisateur root, exécutez la commande suivante :

# systemctl redémarrer solr

La dernière étape est l'import des données, par exemple à l'aide de l'interface web Solr. La boîte de sélection de nœud choisit les voitures de nœud, puis dans le menu Nœud sous l'entrée Importation de données suivie de la sélection de l'importation complète dans le menu Commande jusqu'à celle-ci. Enfin, appuyez sur le bouton Exécuter. La figure ci-dessous montre que Solr a indexé avec succès les données.

Étape 4 : Interrogation des données du SGBD

L'article précédent [3] traite de l'interrogation des données en détail, de la récupération du résultat et de la sélection du format de sortie souhaité - CSV, XML ou JSON. L'interrogation des données se fait de la même manière que ce que vous avez appris auparavant, et aucune différence n'est visible pour l'utilisateur. Solr fait tout le travail en coulisse et communique avec le SGBD PostgreSQL connecté comme défini dans le noyau ou le cluster Solr sélectionné.

L'utilisation de Solr ne change pas et les requêtes peuvent être soumises via l'interface d'administration de Solr ou en utilisant curl ou wget sur la ligne de commande. Vous envoyez une demande Get avec une URL spécifique au serveur Solr (requête, mise à jour ou suppression). Solr traite la demande en utilisant le SGBD comme unité de stockage et renvoie le résultat de la demande. Ensuite, post-traitez la réponse localement.

L'exemple ci-dessous montre la sortie de la requête "/select?q=*. *" au format JSON dans l'interface d'administration de Solr. Les données sont extraites de la base de données des voitures que nous avons créée précédemment.

Conclusion

Cet article montre comment interroger une base de données PostgreSQL à partir d'Apache Solr et explique la configuration correspondante. Dans la prochaine partie de cette série, vous apprendrez à combiner plusieurs nœuds Solr dans un cluster Solr.

À propos des auteurs

Jacqui Kabeta est environnementaliste, chercheuse passionnée, formatrice et mentor. Dans plusieurs pays africains, elle a travaillé dans l'industrie informatique et les environnements d'ONG.

Frank Hofmann est développeur informatique, formateur et auteur et préfère travailler depuis Berlin, Genève et Cape Town. Co-auteur du livre de gestion des paquets Debian disponible auprès de dpmb.organisation

Liens et références

Comment changer les boutons gauche et droit de la souris sur un PC Windows 10
Il est tout à fait normal que tous les appareils de souris d'ordinateur soient conçus de manière ergonomique pour les droitiers. Mais il existe des so...
Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...
Ajoutez des gestes de souris à Windows 10 à l'aide de ces outils gratuits
Ces dernières années, les ordinateurs et les systèmes d'exploitation ont considérablement évolué. Il fut un temps où les utilisateurs devaient utilise...