¿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:
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.