Parte 1: Configuración de un solo nodo
Hoy, almacenar electrónicamente sus documentos o datos en un dispositivo de almacenamiento es rápido y fácil, también es comparablemente barato. En uso hay una referencia de nombre de archivo que está destinada a describir de qué se trata el documento. Alternativamente, los datos se mantienen en un sistema de gestión de bases de datos (DBMS) como PostgreSQL, MariadB o MongoDB para nombrar algunas opciones. Varios medios de almacenamiento están conectados localmente o remotamente a la computadora, como Stick USB, disco duro interno o externo, almacenamiento conectado a la red (NAS), almacenamiento en la nube o GPU/flash, como en un NVIDIA V100 [10].
Por el contrario, el proceso inverso, encontrar los documentos correctos en una recopilación de documentos, es bastante complejo. Se requiere principalmente detectar el formato de archivo sin fallas, indexar el documento y extraer los conceptos clave (clasificación de documentos). Aquí es donde entra el marco de Apache Solr. Ofrece una interfaz práctica para hacer los pasos mencionados: construir un índice de documentos, aceptar consultas de búsqueda, realizar la búsqueda real y devolver un resultado de búsqueda. Apache Solr forma el núcleo para una investigación efectiva en una base de datos o documento de silo.
En este artículo, aprenderá cómo funciona Apache Solr, cómo configurar un solo nodo, documentos de índice, 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 integrar un DBMS PostgreSQL como fuente de datos o equilibrio de carga en múltiples nodos.
Sobre el proyecto Apache Solr
Apache Solr es un marco de motor de búsqueda basado en el potente servidor de índice de búsqueda de 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 "Encuentra documentos y datos nuevamente" juega un papel muy importante en el mundo del software, y muchos desarrolladores lo tratan intensamente. El sitio web AwesomePensource [4] enumera más de 150 proyectos de código abierto del motor de búsqueda. A principios de 2021, Elasticsearch [8] y Apache Solr/Lucene son los dos mejores perros cuando se trata de buscar conjuntos de datos más grandes. El desarrollo de su motor de búsqueda requiere mucho conocimiento, Frank lo hace con la Biblioteca de búsqueda avanzada de Advanced [3] basada en Python desde 2002.
Configuración de Apache Solr:
La instalación y la operación de Apache Solr no son complicadas, es simplemente una serie completa de pasos para ser llevados a cabo 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 pasatiempo, sino que también se usa en un entorno profesional. Por lo tanto, el entorno del sistema operativo elegido está diseñado para uso a largo plazo.
Como entorno base para este artículo, utilizamos Debian GNU/Linux 11, que es el próximo lanzamiento 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 el sistema nativo, en una máquina virtual como VirtualBox o un contenedor de AWS.
Además de los componentes básicos, necesita instalar los siguientes paquetes de software en el sistema:
Estos paquetes son componentes estándar de Debian GNU/Linux. Si aún no está instalado, puede postularlos de una vez como usuario con derechos administrativos, por ejemplo, root o a través de sudo, que se muestra de la siguiente manera:
# apt-get instalación curl predeterminado-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 de Debian regular. Por lo tanto, se requiere recuperar Apache Solr 8.8 de la sección de descarga 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 alquitrán recuperado.Archivo GZ en el directorio dado. El archivo tiene un tamaño de aproximadamente 190 m. A continuación, desempaquete el archivo en el directorio /opt usando alquitrán. Como resultado, encontrará dos subdirectorios - /opt /solr y /opt /solr -8.8.0, mientras que /opt /solr se configura como un enlace simbólico para el ú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.mierda
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, agregado con sus nodos correspondientes e inicia el servicio SOLR en el puerto 8983. Estos son los valores predeterminados. Si no está contento con ellos, puede modificarlos durante la instalación o incluso a los laters en el que el script de instalación acepta los conmutadores 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].
Administració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 SOLR (segunda línea). Enumeramos ambos comandos de terminal a continuación:
# SystemCTL Start Solr
$ SORITO SOLR/BIN/SOLR
Detener Apache Solr se realiza de manera similar:
# SystemCtl Stop Solr
$ Solr/bin/Solr Stop
La misma manera va para 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
$ Solr/bin/Solr Status
La salida enumera el archivo de servicio que se inició, tanto la marca de tiempo y los mensajes de registro correspondientes. La siguiente figura muestra que el servicio Apache Solr se inició en el puerto 8983 con el proceso 632. El proceso se ejecuta con éxito durante 38 minutos.
Para ver si el proceso Apache Solr está activo, también puede verificar el comando PS en combinación con GREP. Esto limita la salida de PS a todos los procesos de Apache Solr que actualmente están activos.
# PS AX | Grep -Color Solr
La siguiente figura demuestra esto para un solo proceso. Verá la llamada de Java que se acompaña de una lista de parámetros, por ejemplo, los puertos de uso de memoria (512m) para escuchar en 8983 para consultas, 7983 para solicitudes de parada 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 procesos 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 para continuar. Establezca una contraseña para el usuario Solr como Root del usuario, se muestra de la siguiente manera:
# passwd solr
Administración de Solr:
Administrar Apache Solr se realiza con el tablero Solr. Esto se puede acceder a través del navegador web desde http: // localhost: 8983/solr. La siguiente figura muestra la vista principal.
A la izquierda, ve el menú principal que lo lleva a las subsecciones para el registro, la administración de los núcleos Solr, la configuración de Java y la información de estado. Elija el núcleo deseado con el cuadro de selección debajo del menú. En el lado derecho del menú, se muestra la información correspondiente. La entrada del menú del tablero muestra más detalles sobre el proceso Apache Solr, así como el uso actual de carga y memoria.
Sepa que el contenido del tablero cambia dependiendo de la cantidad de núcleos solr y los documentos que se han indexado. Los cambios afectan tanto los elementos del menú como la información correspondiente que es visible a la derecha.
Comprender cómo funcionan los motores de búsqueda:
Simplemente hablando, los motores de búsqueda analizan documentos, los clasifiquen y le permiten hacer una búsqueda basada en su categorización. Básicamente, el proceso consta de tres etapas, que se denominan rastreo, indexación y clasificación [13].
Rastreo es la primera etapa y describe un proceso por 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 pasar por documentos disponibles.
La segunda etapa se llama indexación. El contenido recopilado previamente se hace de búsqueda transformando los documentos originales en un formato que entiende el motor de búsqueda. 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 clasificar los resultados de búsqueda de acuerdo con 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 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 documentos de recopilación, almacenamiento e indexación de diferentes fuentes y los hace disponibles/se puede buscar en tiempo real en tiempo real.
Apache Solr utiliza diferentes formas de indexar documentos, incluidos los siguientes [14]:
Se utiliza un controlador de consulta en Apache Solr cuando se envía una solicitud de búsqueda. El controlador de consulta analiza la consulta dada en función del mismo concepto del controlador de índice para que coincida con la consulta y los documentos previamente indexados. Los partidos se clasifican de acuerdo con su idoneidad o relevancia. Un breve ejemplo de consulta se demuestra a continuación.
Subiendo documentos:
En aras de la simplicidad, utilizamos un conjunto de datos de muestra para el siguiente ejemplo que ya proporciona Apache Solr. La carga de documentos se realiza como el usuario Solr. El paso 1 es la creación de un núcleo con el nombre TechProducts (para varios elementos tecnológicos).
$ solr/bin/solr create -c techProducts
Todo está bien si ve el mensaje "creado nuevo núcleo 'techproducts'". El paso 2 está agregando datos (datos XML de ExpLEDOCS) a los centros de tecnología básicos previamente creados anteriormente. En uso está la publicación de la herramienta que se parametriza por -c (nombre del núcleo) y los documentos a cargar.
$ solr/bin/post -c techProducts Solr/Ejemplo/Ejempledocs/*.xml
Esto dará como resultado la salida 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. Se ve una nueva entrada llamada TechProducts en el menú desplegable en el lado izquierdo, y el número de documentos correspondientes cambió en el lado derecho. Desafortunadamente, no es posible una vista detallada de los conjuntos de datos sin procesar.
En caso de que el núcleo/colección sea necesario eliminar, use el siguiente comando:
$ solr/bin/solr delete -c techproducts
Consulta de datos:
Apache Solr ofrece dos interfaces para consultar datos: a través del tablero y la línea de comandos basados en la web. Explicaremos ambos métodos a continuación.
El envío de consultas a través del tablero 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 saber el nombre de los campos de consulta. Para enviar la misma consulta como la anterior, debe ejecutar el siguiente comando en un terminal:
$ curl
http: // localhost: 8983/solr/techproducts/consuly?Q = "Manu": "Belkin
La salida está en formato JSON, como se muestra a continuación. El resultado consiste en 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 usted 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 procesar el resultado de la búsqueda utilizando diferentes formatos de salida como XML, CSV y JSON.
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