Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Seminario Apache Solr

Seminario Apache Solr

Seminario de Apache Solr, organizado por Paradigma Tecnologico y Javahispano, presentado por Marco Martinez y Alejandro Marques el 8 de Junio de 2010
Mas info:

Paradigma

June 08, 2010
Tweet

More Decks by Paradigma

Other Decks in Technology

Transcript

  1. 2 APACHE SOLR Índice  Introducción  Lucene  Solr

     Instalación  Indexación  Esquema de Datos  Búsqueda  Parámetros de Búsqueda  Búsqueda Avanzada  Analizadores de Texto  Tokenización  Stemming  Sinónimos  Stop Words  N-Gramas  Componentes de Búsqueda  Highlighting  Corrección ortográfica  More like this
  2. 4 APACHE SOLR  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 de texto, resaltado de coincidencias, corrector ortográfico, etc. Introducción (I): Lucene
  3. 5 APACHE SOLR Índice Directo Índice Invertido Introducción (II): Índice

    Invertido vs. Índice Directo 1 que es esto 2 esto es un texto 3 este texto es otro texto que 1 es 1, 2, 3 esto 1, 2 un 2 texto 2, 3 este 3 otro 3 que (1,1) es (1,2) (2,2) (3,3) esto (1,3) (2,1) un (2,3) texto (2,4) (3,2) (3,5) este (3,1) otro (3,4)
  4. 6 APACHE 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).  Distribución de servidores. Introducción (III): Solr
  5. 7 APACHE SOLR  Solr se divide en dos partes:

     Índice: Sistema de ficheros que almacenan la información. Contiene la configuraciónde 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. Arquitectura de Solr (I)
  6. 8 APACHE SOLR Solr permite búsquedas distribuidas: Uno de los

    servidores actúa como maestro, consultando al resto y componiendo la respuesta. Arquitectura de Solr (II): Arquitectura Distribuida
  7. 9 APACHE SOLR  Requisitos:  Java 1.5+  Servidor

    de aplicaciones  Descarga:  http://apache.rediris.es/lucene/solr/  Pasos:  Copia de índice.  Despliegue de servidor sobre el servidor de aplicaciones.  Configuración de enlace entre servidor e índice. (Modificación del fichero web.xml) Instalación de Solr
  8. 11 APACHE SOLR  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. Indexación de Contenidos (I): Esquema de datos <field name=“nombre de campo" type=“tipo de dato" />
  9. 12 APACHE SOLR  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). Indexación de Contenidos (II)
  10. 14 APACHE SOLR  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. Búsquedas (I)
  11. 15 APACHE SOLR  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.  facets: Indica si se desean mostrar facetas. Parámetros adicionales para indicar el campo por el que realizarlas, límite, ordenación, etc.  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.  … Búsquedas (II): Parámetros de Búsqueda
  12. 16 APACHE SOLR  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 Búsquedas (III): Búsqueda Avanzada
  13. 17 APACHE SOLR  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” Búsquedas (IV): Búsqueda Avanzada
  14. 19 APACHE SOLR  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: Analizadores de Texto (I)  Tokenización  Stemming  Sinónimos  Stop Words  N-Gramas
  15. 20 APACHE SOLR  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. Analizadores de Texto (II): Tokenización, Stemming, Sinónimos <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
  16. 21 APACHE SOLR  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. Analizadores de Texto (III): Stop Words, N-Gramas <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> <filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="15"/>
  17. 23 APACHE SOLR  Los componentes de búsqueda proporcionan funciones

    adicionales a la recuperaciónde resultados.  Son configurables en tiempo de consulta (Algunos pueden necesitar configuraciónadicional 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. Componentes de Búsqueda (I)
  18. 24 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:  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. <span class=“bold”> término </span>)
  19. 25 APACHE SOLR  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: Componentes de Búsqueda (III): Corrección Ortográfica <searchComponent name="spellcheck" class="solr.SpellCheckComponent"> <str name="queryAnalyzerFieldType">textSpell</str> <lst name="spellchecker"> <str name="name">default</str> <str name="classname">solr.IndexBasedSpellChecker</str> <str name="field">corrector</str> <str name="spellcheckIndexDir">./spellchecker</str> </lst> </searchComponent>
  20. 26 APACHE SOLR  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ónpor parámetros de búsqueda:  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.  … Componentes de Búsqueda (IV): More Like This
  21. 28 APACHE SOLR  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. (2009). Solr 1.4 Enterprise Search Server. Packt Publishing Referencias y Enlaces de Interés