Tutorial de Apache Solr: ¿Qué es Solr? Architectura e instalación
¿Qué es Apache Solr?
Apache Solr es una plataforma de servidor de búsqueda de código abierto escrita en Java Lenguaje de Apache Software Foundation. Es un motor de búsqueda altamente escalable y listo para implementarse que maneja un gran volumen de datos centrados en texto. El propósito de usar Apache Solr es indexar y buscar una gran cantidad de contenido web y brindar contenido relevante según la consulta de búsqueda.
Apache Solr es un contenedor HTTP basado en API REST que envuelve al motor de búsqueda de texto completo llamado Apache Lucene. Un índice invertido es una lista de palabras donde cada entrada de palabra se vincula a los documentos en los que está almacenada. De esa manera, se obtienen todos los documentos para la consulta de búsqueda "guru99" con una simple operación "get".
Historia de Apache Solr
- 1999: Doug Cutting publicó Lucene
- 2004: Solr fue desarrollado en CNET por Yonik Seeley como parte de un proyecto interno de la empresa.
- 2006: CNET publica el código fuente donándolo al software Apache. Foundation
- 2008: Se lanzó Solr 1.3 con capacidades de búsqueda mejoradas y mejoras de rendimiento.
- 2010: Fusión de Lucene y Solr
- 2012: Se lanzó la versión 4.0 de Solr, con la nueva función Solr Cloud
- 2016: Se lanzó Solr 6.0, que ofrece soporte para la ejecución de consultas SQL paralelas.
Características de Apache Solr
Estas son las características importantes de Apache Solr:
- Equilibrio de carga automático
- Interfaces abiertas basadas en estándares: XML, JSON y HTTP
- Se admiten recomendaciones y sugerencias de hechizos.
- Soporte para autocompletado y búsqueda geoespacial
- Seguridad incorporada para autenticación y autorización
- Le permite realizar una búsqueda de palabras clave multilingüe
- Predicción de autocompletar/escritura anticipada
- Procesamiento por lotes y streaming
- Crear modelos de aprendizaje automático es fácil
- Especialmente optimizado para tráfico web de alto volumen
- Interfaces de admiración HTML completas
- Admite configuración Schema y Schemaless
- Búsqueda y filtrado por facetas
- Configuración central para todo Cluster
Términos clave utilizados en Apache Solr
Ahora, en este tutorial del motor de búsqueda Solr, aprenderemos sobre los términos clave utilizados en Apache Solr:
Término clave | Descripción |
---|---|
Núcleo Solr | Solr Core se puede definir como un índice de textos y campos derivados de todos los documentos. Una instancia de Solr puede tener uno o varios núcleos de Solr.
Core = una instancia de Lucene Index + configuración Solr |
Instancia solar | Instancia Solr es una instancia de Solr que se ejecuta en el Java Máquina virtual (JVM). En modo independiente, solo ofrece una instancia, mientras que en modo nube puedes tener una o más instancias. |
Indexación | La indexación es un método para agregar el contenido de un documento a Solr Index. Apache Solr utiliza la técnica de índice invertido de Apache Lucene. |
Comparación de | Es un grupo de campos y sus valores. Un documento es una unidad básica de datos almacenada en Apache Core. Un núcleo de Apache puede contener uno o más documentos. |
Campo | El campo es un par clave-valor que almacena los datos reales en un documento. La clave especifica el nombre del campo y el valor contiene los datos del campo. Un documento puede tener uno o varios campos. Apache Solr lo utiliza para indexar el contenido del documento. |
API tranquilas | Para comunicarse con Solr no es necesario haber utilizado Java programación. En cambio, Apache Solr proporciona servicios de descanso para comunicarse con él. Puede enviar documentos y recibir resultados en varios formatos de archivo como JSON, XML y CSV. |
Búsqueda de texto completo | Solr ofrece funciones para búsqueda de texto completo, como tokens, frases, revisión ortográfica, autocompletar, comodines, etc. |
Interfaz de administrador | Solr ofrece una interfaz de usuario fácil de usar y con funciones avanzadas. Usando la interfaz puede realizar tareas como administrar registros, agregar, eliminar, actualizar y buscar documentos. |
Centrado en texto y ordenado por relevancia | Apache Solr se utiliza para buscar documentos de texto y los resultados se entregan de acuerdo con la consulta del usuario. |
Nodo | En la nube de Solr, cada instancia se conoce como nodo. |
Cluster | Un clúster es una colección de nodos. |
Colecciones | Un clúster tiene un índice lógico que también se denomina colección. |
Casco | Se trata de una pequeña zona de la colección que ofrece réplicas únicas o múltiples del índice. |
Réplica | Una réplica es una copia de un fragmento que se ejecuta en un nodo. |
Líder | Es una réplica del shard, que envía las solicitudes de Solr Cloud para el resto de réplicas. |
Apache Solr Architectura
Ahora, en este tutorial de búsqueda de Solr, aprendamos sobre Apache Solr. Architectura:
Apache Solr compromete los siguientes componentes
Consulta
El analizador de consultas analiza las consultas que necesita pasar a Solr. Verifica su consulta para comprobar errores sintácticos. Después de analizar las consultas, se traduce a un formato conocido por Lucene.
Controlador de solicitudes
La solicitud enviada a Apache Solr es procesada por el controlador de solicitudes. La solicitud puede ser una solicitud de consulta o solicitudes de actualización de índice. Debe seleccionar el controlador de solicitudes de acuerdo con sus requisitos. Para pasar una solicitud a Solr, debe asignar el controlador a un punto final de URL específico.
Escritor de respuesta
Un redactor de respuestas generará resultados formateados para consultas de entrada. Admite varios formatos como XML, JSON, CSV, etc. Es posible que tenga diferentes redactores de respuestas para diferentes tipos de solicitudes.
Controlador de actualización
Cuando envía una solicitud de actualización a Apache Solr, se ejecuta a través de un conjunto de complementos, firma, registro e indexación. Este proceso se conoce como procesador de solicitudes de actualización. El controlador de actualizaciones también es responsable de modificaciones como agregar o quitar archivos, etc.
Aplicaciones de Apache Solr
Aplicación | Uso |
---|---|
Portal Intranet |
|
Cliente federado |
|
Conjuntos de datos de instrumentos |
|
Documentos Regulatorios |
|
Integrado en la aplicación PLM |
|
¿Cómo instalar Apache Solr?
Paso 1) Abra el sitio web y continúe suscribiéndose
Ve a esto enlace, Haga clic en "Continuar para suscribirse".
Paso 2) Haga clic en Aceptar términos
En la página siguiente, haga clic en Aceptar términos.
Paso 3) Espera un tiempo
Luego, espere un tiempo y luego, la solicitud se acepta después de un tiempo.
Paso 4) Continuar a Configuración
Actualice la página y haga clic en "Continuar con la configuración".
Paso 5) Continuar al lanzamiento
Mantenga la configuración predeterminada y haga clic en "Continuar para iniciar".
Paso 6) Mantenga la configuración predeterminada
En la página siguiente, mantenga la configuración predeterminada
- Asegúrese de tener el archivo pem de la clave
- Haga clic en "Iniciar"
Verás este mensaje de éxito.
Paso 7) Tenga en cuenta el DNS público
En la consola EC2, tenga en cuenta el DNS público de su instancia
Paso 8) Abrir debajo de la URL
Para acceder a Solr, simplemente use la URL
http://publicdns:8983
en nuestro caso se convierte
http://ec2-18-221-175-53.us-east-2.compute.amazonaws.com:8983
Nota: Si tiene problemas para acceder a la instancia, cambie las reglas de entrada y salida en su instancia para permitir todo el tráfico como se muestra en el siguiente ejemplo de consulta de Solr:
Búsqueda elástica vs. apache solr
parámetros | Apache Solr | Búsqueda elástica |
---|---|---|
Naturaleza | Es un proyecto de código abierto. | No es un proyecto de código abierto. |
Estado estático | Estático en shema.xml | Estático en elasticsearch.yml |
Formato | XML, CSV, JSON | Sólo JSON |
Home | Se puede recargar durante el tiempo de ejecución con recarga de colección/núcleo | Definido durante la creación de índice/tipo con una llamada REST |
Documentación | Está bien documentado. | Está mal documentado. |
Dividir fragmentos | Posibles | Imposible |
Ventajas de Apache Solr
- Le ayuda a reducir la cantidad de tiempo necesario para localizar información
- Es un motor de búsqueda rápido, sencillo, potente y flexible.
- Le ayuda a hacer sus productos y servicios más accesibles
- Aumentar el gasto del cliente en una aplicación web
- Le ayuda a mejorar la experiencia del usuario en la aplicación web para aumentar los ingresos y las ganancias.
- Interfaz de administración integral basada en HTML
- Flexible y adaptable con configuración XML
- Complemento extensible Architectura
- Motor de búsqueda altamente escalable, robusto y tolerante a fallos
- Admite distribución, sombreado, replicación, Clustering y multinodo Architectura
Desventajas de Apache Solr
- No es un almacén de datos compatible con ACID
- No es útil como almacén de datos primario. Sólo útil como almacén de datos secundario
- No ofrece soporte para transacciones y transacciones distribuidas.
- No admite uniones ni consultas complejas
- No es óptimo para datos normalizados
Resum
- Apache Solr es de código abierto API REST servidor de búsqueda basado
- Apache Solr fue desarrollado en CNET por Yonik Seeley como un proyecto interno de la empresa.
- Apache Solr ofrece funciones como autocompletado y búsqueda geoespacial
- Solr Core, instancia de Solr, indexación, documento, API Restful, búsqueda de texto completo, interfaz de administración, etc. son algunos de los términos clave utilizados en Apache Solr.
- La consulta, el controlador de solicitudes, el escritor de solicitudes y los controladores de actualizaciones son algunos de los componentes importantes de Apache Solr.
- El portal de intranet, el cliente federado, los conjuntos de datos de instrumentos, los documentos reglamentarios y la aplicación PLM integrada son aplicaciones útiles de Apache Solr.
- Apache Solr está bien documentado en comparación con Elastic Search, que está mal documentado.
- La mayor ventaja de Apache Solr es que le ayuda a reducir la cantidad de tiempo necesario para localizar información.
- El principal inconveniente de esta aplicación es que no es un almacén de datos compatible con ACID.