Seminarioapachesolr2 141006113347 Conversion Gate02

Paradigma Tecnológico Servicios de formación Apache Solr 1 Apache Solr Índice  Introducción  Lucene  Tokenizaci

Views 108 Downloads 1 File size 611KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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