Tutorial de Apache Solr

Tutorial de Apache Solr
En esta lección, veremos cómo podemos usar Apache Solr para almacenar datos y cómo podemos ejecutar varias consultas sobre él.

¿Qué es Apache Solr?

Apache Solr es una de las bases de datos NoSQL más populares que se pueden usar para almacenar datos y consultarlos en tiempo real en tiempo real. Se basa en Apache Lucene y está escrito en Java. Al igual que Elasticsearch, admite consultas de bases de datos a través de API REST. Esto significa que podemos usar llamadas HTTP simples y usar métodos HTTP como Get, Post, Put, Eliminar, etc. Para acceder a los datos. También proporciona una opción para obtener datos en forma de XML o JSON a través de las API REST.

Arquitectura: Apache Solr

Antes de que podamos comenzar a trabajar con Apache Solr, debemos comprender los componentes que constituyen Apache Solr. Echemos un vistazo a algunos componentes que tiene:

Arquitectura de apache solr

Tenga en cuenta que solo los componentes principales para SOLR se muestran en la figura anterior. Entendamos su funcionalidad aquí también:

  • Solicitar manejadores: Las solicitudes que un cliente hace para Solr se administra por un controlador de solicitudes. La solicitud puede ser cualquier cosa, desde agregar un nuevo registro para actualizar un índice en SOLR. Los manejadores identifican el tipo de solicitud del método HTTP utilizado con la asignación de solicitudes.
  • Componente de búsqueda: Este es uno de los componentes más importantes por el que Solr es conocido. El componente de búsqueda se encarga de realizar operaciones relacionadas con la búsqueda como confusión, correctas ortográficas, consultas de términos, etc.
  • Consulta: Este es el componente que realmente analiza la consulta que un cliente pasa al controlador de solicitudes y divide una consulta en múltiples partes que puede ser entendida por el motor subyacente
  • Escritor de respuesta: Este componente es responsable de administrar el formato de salida para las consultas pasadas al motor. El escritor de respuesta nos permite proporcionar una salida en varios formatos como XML, JSON, etc.
  • Analizador/tokenizador: Lucene Engine entiende las consultas en forma de múltiples tokens. Solr analiza la consulta, la divide en múltiples fichas y la pasa al motor Lucene.
  • Actualizar el procesador de solicitudes: Cuando se ejecuta una consulta y realiza operaciones como actualizar un índice y datos relacionados con él, el componente del procesador de solicitud de actualización es responsable de administrar los datos en el índice y modificarlo.

Comenzando con Apache Solr

Para comenzar a usar Apache Solr, debe instalarse en la máquina. Para hacer esto, lea Instalar Apache Solr en Ubuntu.

Asegúrese de tener una instalación de Solr activa si desea probar ejemplos que presentamos más adelante en la lección y la página de administración puede accesible en localhost:

Página de inicio de Apache Solr

Insertar datos

Para comenzar, consideremos una colección en Solr que llamamos como linux_hint_collection. No es necesario definir explícitamente esta colección, ya que cuando insertamos el primer objeto, la colección se realizará automáticamente. Probemos nuestra primera llamada API REST para insertar un nuevo objeto en la colección nombrada linux_hint_collection.

Insertar datos

Curl -x post -h 'Content -type: Application/JSON'
'http: // localhost: 8983/solr/linux_hint_collection/update/json/docs' --data-binary '

"ID": "Iduye",
"Nombre": "Shubham"
'

Esto es lo que recuperamos con este comando:

Comando para insertar datos en Solr

Los datos también se pueden insertar utilizando la página de inicio de Solr que observamos anteriormente. Probemos esto aquí para que las cosas estén claras:

Insertar datos a través de la página de inicio de Solr

Como Solr tiene una excelente manera de interacción con las API RESTful HTTP, demostraremos la interacción de DB utilizando las mismas API a partir de ahora y no se centrará mucho en insertar datos a través de la página web de Solr.

Enumere todas las colecciones

Podemos enumerar todas las colecciones en Apache Solr usando una API REST también. Aquí está el comando que podemos usar:

Enumere todas las colecciones

curl http: // localhost: 8983/solr/admin/colecciones?Acciones = list & wt = json

Veamos la salida para este comando:

Vemos dos colecciones aquí que existen en nuestra instalación de Solr.

Obtener objeto por ID

Ahora, veamos cómo podemos obtener datos de la colección Solr con una identificación específica. Aquí está el comando REST API:

Obtener objeto por ID

curl http: // localhost: 8983/solr/linux_hint_collection/get?id = iduye

Esto es lo que recuperamos con este comando:

Obtener todos los datos

En nuestra última API REST, consultamos datos utilizando una identificación específica. Esta vez, obtendremos todos los datos presentes en nuestra colección Solr.

Obtener objeto por ID

curl http: // localhost: 8983/solr/linux_hint_collection/select?Q =*:*

Esto es lo que recuperamos con este comando:

Observe que hemos usado '*:*' en el parámetro de consulta. Esto especifica que Solr debería devolver todos los datos presentes en la recopilación. Incluso si hemos especificado que todos los datos deben devolverse, Solr entiende que la recopilación podría tener una gran cantidad de datos y así, solo devolverá los primeros 10 documentos.

Eliminar todos los datos

Hasta ahora, todas las API que probamos estaban usando un formato JSON. Esta vez, intentaremos el formato de consulta XML. El uso del formato XML es extremadamente similar al JSON ya que XML también es autodescriptivo.

Intentemos un comando para eliminar todos los datos que tenemos en nuestra colección.

Eliminar todos los datos

curl "http: // localhost: 8983/solr/linux_hint_collection/update?commit = true "-h" Content-type: text/xml "--data-binary"*:*"

Esto es lo que recuperamos con este comando:

Eliminar todos los datos utilizando la consulta XML

Ahora, si nuevamente intentamos obtener todos los datos, veremos que no hay datos disponibles ahora:

Obtener todos los datos

Recuento de objetos totales

Para un comando Final Curl, veamos un comando con el que podemos encontrar el número de objetos que están presentes en un índice. Aquí está el comando para el mismo:

Recuento de objetos totales

curl http: // localhost: 8983/solr/linux_hint_collection/consulta?Debug = Query & Q =*:*

Esto es lo que recuperamos con este comando:

Cuente el número de objetos

Conclusión

En esta lección, observamos cómo podemos usar Apache Solr y Pass Consultas usando curl en formato JSON y XML. También vimos que el panel de administración de Solr es útil de la misma manera que todos los comandos de curl que estudiamos.