Introduction à Apache Solr. Partie 3 Connexion à PostgreSQL

Introduction à Apache Solr. Partie 3 Connexion à PostgreSQL
Apache Solr [1] est un cadre 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 Debian GNU / Linux 11 qui sera bientôt publié, a lancé un seul noyau de données, des exemples de données téléchargées, démontré comment interroger les données de sortie de différentes manières et post-processus postal 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 d'Apache Solr et des données interrogées à ce sujet. Maintenant, vous apprendrez à connecter le système de gestion de la base de données relationnelle PostgreSQL [4] à Apache Solr et à effectuer 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 courte information

PostgreSQL est un système ingénieux de gestion de la base de données d'objet-relation. Il est disponible pour une utilisation et a subi un développement actif depuis plus de 30 ans maintenant. Il provient de l'Université de Californie, où il est considéré comme le successeur d'Ingres [7].

Dès le début, il est disponible sous open-source (GPL), gratuit à utiliser, modifier et distribuer. Il est largement utilisé et très populaire dans l'industrie. PostgreSQL a été initialement conçu pour fonctionner uniquement sur Unix / Linux Systems et a ensuite été conçu pour fonctionner sur d'autres systèmes comme Microsoft Windows, Solaris et BSD. Le développement actuel de PostgreSQL se fait dans le monde entier par de nombreux bénévoles.

Configuration de PostgreSQL

Si ce n'est pas encore fait, installez PostgreSQL Server et Client localement, par exemple, sur Debian GNU / Linux comme décrit ci-dessous en utilisant APT. Deux articles traitent avec Postgresql - l'article de Yunis Said [5] discute de la configuration sur Ubuntu. Pourtant, il ne fait que rayer la surface tandis 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 INSTALLATION POSTRESQL-13 POSTRESQL-CLIENT-13

Ensuite, vérifiez que PostgreSQL s'exécute à 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 des 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 de l'utilisateur UNIX Postgres:

# Passwd Postgres

Gardez à l'esprit que PostgreSQL possède sa propre base de données d'utilisateurs, tandis que l'utilisateur administratif 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 avec mot de passe 'mot de passe';"

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

Ensuite, pour des raisons administratives, connectez-vous à PostgreSQL en tant que Postgres utilisateur avec le mot de passe créé précédemment. La commande est appelée psql:

$ psql

La connexion à partir d'Apache Solr à la base de données PostgreSQL est effectuée en tant qu'utilisateur Solr. Ajoutons donc le Solr utilisateur PostgreSQL et définissons un mot de passe correspondant pour lui en une seule fois:

$ Créer un utilisateur 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 qui sont en production.

Étape 2: Préparer 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.

$ Créer des voitures de base de données avec propriétaire = solr;

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

$ PSQL -D CARS -U SOLR

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

$ Créer des voitures à table (
id int,
faire Varchar (100),
Modèle Varchar (100),
Description Varchar (100),
couleur varchar (50),
prix int
));

Les voitures de table contiennent six champs de données - id (entier), faire (une chaîne de longueur 100), modèle (une chaîne de longueur 100), description (une chaîne de longueur 100), une couleur (une chaîne de longueur 50) et Prix ​​(entier). Pour avoir des données d'échantillons, ajoutez les valeurs suivantes aux voitures de table en tant qu'instructions SQL:

$ Insérer dans les voitures (ID, Make, modèle, description, couleur, prix)
Valeurs (1, «BMW», «X5», «COOL CAR», «Gray», 45000);
$ Insérer dans les voitures (ID, Make, modèle, description, couleur, prix)
Valeurs (2, «Audi», «Quattro», «Race Car», «White», 30000);

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

Ensuite, sortez de la console PostgreSQL en utilisant \ Q, ou quittez.

$ \ q

Étape 3: Connexion de PostgreSQL avec Apache Solr

La connexion de PostgreSQL et Apache Solr est basée sur deux logiciels - un pilote Java pour PostgreSQL appelé pilote de connectivité de base de données Java (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 explique à Solr comment se connecter à PostgreSQL à l'aide du pilote JDBC.

L'ajout du pilote JDBC est effectué en tant que racine de l'utilisateur comme suit et installe le pilote JDBC à partir du référentiel de package Debian:

# apt-get install libposgresql-jdbc-java

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

$ bin / solr Create -C Cars

Ensuite, étendez la configuration SOLR pour le nœud nouvellement créé. Ajoutez les lignes ci-dessous au fichier / var / solr / data / voitures / conf / solrconfig.XML:

db-data-config.xml

De plus, créez un fichier / var / solr / data / voitures / conf / data-config.XML et stockez 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 aux SGBD PostgreSQL en tant que Solr utilisateur avec le mot de passe correspondant, et définissez la requête SQL à exécuter à partir de PostgreSQL. Pour plus de simplicité, il s'agit d'une instruction sélectionnée qui saisit l'intégralité du contenu du tableau.

Ensuite, redémarrez le serveur Solr pour activer vos modifications. Lorsque la racine de l'utilisateur exécute la commande suivante:

# systemctl redémarrer solr

La dernière étape est l'importation des données, par exemple, en utilisant l'interface Web Solr. La boîte de sélection du nœud choisit les voitures de nœud, puis dans le menu de nœud sous l'import de données d'entrée suivi par la sélection de l'import complet du menu de commande. Enfin, appuyez sur le bouton Exécuter. La figure ci-dessous montre que SOLR a indexé les données.

Étape 4: Interroger les données du SGBD

L'article précédent [3] traite de la question 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. Interroger les données est 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 dans les coulisses et communique avec les SGBD PostgreSQL connectés comme défini dans le core 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 SOLR ou à l'aide de 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 supprimer). SOLR traite la demande à l'aide du SGBD comme unité de stockage et renvoie le résultat de la demande. Ensuite, post-processus la réponse localement.

L'exemple ci-dessous montre la sortie de la requête «/ select?Q = *. * ”Au format JSON dans l'interface Solr Admin. Les données sont extraites des voitures de base de données que nous avons créées plus tôt.

Conclusion

Cet article montre comment interroger une base de données postgresql 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 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

Liens et références

  • [1] Apache Solr, https: // lunene.apache.org / solr /
  • [2] Frank Hofmann et Jacqui Kabeta: Introduction à Apache Solr. Partie 1, https: // linuxhint.com / apache-solr-setup-a-node /
  • [3] Frank Hofmann et Jacqui Kabeta: Introduction à Apache Solr. Interroger les données. Partie 2, http: // linuxhint.com
  • [4] PostgreSQL, https: // www.postgresql.org /
  • [5] Younis a dit: Comment installer et configurer la base de données PostgreSQL sur Ubuntu 20.04, https: // linuxhint.com / install_postgresql_-ubuntu /
  • [6] Frank Hofmann: Configuration de PostgreSQL avec Postgis sur Debian GNU / Linux 10, https: // Linuxhint.com / setup_postgis_debian_postgres /
  • [7] ingres, wikipedia, https: // en.Wikipédia.org / wiki / ingres_ (base de données)