Apache Solr

Introducción a Apache Solr. Parte 3 Conexión a PostgreSQL

Introducción a Apache Solr. Parte 3 Conexión 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 Debian GNU / Linux 11, que se lanzará próximamente, iniciamos un único núcleo de datos, cargamos datos de ejemplo, demostramos cómo consultar datos de salida de diferentes maneras y posprocesamos eso.

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

Paso 1: configurar 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 ha experimentado un desarrollo activo durante más de 30 años. Tiene su origen en la Universidad de California, donde se lo ve como el sucesor de Ingres [7].

Desde el principio, está disponible bajo código abierto (GPL), libre 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. Numerosos voluntarios están realizando el desarrollo actual de PostgreSQL en todo el mundo.

Configuración de PostgreSQL

Si aún no lo ha hecho, instale el servidor y el cliente de PostgreSQL localmente, por ejemplo, en Debian GNU / Linux como se describe a continuación usando apt. Dos artículos tratan sobre PostgreSQL: el artículo de Yunis Said [5] analiza 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 GIS PostGIS [6]. La descripción aquí resume todos los pasos que necesitamos para esta configuración en particular.

# apt install 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

El resultado 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 establecer 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 contraseña. El paso anterior también debe realizarse para el usuario de PostgreSQL Postgres:

# su - Postgres
$ psql -c "ALTER USER Postgres WITH PASSWORD 'contraseña';"

Para simplificar, la contraseña elegida es solo una contraseña y debe reemplazarse por una frase de contraseña más segura en sistemas que no sean de prueba. El comando anterior alterará la tabla de usuarios internos de PostgreSQL. Tenga en cuenta las diferentes comillas: la contraseña entre comillas simples y la consulta SQL entre comillas dobles para evitar que el intérprete de shell evalúe el comando de manera incorrecta. Además, agregue un punto y coma después de la consulta SQL antes de las comillas dobles al final del comando.

A continuación, por motivos administrativos, conéctese a PostgreSQL como usuario Postgres 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, agreguemos el solr de usuario de PostgreSQL y establezcamos un solr de contraseña correspondiente para él de una sola vez:

$ CREAR USUARIO solr CON PASSWD 'solr';

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

Paso 2: preparar 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 adelante.

$ CREAR coches DE BASE DE DATOS CON PROPIETARIO = solr;

Luego, conéctese a la base de datos de autos recién creada como 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 coches -U solr

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

$ Coches CREATE TABLE (
Yo dint,
hacer varchar (100),
modelo varchar (100),
descripción varchar (100),
varchar de color (50),
precio int
);

Los carros de la tabla contienen seis campos de datos: id (entero), marca (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 la tabla carros como declaraciones SQL:

$ INSERT INTO cars (id, marca, modelo, descripción, color, precio)
VALORES (1, 'BMW', 'X5', 'Coche genial', 'gris', 45000);
$ INSERT INTO cars (id, marca, modelo, descripción, color, precio)
VALORES (2, 'Audi', 'Quattro', 'coche de carreras', 'blanco', 30000);

El resultado son dos entradas que representan un BMW X5 gris que cuesta USD 45000, descrito como un auto genial, y un auto de carreras blanco Audi Quattro que cuesta USD 30000.

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

$ \ q

Paso 3: Conectando 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 para 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.

La adición del controlador JDBC se realiza como usuario raíz de la siguiente manera e instala el controlador JDBC desde el repositorio de paquetes de Debian:

# apt-get install libpostgresql-jdbc-java

En el lado de Apache Solr, también debe existir un nodo correspondiente. Si aún no lo ha hecho, como solr el usuario de UNIX, cree los coches de nodo de la siguiente manera:

$ bin / solr crear -c coches

A continuación, amplíe la configuración de Solr para el nodo recién creado. Agregue las líneas siguientes 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, especifique el puerto 5432 para conectarse al DBMS de PostgreSQL como el usuario solr con la contraseña correspondiente y configure la consulta SQL para que se ejecute desde PostgreSQL. Para simplificar, es una declaración SELECT que toma todo el contenido de la tabla.

A continuación, reinicie el servidor Solr para activar sus cambios. Como usuario root, ejecute el siguiente comando:

# systemctl reiniciar solr

El último paso es la importación de los datos, por ejemplo, utilizando la interfaz web de Solr. El cuadro de selección de nodo elige los coches de nodo, luego desde el menú Nodo debajo de la entrada Importación de datos seguido de la selección de importación completa desde el menú Comando directamente a él. Finalmente, presione el botón Ejecutar. La siguiente figura muestra que Solr ha indexado correctamente 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 el usuario no ve ninguna diferencia. Solr hace todo el trabajo detrás de escena y se comunica con el DBMS de PostgreSQL conectado 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 de 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 unidad de almacenamiento y devuelve el resultado de la solicitud. A continuación, posprocese la respuesta localmente.

El siguiente ejemplo muestra el resultado de la consulta "/ select?q = *. * ”En formato JSON en la interfaz de administración de Solr. Los datos se recuperan de la base de datos de autos que creamos anteriormente.

Conclusión

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

Sobre los autores

Jacqui Kabeta es ambientalista, ávida investigadora, capacitadora y mentora. En varios países africanos, ha trabajado en la industria de la tecnología de la información y entornos de ONG.

Frank Hofmann es desarrollador de TI, formador y autor y prefiere trabajar desde Berlín, Ginebra y Ciudad del Cabo. Coautor del Libro de administración de paquetes de Debian disponible en dpmb.org

Enlaces y referencias

Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...
OpenTTD frente a Simutrans
Crear su propia simulación de transporte puede ser divertido, relajante y extremadamente atractivo. Es por eso que debes asegurarte de probar tantos j...
Tutorial de OpenTTD
OpenTTD es uno de los juegos de simulación empresarial más populares que existen. En este juego, necesitas crear un maravilloso negocio de transporte....