Este es un artículo de seguimiento al anterior. Cubriremos cómo refinar la consulta, formularemos criterios de búsqueda más complejos con diferentes parámetros y comprenderemos los diferentes formularios web de 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.
Consulta Apache Solr
Apache Solr está diseñado como una aplicación web y un servicio que se ejecuta en segundo plano. El resultado es que cualquier aplicación cliente puede comunicarse con SOLR enviando consultas (el enfoque de este artículo), manipulando el núcleo del documento agregando, actualizando y eliminando datos indexados, y optimizando los datos principales. Hay dos opciones: a través de la interfaz del tablero/web o utilizando una API enviando una solicitud correspondiente.
Es común usar el primera opción para fines de prueba y no para acceso regular. La figura a continuación muestra el tablero de la interfaz de usuario de la administración Apache Solr con los diferentes formularios de consulta en el navegador web Firefox.
Primero, en el menú en el campo de selección de núcleo, elija la entrada de menú "Consulta". A continuación, el tablero mostrará varios campos de entrada de la siguiente manera:
Al hacer clic en el botón Ejecutar consulta, ejecuta la solicitud deseada. Para ejemplos prácticos, eche un vistazo a continuación.
Como el segunda opción, Puede enviar una solicitud usando una API. Esta es una solicitud HTTP que cualquier aplicación puede enviar a Apache Solr. Solr procesa la solicitud y devuelve una respuesta. Un caso especial de esto se conecta a Apache Solr a través de Java API. Esto se ha subcontratado a un proyecto separado llamado Solrj [7] - una API Java sin requerir una conexión HTTP.
Sintaxis de consulta
La sintaxis de la consulta se describe mejor en [3] y [5]. Los diferentes nombres de parámetros se corresponden directamente con los nombres de los campos de entrada en los formularios explicados anteriormente. La siguiente tabla los enumera, además de ejemplos prácticos.
Índice de parámetros de consulta
Parámetro | Descripción | Ejemplo |
---|---|---|
Q | El parámetro de consulta principal de Apache Solr: los nombres y valores de campo. Su similitud puntúa el documento de los términos en este parámetro. | ID: 5 COCHES:*Adilla* *: X5 |
FQ | Restringir el resultado establecido en los documentos superset que coinciden con el filtro, por ejemplo, definido a través del analizador de consulta de rango de funciones | modelo ID, modelo |
comenzar | Offsets para los resultados de la página (Begin). El valor predeterminado de este parámetro es 0. | 5 |
hilera | Offsets para los resultados de la página (final). El valor de este parámetro es 10 por defecto | 15 |
clasificar | Especifica la lista de campos separados por comas, en función de los cuales los resultados de la consulta deben ordenarse | modelo ASC |
Florida | Especifica la lista de los campos para devolver todos los documentos en el conjunto de resultados | modelo ID, modelo |
WT | Este parámetro representa el tipo de escritor de respuesta que queríamos ver el resultado. El valor de esto es JSON por defecto. | json xml |
Las búsquedas se realizan a través de HTTP Get Solicitud con la cadena de consulta en el parámetro Q. Los ejemplos a continuación aclararán cómo funciona. En uso está curl para enviar la consulta a Solr que está instalada localmente.
curl http: // localhost: 8983/solr/cars/consulta?Q =*:*
curl http: // localhost: 8983/solr/cars/consulta?Q = ID: 5
curl http: // localhost: 8983/solr/cars/consulta?q = id:*\ & fl = modelo
Opción 2 (consulta en marcas individuales):
curl 'http: // localhost: 8983/solr/cars/consulta?q = id:*& fl = modelo '
curl http: // localhost: 8983/solr/cars/consulta -d '
q =*:*&
sort = Price Desc &
fl = hacer, modelo, precio '
curl http: // localhost: 8983/solr/cars/consulta -d '
q =*:*&
filas = 5 y
sort = Price Desc &
fl = hacer, modelo, precio '
curl http: // localhost: 8983/solr/cars/consulta -d '
q =*:*&
filas = 5 y
sort = Price Desc &
fl = hacer, modelo, precio, puntaje '
curl http: // localhost: 8983/solr/cars/consulta -d '
q =*:*&
fl =*, puntaje '
Además, puede definir su propio controlador de solicitud para enviar los parámetros de solicitud opcionales al analizador de consultas para controlar qué información se devuelve.
Analizadores de consultas
Apache Solr utiliza un supuesto analizador de consultas: un componente que traduce su cadena de búsqueda en instrucciones específicas para el motor de búsqueda. Un analizador de consultas se interpone entre usted y el documento que está buscando.
Solr viene con una variedad de tipos de analizador que difieren en la forma en que se maneja una consulta enviada. El analizador de consultas estándar funciona bien para consultas estructuradas, pero es menos tolerante a los errores de sintaxis. Al mismo tiempo, tanto el analizador de consultas Dismax y Exmax se optimizan para consultas similares a un lenguaje natural. Están diseñados para procesar frases simples ingresadas por los usuarios y buscar términos individuales en varios campos utilizando diferentes ponderaciones.
Además, Solr también ofrece consultas de funciones llamadas que permiten combinar una función con una consulta para generar una puntuación de relevancia específica. Estos analizadores se denominan análisis de consultas de funciones y de consulta de rango de funciones. El siguiente ejemplo muestra el último para elegir todos los conjuntos de datos para "BMW" (almacenado en la marca del campo de datos) con los modelos de 318 a 323:
curl http: // localhost: 8983/solr/cars/consulta -d '
Q = Make: BMW &
FQ = Modelo: [318 a 323] '
Postprocesamiento de resultados
Enviar consultas a Apache Solr es una parte, pero posterior al procesamiento del resultado de la búsqueda del otro. Primero, puede elegir entre diferentes formatos de respuesta: desde JSON hasta XML, CSV y un formato de rubí simplificado. Simplemente especifique el parámetro WT correspondiente en una consulta. El ejemplo de código a continuación demuestra esto para recuperar el conjunto de datos en formato CSV para todos los elementos usando curl con escapado y:
curl http: // localhost: 8983/solr/cars/consulta?q = id: 5 \ & wt = csv
La salida es una lista separada por comas de la siguiente manera:
Para recibir el resultado como datos XML, pero los dos campos de salida fabrican y modelan, solo ejecutar la siguiente consulta:
curl http: // localhost: 8983/solr/cars/consulta?q =*:*\ & fl = make, model \ & wt = xml
La salida es diferente y contiene tanto el encabezado de respuesta como la respuesta real:
Wget simplemente imprime los datos recibidos en stdout. Esto le permite procesar postprocese la respuesta utilizando herramientas de línea de comandos estándar. Para enumerar algunos, esto contiene JQ [9] para JSON, XSLTPROC, XIDEL, XMLSTARLET [10] para XML y CSVKIT [11] para el formato CSV.
Conclusión
Este artículo muestra diferentes formas de enviar consultas a Apache Solr y explica cómo procesar el resultado de la búsqueda. En la siguiente parte, aprenderá cómo usar Apache Solr para buscar en PostgreSQL, un sistema de gestión de bases de datos relacionales.
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