Introducción a Apache Solr. Parte 3 que se conecta a PostgreSQL

Introducción a Apache Solr. Parte 3 que se conecta a PostgreSQL
Apache Solr [1] es un marco de motor de búsqueda escrito en Java y basado en la biblioteca de búsqueda de Lucene [6]. En los dos artículos anteriores, configuramos Apache Solr en el Debian GNU/Linux 11 que pronto será lanzado, iniciamos un solo núcleo de datos, datos de ejemplo cargados, demostró cómo consultar datos de salida de diferentes maneras y postprocesos posteriores él.

Este es un artículo de seguimiento para los dos anteriores [2,3]. Hasta ahora, cargamos datos indexados en el almacenamiento de Apache Solr y consultamos los datos sobre eso. Ahora, aprenderá cómo conectar el sistema de gestión de bases de datos relacionales PostgreSQL [4] a Apache Solr y hacer una búsqueda en él utilizando las capacidades de SOLR. Esto hace que sea necesario realizar varios pasos descritos a continuación con más detalle: configurar PostgreSQL, preparar una estructura de datos en una base de datos PostgreSQL y conectar PostgreSQL a Apache Solr y hacer nuestra búsqueda.

Paso 1: Configuración de PostgreSQL

Acerca de PostgreSQL - Una breve información

PostgreSQL es un ingenioso sistema de gestión de bases de datos relacionales de objetos. Ha estado disponible para su uso y se ha sometido a un desarrollo activo durante más de 30 años. Se origina en la Universidad de California, donde se ve como el sucesor de Ingres [7].

Desde el principio, está disponible en código abierto (GPL), de forma gratuita de usar, modificar y distribuir. Es ampliamente utilizado y muy popular en la industria. PostgreSQL se diseñó inicialmente para ejecutarse solo en sistemas UNIX/Linux y luego se diseñó para ejecutarse en otros sistemas como Microsoft Windows, Solaris y BSD. El desarrollo actual de PostgreSQL está siendo realizado en todo el mundo por numerosos voluntarios.

Configuración de PostgreSQL

Si aún no se hace, instale el servidor PostgreSQL y el cliente localmente, por ejemplo, en Debian GNU/Linux como se describe a continuación utilizando APT. Dos artículos están tratando con PostgreSQL - El artículo de Yunis Said [5] discute la configuración en Ubuntu. Aún así, solo rasca la superficie, mientras que mi artículo anterior se centra en la combinación de PostgreSQL con la extensión SIG Postgis [6]. La descripción aquí resume todos los pasos que necesitamos para esta configuración en particular.

# APT Instale PostgreSQL-13 PostgreSQL-Client-13

A continuación, verifique que PostgreSQL se esté ejecutando con la ayuda del comando pg_isready. Esta es una utilidad que forma parte del paquete PostgreSQL.

# pg_isready
/var/run/postgresql: 5432 - se aceptan conexiones

La salida anterior muestra que PostgreSQL está listo y esperando conexiones entrantes en el puerto 5432. A menos que se establezca lo contrario, esta es la configuración estándar. El siguiente paso es configurar la contraseña para el usuario de UNIX Postgres:

# PASSWD Postgres

Tenga en cuenta que PostgreSQL tiene su propia base de datos de usuarios, mientras que el usuario administrativo de PostgreSQL Postgres aún no tiene una contraseña. El paso anterior también debe hacerse para el usuario PostgreSQL Postgres también:

# SU - Postgres
$ PSQL -C "Alterar el usuario Postgres con contraseña 'contraseña';"

Para simplificar, la contraseña elegida es solo una contraseña y debe ser reemplazada por una frase de contraseña más segura en sistemas que no sean pruebas. El comando anterior alterará la tabla de usuario interna de PostgreSQL. Tenga en cuenta las diferentes comillas: la contraseña en cotizaciones individuales y la consulta SQL en cotizaciones dobles para evitar que el intérprete de shell evalúe el comando de la manera incorrecta. Además, agregue un semicolon después de la consulta SQL antes de las cotizaciones dobles al final del comando.

A continuación, por razones administrativas, conéctese a PostgreSQL como Postgress de usuario con la contraseña creada anteriormente. El comando se llama psql:

$ psql

La conexión desde Apache Solr a la base de datos PostgreSQL se realiza como el usuario SOLR. Entonces, agregemos el usuario de PostgreSQL Solr y establezcamos un Solr de contraseña correspondiente para él de una vez:

$ Crear usuario Solr con Passwd 'Solr';

Para simplificar, la contraseña elegida es solo Solr y debe ser reemplazada por una frase de contraseña más segura en los sistemas que están en producción.

Paso 2: Preparación de una estructura de datos

Para almacenar y recuperar datos, se necesita una base de datos correspondiente. El siguiente comando crea una base de datos de automóviles que pertenece al usuario Solr y se utilizará más tarde.

$ Crear autos de base de datos con propietario = solr;

Luego, conéctese a los autos de base de datos recién creados como el usuario Solr. La opción -d (opción corta para -dbname) define el nombre de la base de datos y -u (opción corta para -username) el nombre del usuario de PostgreSQL.

$ PSQL -d Cars -U Solr

Una base de datos vacía no es útil, pero las tablas estructuradas con contenido do. Cree la estructura de los autos de mesa de la siguiente manera:

$ Crear autos de mesa (
Yo dint,
hacer varchar (100),
modelo varchar (100),
Descripción Varchar (100),
Color Varchar (50),
precio int
);

Los autos de tabla contienen seis campos de datos: ID (entero), make (una cadena de longitud 100), modelo (una cadena de longitud 100), descripción (una cadena de longitud 100), color (una cadena de longitud 50) y precio (entero). Para tener algunos datos de muestra, agregue los siguientes valores a los autos de tabla como declaraciones SQL:

$ Insertar en automóviles (ID, marca, modelo, descripción, color, precio)
Valores (1, 'BMW', 'x5', 'Car Cool', 'Grey', 45000);
$ Insertar en automóviles (ID, marca, modelo, descripción, color, precio)
Valores (2, 'audi', 'quattro', 'auto de carrera', 'blanco', 30000);

El resultado es que dos entradas que representan un BMW X5 gris que cuesta USD 45000, descrito como un automóvil genial, y un auto de carrera blanco Audi Quattro que cuesta USD 30000.

A continuación, salga de la consola PostgreSQL usando \ Q, o renuncia.

$ \ Q

Paso 3: Conectar PostgreSQL con Apache Solr

La conexión de PostgreSQL y Apache Solr se basa en dos piezas de software: un controlador Java para PostgreSQL llamado controlador Java Database Connectivity (JDBC) y una extensión a la configuración del servidor SOLR. El controlador JDBC agrega una interfaz Java a PostgreSQL, y la entrada adicional en la configuración de SOLR le dice a Solr cómo conectarse a PostgreSQL usando el controlador JDBC.

Agregar el controlador JDBC se realiza como raíz del usuario de la siguiente manera, e instala el controlador JDBC desde el repositorio de paquetes Debian:

# apt-get install libpostgresql-jdbc-java

En el lado de Apache Solr, también tiene que existir un nodo correspondiente. Si aún no se hace, como UNIX User Solr, cree los autos de nodo de la siguiente manera:

$ bin/solr crea -c autos

A continuación, extienda la configuración SOLR para el nodo recién creado. Agregue las líneas a continuación al archivo/var/solr/data/cars/conf/solrconfig.XML:

DB-Data-Config.xml

Además, cree un archivo/var/solr/data/cars/conf/data-config.XML, y almacene el siguiente contenido en él:

Las líneas anteriores corresponden a la configuración anterior y definen el controlador JDBC, especifiquen el puerto 5432 para conectarse a PostgreSQL DBMS como el usuario Solr con la contraseña correspondiente, y establezca la consulta SQL que se ejecutará desde PostgreSQL. Para simplificar, es una declaración selecta que toma todo el contenido de la tabla.

A continuación, reinicie el servidor SOLR para activar sus cambios. A medida que el usuario ejecuta el siguiente comando:

# SystemCTL reiniciar solr

El último paso es la importación de los datos, por ejemplo, utilizando la interfaz web Solr. El cuadro de selección de nodo elige los autos de nodo, luego desde el menú de nodo debajo de la entrada de datos de entrada seguida de la selección de importación completa desde el menú de comando directamente. Finalmente, presione el botón Ejecutar. La siguiente figura muestra que Solr ha indexado con éxito los datos.

Paso 4: Consulta de datos del DBMS

El artículo anterior [3] trata de consultar datos en detalle, recuperar el resultado y seleccionar el formato de salida deseado: CSV, XML o JSON. La consulta de los datos se realiza de manera similar a lo que ha aprendido antes, y no se ve ninguna diferencia para el usuario. Solr hace todo el trabajo detrás de escena y se comunica con los DBMS postgreSQL conectados como se define en el núcleo o clúster de Solr seleccionado.

El uso de SOLR no cambia, y las consultas se pueden enviar a través de la interfaz de administración SOLR o usando CURL o WGET en la línea de comandos. Envía una solicitud GET con una URL específica al servidor SOLR (consulta, actualización o eliminación). SOLR procesa la solicitud utilizando el DBMS como una unidad de almacenamiento y devuelve el resultado de la solicitud. A continuación, el procesamiento posterior a la respuesta localmente.

El ejemplo a continuación muestra la salida de la consulta "/Seleccionar?Q =*. *”En formato JSON en la interfaz de administración de Solr. Los datos se recuperan de los autos de la base de datos que creamos anteriormente.

Conclusión

Este artículo muestra cómo consultar una base de datos PostgreSQL de Apache Solr y explica la configuración correspondiente. En la siguiente parte de esta serie, aprenderá a combinar varios nodos Solr en un clúster solr.

Sobre los autores

Jacqui Kabeta es un ambientalista, investigador ágil, entrenador y mentor. En varios países africanos, ha trabajado en los entornos de la industria de TI y las ONG.

Frank Hofmann es un desarrollador de TI, entrenador y autor y prefiere trabajar desde Berlín, Ginebra y Ciudad del Cabo. Coautor del libro de gestión de paquetes de Debian disponible en DPMB.organizar

Enlaces y referencias

  • [1] Apache Solr, https: // Lucene.apache.org/solr/
  • [2] Frank Hofmann y Jacqui Kabeta: Introducción a Apache Solr. Parte 1, https: // Linuxhint.com/apache-solr-setup-a-nodo/
  • [3] Frank Hofmann y Jacqui Kabeta: Introducción a Apache Solr. Consulta de datos. Parte 2, http: // Linuxhint.comunicarse
  • [4] PostgreSQL, https: // www.postgresql.org/
  • [5] Younis dijo: Cómo instalar y configurar la base de datos PostgreSQL en Ubuntu 20.04, https: // Linuxhint.com/install_postgresql_-ubuntu/
  • [6] Frank Hofmann: Configuración de PostgreSQL con Postgis en Debian Gnu/Linux 10, https: // Linuxhint.com/setup_postgis_debian_postgres/
  • [7] Ingres, Wikipedia, https: // en.Wikipedia.org/wiki/ingres_ (base de datos)