Apache Solr

Apache Solr Configurar un nodo

Apache Solr Configurar un nodo

Parte 1: Configurar un solo nodo

Hoy en día, almacenar electrónicamente sus documentos o datos en un dispositivo de almacenamiento es rápido y fácil, y también es comparativamente económico. En uso hay una referencia de nombre de archivo que pretende describir de qué se trata el documento. Alternativamente, los datos se guardan en un sistema de administración de bases de datos (DBMS) como PostgreSQL, MariaDB o MongoDB, por nombrar solo algunas opciones. Varios medios de almacenamiento están conectados local o remotamente a la computadora, como una memoria USB, disco duro interno o externo, almacenamiento conectado a la red (NAS), almacenamiento en la nube o basado en GPU / Flash, como en una Nvidia V100 [10].

Por el contrario, el proceso inverso, encontrar los documentos correctos en una colección de documentos, es bastante complejo. En su mayoría, requiere detectar el formato del archivo sin fallas, indexar el documento y extraer los conceptos clave (clasificación del documento). Aquí es donde entra en juego el marco Apache Solr. Ofrece una interfaz práctica para realizar los pasos mencionados: crear un índice de documentos, aceptar consultas de búsqueda, realizar la búsqueda real y devolver un resultado de búsqueda. Apache Solr constituye así el núcleo de una investigación eficaz en una base de datos o silo de documentos.

En este artículo, aprenderá cómo funciona Apache Solr, cómo configurar un solo nodo, indexar documentos, hacer una búsqueda y recuperar el resultado.

Los artículos de seguimiento se basan en este y, en ellos, discutimos otros casos de uso más específicos, como la integración de un DBMS PostgreSQL como fuente de datos o el equilibrio de carga en varios nodos.

Sobre el proyecto Apache Solr

Apache Solr es un marco de motor de búsqueda basado en el poderoso servidor de índice de búsqueda Lucene [2]. Escrito en Java, se mantiene bajo el paraguas de Apache Software Foundation (ASF) [6]. Está disponible gratuitamente bajo la licencia Apache 2.

El tema "Encontrar documentos y datos de nuevo" juega un papel muy importante en el mundo del software, y muchos desarrolladores lo tratan de forma intensiva. El sitio web Awesomeopensource [4] enumera más de 150 proyectos de código abierto para motores de búsqueda. A principios de 2021, ElasticSearch [8] y Apache Solr / Lucene son los dos perros principales cuando se trata de buscar conjuntos de datos más grandes. Desarrollar su motor de búsqueda requiere mucho conocimiento, Frank lo hace con la biblioteca AdvaS Advanced Search [3] basada en Python desde 2002.

Configuración de Apache Solr:

La instalación y operación de Apache Solr no es complicada, es simplemente toda una serie de pasos a realizar por usted. Permita aproximadamente 1 hora para el resultado de la primera consulta de datos. Además, Apache Solr no es solo un proyecto de hobby, sino que también se utiliza en un entorno profesional. Por lo tanto, el entorno del sistema operativo elegido está diseñado para un uso a largo plazo.

Como entorno base para este artículo, usamos Debian GNU / Linux 11, que es la próxima versión de Debian (a principios de 2021) y se espera que esté disponible a mediados de 2021. Para este tutorial, esperamos que ya lo haya instalado, ya sea como sistema nativo, en una máquina virtual como VirtualBox o en un contenedor de AWS.

Además de los componentes básicos, necesita los siguientes paquetes de software para estar instalados en el sistema:

Estos paquetes son componentes estándar de Debian GNU / Linux. Si aún no los ha instalado, puede instalarlos posteriormente de una vez como usuario con derechos administrativos, por ejemplo, root o mediante sudo, como se muestra a continuación:

# apt-get install curl default-java libcommons-cli-java libxerces2-java libtika-java

Habiendo preparado el entorno, el segundo paso es la instalación de Apache Solr. A partir de ahora, Apache Solr no está disponible como un paquete Debian normal. Por lo tanto, es necesario recuperar Apache Solr 8.8 de la sección de descargas del sitio web del proyecto [9] primero. Use el comando wget a continuación para almacenarlo en el directorio / tmp de su sistema:

$ wget -O / tmp https: // descargas.apache.org / lucene / solr / 8.8.0 / solr-8.8.0.tgz

El interruptor -O acorta -output-document y hace que wget almacene el tar recuperado.gz archivo en el directorio dado. El archivo tiene un tamaño de aproximadamente 190 M. A continuación, descomprima el archivo en el directorio / opt usando tar. Como resultado, encontrará dos subdirectorios: / opt / solr y / opt / solr-8.8.0, mientras que / opt / solr se configura como un enlace simbólico al último. Apache Solr viene con un script de configuración que ejecuta a continuación, es el siguiente:

# / opt / solr-8.8.0 / bin / install_solr_service.sh

Esto da como resultado la creación del usuario de Linux que solr se ejecuta en el servicio Solr más su directorio de inicio en / var / solr establece el servicio Solr, se agrega con sus nodos correspondientes e inicia el servicio Solr en el puerto 8983. Estos son los valores predeterminados. Si no está satisfecho con ellos, puede modificarlos durante la instalación o incluso más tarde, ya que el script de instalación acepta los interruptores correspondientes para los ajustes de configuración. Le recomendamos que eche un vistazo a la documentación de Apache Solr con respecto a estos parámetros.

El software Solr está organizado en los siguientes directorios:

Con más detalle, puede leer sobre estos directorios en la documentación de Apache Solr [12].

Gestión de Apache Solr:

Apache Solr se ejecuta como un servicio en segundo plano. Puede iniciarlo de dos maneras, ya sea usando systemctl (primera línea) como usuario con permisos administrativos o directamente desde el directorio de Solr (segunda línea). Enumeramos ambos comandos de terminal a continuación:

# systemctl start solr
$ solr / bin / solr inicio

Detener Apache Solr se hace de manera similar:

# systemctl detener solr
$ solr / bin / solr parada

Lo mismo ocurre al reiniciar el servicio Apache Solr:

# systemctl reiniciar solr
$ solr / bin / solr reiniciar

Además, el estado del proceso Apache Solr se puede mostrar de la siguiente manera:

# systemctl status solr
Estado de $ solr / bin / solr

La salida enumera el archivo de servicio que se inició, tanto la marca de tiempo correspondiente como los mensajes de registro. La siguiente figura muestra que el servicio Apache Solr se inició en el puerto 8983 con el proceso 632. El proceso se está ejecutando correctamente durante 38 minutos.

Para ver si el proceso Apache Solr está activo, también puede realizar una verificación cruzada usando el comando ps en combinación con grep. Esto limita la salida ps a todos los procesos de Apache Solr que están actualmente activos.

# ps ax | grep --color solr

La siguiente figura demuestra esto para un solo proceso. Verá la llamada de Java que está acompañada de una lista de parámetros, por ejemplo, puertos de uso de memoria (512M) para escuchar en 8983 para consultas, 7983 para solicitudes de detención y tipo de conexión (http).

Agregar usuarios:

Los procesos de Apache Solr se ejecutan con un usuario específico llamado solr. Este usuario es útil para administrar los procesos de Solr, cargar datos y enviar solicitudes. Tras la configuración, el usuario solr no tiene una contraseña y se espera que tenga una para iniciar sesión y continuar. Establezca una contraseña para el usuario solr como usuario root, se muestra a continuación:

# passwd solr

Administración de Solr:

La gestión de Apache Solr se realiza mediante el panel de Solr. Esto es accesible a través del navegador web desde http: // localhost: 8983 / solr. La siguiente figura muestra la vista principal.

A la izquierda, verá el menú principal que lo lleva a las subsecciones para el registro, la administración de los núcleos de Solr, la configuración de Java y la información de estado. Elija el núcleo deseado usando el cuadro de selección debajo del menú. En el lado derecho del menú, se muestra la información correspondiente. La entrada del menú Tablero muestra más detalles sobre el proceso de Apache Solr, así como la carga actual y el uso de memoria.

Tenga en cuenta que el contenido del panel cambia según la cantidad de núcleos Solr y los documentos que se han indexado. Los cambios afectan tanto a los elementos del menú como a la información correspondiente que está visible a la derecha.

Comprender cómo funcionan los motores de búsqueda:

En pocas palabras, los motores de búsqueda analizan documentos, los categorizan y le permiten realizar una búsqueda en función de su categorización. Básicamente, el proceso consta de tres etapas, que se denominan rastreo, indexación y clasificación [13].

Arrastrándose es la primera etapa y describe un proceso mediante el cual se recopila contenido nuevo y actualizado. El motor de búsqueda utiliza robots que también se conocen como arañas o rastreadores, de ahí el término rastreo para revisar los documentos disponibles.

La segunda etapa se llama indexación. El contenido recopilado previamente se puede buscar mediante la transformación de los documentos originales en un formato que el motor de búsqueda comprenda. Las palabras clave y los conceptos se extraen y almacenan en bases de datos (masivas).

La tercera etapa se llama clasificación y describe el proceso de clasificación de los resultados de búsqueda según su relevancia con una consulta de búsqueda. Es común mostrar los resultados en orden descendente para que el resultado que tenga la mayor relevancia para la consulta del buscador sea lo primero.

Apache Solr funciona de manera similar al proceso de tres etapas descrito anteriormente. Al igual que el popular motor de búsqueda Google, Apache Solr utiliza una secuencia de recopilación, almacenamiento e indexación de documentos de diferentes fuentes y los hace disponibles / buscables casi en tiempo real.

Apache Solr utiliza diferentes formas de indexar documentos, incluidas las siguientes [14]:

  1. Uso de un administrador de solicitudes de índice al cargar los documentos directamente a Solr. Estos documentos deben estar en formato JSON, XML / XSLT o CSV.
  2. Uso del controlador de solicitud de extracción (celda Solr). Los documentos deben estar en formato PDF u Office, que son compatibles con Apache Tika.
  3. Usando el controlador de importación de datos, que transmite datos de una base de datos y los cataloga usando nombres de columna. El controlador de importación de datos obtiene datos de correos electrónicos, fuentes RSS, datos XML, bases de datos y archivos de texto sin formato como fuentes.

Se utiliza un controlador de consultas en Apache Solr cuando se envía una solicitud de búsqueda. El controlador de consultas analiza la consulta dada basándose en el mismo concepto del controlador de índice para que coincida con la consulta y los documentos indexados previamente. Los partidos se clasifican según su pertinencia o relevancia. A continuación se muestra un breve ejemplo de consulta.

Carga de documentos:

En aras de la simplicidad, usamos un conjunto de datos de muestra para el siguiente ejemplo que ya proporciona Apache Solr. La carga de documentos se realiza como solr del usuario. El paso 1 es la creación de un núcleo con el nombre techproducts (para varios elementos tecnológicos).

$ solr / bin / solr crear -c productos tecnológicos

Todo está bien si ve el mensaje "Se crearon nuevos 'productos tecnológicos' principales". El paso 2 es agregar datos (datos XML de exampledocs) a los productos tecnológicos centrales creados previamente. En uso está la publicación de la herramienta que está parametrizada por -c (nombre del núcleo) y los documentos que se van a cargar.

$ solr / bin / post -c techproducts solr / example / exampledocs / *.xml

Esto dará como resultado el resultado que se muestra a continuación y contendrá la llamada completa más los 14 documentos que se han indexado.

Además, el Tablero muestra los cambios. Una nueva entrada llamada productos tecnológicos está visible en el menú desplegable en el lado izquierdo, y el número de documentos correspondientes cambió en el lado derecho. Desafortunadamente, no es posible obtener una vista detallada de los conjuntos de datos sin procesar.

En caso de que sea necesario eliminar el núcleo o la colección, utilice el siguiente comando:

$ solr / bin / solr eliminar -c techproducts

Consulta de datos:

Apache Solr ofrece dos interfaces para consultar datos: a través del panel de control basado en la web y la línea de comandos. Explicaremos ambos métodos a continuación.

El envío de consultas a través del panel de Solr se realiza de la siguiente manera:

La línea de comandos acepta la misma consulta que en el Tablero. La diferencia es que debes conocer el nombre de los campos de consulta. Para enviar la misma consulta como la anterior, debe ejecutar el siguiente comando en una terminal:

$ rizo
http: // localhost: 8983 / solr / techproducts / query?q = ”manu”: ”Belkin

La salida está en formato JSON, como se muestra a continuación. El resultado consta de un encabezado de respuesta y la respuesta real. La respuesta consta de dos conjuntos de datos.

Terminando:

Felicidades! Has logrado la primera etapa con éxito. La infraestructura básica está configurada y ha aprendido a cargar y consultar documentos.

El siguiente paso cubrirá cómo refinar la consulta, formular consultas más complejas y comprender los diferentes formularios web proporcionados por la página de consulta de Apache Solr. Además, discutiremos cómo posprocesar el resultado de la búsqueda utilizando diferentes formatos de salida como XML, CSV y JSON.

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

Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...
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...