Paradigma Tecnológico Servicios de formación Apache Solr 1 Apache Solr Índice Introducción Lucene Tokenizaci
Views 108 Downloads 1 File size 611KB
Paradigma Tecnológico Servicios de formación Apache Solr
1
Apache Solr
Índice Introducción Lucene
Tokenización
Solr
Stemming
Instalación
Sinónimos
Stop Words
N-Gramas
Indexación Esquema de Datos
Búsqueda
2
Analizadores de Texto
Componentes de Búsqueda
Parámetros de Búsqueda
Highlighting
Búsqueda Avanzada
Corrección ortográfica
More like this
Apache Solr
Paradigma Tecnológico Servicios de formación Introducción
3
Apache Solr
Introducción (I): Lucene Solr: Motor de búsqueda basado en Lucene. Lucene : Proyecto de código abierto escrito en java. Librería que proporciona búsquedas de texto de alto rendimiento haciendo
uso de índices invertidos. Mayor velocidad en la búsqueda de cadenas de texto. Menor dependencia del tamaño del índice.
Mayor flexibilidad en las búsquedas de texto: Búsquedas por término,
mediante N-Gramas, búsquedas fonéticas… Mayor facilidad para ordenaciones por score y ponderaciones. Características
adicionales: Analizadores coincidencias, corrector ortográfico, etc.
4
Apache Solr
de
texto,
resaltado
de
Introducción (II): Índice Invertido vs. Índice Directo
Índice Directo 1 que es esto 2 esto es un texto 3 este texto es otro texto
Índice Invertido que es esto un texto este otro 5
Apache Solr
1 1, 2, 3 1, 2 2 2, 3 3 3
que es esto un texto este otro
(1,1) (1,2) (2,2) (3,3) (1,3) (2,1) (2,3) (2,4) (3,2) (3,5) (3,1) (3,4)
Introducción (III): Solr Solr es un proyecto de código abierto escrito en java que proporciona un recubrimiento de Lucene añadiendo características adicionales: Acceso HTTP a Lucene.
Cachés para lograr mayor velocidad en las búsquedas. Interfaz de administración web. Configuración del esquema de datos y del servidor mediante archivos
XML. Facetado de resultados (Agrupación de resultados con contadores).
Replicación y distribución de servidores. …
6
Apache Solr
Arquitectura de Solr (I) Solr se divide en dos partes: Índice: Sistema de ficheros que almacenan la información. Contiene la
configuración de Solr y la definición de la estructura de datos. Servidor: Proporciona el acceso a los índices y las características
adicionales. Admite plugins para añadir funcionalidades.
7
Apache Solr
Arquitectura de Solr (II): Solr Cloud Solr permite búsquedas e indexaciones distribuidas y gestiona la replicación de índices haciendo uso de Zookeeper.
8
Apache Solr
Arquitectura de Solr (III): Indexación y Búsqueda Distribuida
9
Apache Solr
Arquitectura de Solr (IV): Replicación Automática
10
Apache Solr
Instalación de Solr Requisitos: Java 1.6+ (Java 1.7+ a partir de la versión 4.8) Servidor de aplicaciones
Descarga: http://lucene.apache.org/solr/ Pasos: Copia de índice.
Despliegue de servidor sobre el servidor de aplicaciones y configuración
de logs. Configuración de enlace entre servidor e índice. (Definir variable
solr.home) 11
Apache Solr
Paradigma Tecnológico Servicios de formación Indexación
12
Apache Solr
Indexación de Contenidos (I): Esquema de datos schema.xml: Archivo XML que define las estructura de datos a indexar. Estructura de campo:
Tipos de Datos: Definidos por clases java.
Parámetros opcionales: default: Valor a usar si no se recibe ninguno required: Define si un campo es obligatorio. indexed: Determina si un campo es buscable u ordenable.
stored: Determina si un campo se puede recuperar en una consulta. multiValued: El campo contiene más de un valor. 13
Apache Solr
Indexación de Contenidos (II) Canales para el envío de documentos: Petición HTTP: Envío de instrucción y datos asociados vía HTTP POST. Cliente Solrj: Cliente java. Permite realizar las diferentes operaciones
sobre el índice y enviar la información en diferentes formatos. Fuentes de datos para la indexación: XML: Coherente con la estructura de datos definida. Objetos Java: Representación binaria del documento XML.
CSV: Documento de texto con valores separados. Documentos enriquecidos: PDF, XLS, DOC, PPT, … Base de Datos: Adaptador intermedio (DataImportHandler).
14
Apache Solr
Paradigma Tecnológico
Búsqueda
Servicios de formación
15
Apache Solr
Búsquedas (I) Canales de búsqueda: Petición HTTP: Envío de instrucción de búsqueda y parámetros
mediante HTTP GET. Administrador de Solr: proporciona un recubrimiento para simplificar la
petición HTTP. Cliente Solrj: Posee también los métodos necesarios para realizar
búsquedas sobre los índices.
Respuesta como estructura XML, JSON, javabin...
16
Apache Solr
Búsquedas (II): Parámetros de Búsqueda q: Petición con formato “campo:valor” start: Documento inicial a partir del cual se van a mostrar los resultados. rows: Indica el número máximo de resultados a mostrar.
sort: Define la ordenación de los resultados. Ordenaciones combinadas.
Formato de ordenaciones: “precio desc, nombre asc” fl: Campos que se devuelven en la respuesta
fq: Mismo formato que “q”. Limita la query (actúa como filtro). Los
resultados se cachean. facets: Indica si se desean mostrar facetas. Parámetros adicionales para
indicar el campo por el que realizarlas, límite, ordenación, etc. …
17
Apache Solr
Búsquedas (III): Búsqueda Avanzada Wildcards: Solr no permite wildcards iniciales word*: * sustituye a cualquier número de caracteres. w?rd: ? sustituye a un único carácter.
w?*d: Pueden componerse ambos comodines. Operadores Lógicos AND: word1 AND word2 = word1 && word2 = +word1 +word2 OR: word1 OR word2 = word1 || word2 = word1 word2 NOT: word1 NOT word2 = word1 -word2
18
Apache Solr
Búsquedas (IV): Búsqueda Avanzada
Rangos: Se expresan como “campo:[A TO B]” Boosting: Se pueden ordenar resultados dando más importancia a ciertos
campos nombre:jose^2 AND alias:pepe^0.7 Fuzzy: Busca términos similares basándose en número de inserciones,
borrados o intercambios de caracteres. Puede definirse el grado de proximidad. nombre: sony~0.9 -> Devuelve resultados con nombre “sony”
nombre: sony~0.4 -> Devuelve resultados con nombre “coby”
19
Apache Solr
Paradigma Tecnológico Servicios de formación Analizadores de Texto
20
Apache Solr
Analizadores de Texto (I) Procesadores propios de Solr o posibilidad de implementar nuevos
analizadores. Configurables por XML (schema.xml). Aplicables a campos específicos.
Aplicables en tiempo de indexación, durante la búsqueda o en ambos. Existen múltiples analizadores y se pueden definir analizadores propios,
algunos de los que proporciona Solr:
Tokenización Stemming Sinónimos
21
Apache Solr
Stop Words N-Gramas
Analizadores de Texto (II): Tokenización, Stemming, Sinónimos Tokenización: División de texto mediante diferentes expresiones (Espacios
en blanco, etiquetas html, signos de puntuación, expresiones regulares…)
Stemming: Reducción de términos derivados a su forma raíz.
Sinónimos: Transformación de texto mediante definición explícita de
relaciones de sinonimia.
22
Apache Solr
Analizadores de Texto (III): Stop Words, N-Gramas Stop words: Eliminación de palabras no significativas para el proceso de
búsqueda.
N-Gramas: Separación de texto en los diferentes grupos de caracteres que
lo componen.
23
Apache Solr
Paradigma Tecnológico Servicios dede formación Componentes Búsqueda
24
Apache Solr
Componentes de Búsqueda (I) Los componentes de búsqueda proporcionan funciones adicionales a la
recuperación de resultados. Son configurables en tiempo de consulta (Algunos pueden necesitar
configuración adicional en los archivos xml). Algunos de los componentes de búsqueda que proporciona Solr:
Highlighting: Resaltado de términos. Spell Checker: Corrección ortográfica. More Like This: Resultados similares.
25
Apache Solr
Componentes de Búsqueda (II): Highlighting Highlighting: Ofrece el resaltado de términos buscados dentro de una
cadena de texto.
Algunos parámetros de configuración:
26
hl=true: Activa el resaltado de términos
hl.fl=[fieldnames]: Campo o campos sobre los que se realizará el resaltado.
hl.simple.pre / hl.simple.post=[etiqueta]: Etiqueta que se añadirá antes y después del término resaltado (Ej. término )
Apache Solr
Componentes de Búsqueda (III): Corrección Ortográfica Spell Checker: Proporciona sugerencias para errores ortográficos basadas
en el contenido indexado o en un diccionario. Para sugerencias por contenido indexado es recomendable crear un campo
para corrección ortográfica (De tipo “textSpell” o “textSpellPhrase”). Configuración:
spell
general spell solr.DirectSolrSpellChecker internal 0.5
27
Apache Solr
Componentes de Búsqueda (IV): More Like This More Like This: Componente de sugerencia de documentos similares. Se
basa en los términos que aparecen en el documento recuperado y la frecuencia de los mismos. Configuración por parámetros de búsqueda:
28
mlt=true: Activa la utilidad de resultados similares.
mlt.fl=[fieldnames]: Campo o campos analizados.
mlt.count=[número]: Número de resultados devueltos.
mlt.qf=[field1^2.0 field2^5.0]: Configuración de ponderación sobre diferentes campos para el cálculo de similitud.
…
Apache Solr
Paradigma Tecnológico Servicios de formación Referencias
29
Apache Solr
Referencias y Enlaces de Interés
Enlaces de Interés: Página Oficial: http://lucene.apache.org/solr/
Wiki: http://wiki.apache.org/solr/ Mailing list: http://mail-archives.apache.org/mod_mbox/lucene-solr-user/
Manuales: Smiley, D. y Pugh, E. (2011). Apache Solr 3 Enterprise Search Server. Packt
Publishing
30
Apache Solr