SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
1 APACHE SOLR
Paradigma Tecnológico
Servicios de formaciónApache Solr
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
3 APACHE SOLR
Paradigma Tecnológico
Servicios de formaciónIntroducción
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
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)
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
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)
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
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
10 APACHE SOLR
Paradigma Tecnológico
Servicios de formaciónIndexación
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" />
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)
13 APACHE SOLR
Paradigma Tecnológico
Servicios de formaciónBúsqueda
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)
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
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
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
18 APACHE SOLR
Paradigma Tecnológico
Servicios de formaciónAnalizadores de Texto
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
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"/>
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"/>
22 APACHE SOLR
Paradigma Tecnológico
Servicios de formaciónComponentes de Búsqueda
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)
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>)
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>
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
27 APACHE SOLR
Paradigma Tecnológico
Servicios de formaciónReferencias
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

Contenu connexe

Tendances

Trabajo colaborativo 2
Trabajo colaborativo 2Trabajo colaborativo 2
Trabajo colaborativo 2Oscar Ramos
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHAlejandro Esquiva Rodriguez
 
informacion sobre blog datos y sql
informacion sobre blog datos y sqlinformacion sobre blog datos y sql
informacion sobre blog datos y sqldanie12angie
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e ioprogramadorjavablog
 
Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)José Toro
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)José Toro
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)José Toro
 
About aliases.help
About aliases.helpAbout aliases.help
About aliases.helptiopocho
 
Log -Analytics con Apache-Flume Elasticsearch HDFS Kibana
 Log -Analytics con Apache-Flume  Elasticsearch HDFS Kibana Log -Analytics con Apache-Flume  Elasticsearch HDFS Kibana
Log -Analytics con Apache-Flume Elasticsearch HDFS KibanaFelix Rodriguez
 
Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)José Toro
 
Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)José Toro
 
Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)José Toro
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)José Toro
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncronaLaura Folgado Galache
 

Tendances (19)

Java 7- Java Day Guatemala
Java 7- Java Day GuatemalaJava 7- Java Day Guatemala
Java 7- Java Day Guatemala
 
Automatic API REST Droidcon
Automatic API REST DroidconAutomatic API REST Droidcon
Automatic API REST Droidcon
 
Trabajo colaborativo 2
Trabajo colaborativo 2Trabajo colaborativo 2
Trabajo colaborativo 2
 
5
55
5
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSH
 
informacion sobre blog datos y sql
informacion sobre blog datos y sqlinformacion sobre blog datos y sql
informacion sobre blog datos y sql
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
19 javascript servidor
19 javascript servidor19 javascript servidor
19 javascript servidor
 
Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
 
About aliases.help
About aliases.helpAbout aliases.help
About aliases.help
 
CapíTulo 8
CapíTulo 8CapíTulo 8
CapíTulo 8
 
Log -Analytics con Apache-Flume Elasticsearch HDFS Kibana
 Log -Analytics con Apache-Flume  Elasticsearch HDFS Kibana Log -Analytics con Apache-Flume  Elasticsearch HDFS Kibana
Log -Analytics con Apache-Flume Elasticsearch HDFS Kibana
 
Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)
 
Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)
 
Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona
 

En vedette

Curso Formacion Apache Solr
Curso Formacion Apache SolrCurso Formacion Apache Solr
Curso Formacion Apache SolrEmpathyBroker
 
Large Scale Crawling with Apache Nutch and Friends
Large Scale Crawling with Apache Nutch and FriendsLarge Scale Crawling with Apache Nutch and Friends
Large Scale Crawling with Apache Nutch and FriendsJulien Nioche
 
Open source enterprise search and retrieval platform
Open source enterprise search and retrieval platformOpen source enterprise search and retrieval platform
Open source enterprise search and retrieval platformmteutelink
 
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...hannonhill
 
Content analysis for ECM with Apache Tika
Content analysis for ECM with Apache TikaContent analysis for ECM with Apache Tika
Content analysis for ECM with Apache TikaPaolo Mottadelli
 
Populate your Search index, NEST 2016-01
Populate your Search index, NEST 2016-01Populate your Search index, NEST 2016-01
Populate your Search index, NEST 2016-01David Smiley
 
Apache Tika end-to-end
Apache Tika end-to-endApache Tika end-to-end
Apache Tika end-to-endgagravarr
 
Content Analysis with Apache Tika
Content Analysis with Apache TikaContent Analysis with Apache Tika
Content Analysis with Apache TikaPaolo Mottadelli
 
Large Scale Crawling with Apache Nutch and Friends
Large Scale Crawling with Apache Nutch and FriendsLarge Scale Crawling with Apache Nutch and Friends
Large Scale Crawling with Apache Nutch and Friendslucenerevolution
 
Search Engine Capabilities - Apache Solr(Lucene)
Search Engine Capabilities - Apache Solr(Lucene)Search Engine Capabilities - Apache Solr(Lucene)
Search Engine Capabilities - Apache Solr(Lucene)Manish kumar
 
Buscador vertical escalable con Hadoop
Buscador vertical escalable con HadoopBuscador vertical escalable con Hadoop
Buscador vertical escalable con Hadoopdatasalt
 
Zookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale SystemsZookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale SystemsLeandro Lera Romero
 
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + StompKaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + StompIrontec
 
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioaUrko Zurutuza
 
Web Crawling with Apache Nutch
Web Crawling with Apache NutchWeb Crawling with Apache Nutch
Web Crawling with Apache Nutchsebastian_nagel
 

En vedette (20)

Introducción a Solr
Introducción a SolrIntroducción a Solr
Introducción a Solr
 
Conferencia 3: solrconfig.xml
Conferencia 3: solrconfig.xmlConferencia 3: solrconfig.xml
Conferencia 3: solrconfig.xml
 
Conferencia 4: Queries
Conferencia 4: QueriesConferencia 4: Queries
Conferencia 4: Queries
 
Conferencia 2: El esquema
Conferencia 2: El esquemaConferencia 2: El esquema
Conferencia 2: El esquema
 
Curso Formacion Apache Solr
Curso Formacion Apache SolrCurso Formacion Apache Solr
Curso Formacion Apache Solr
 
Large Scale Crawling with Apache Nutch and Friends
Large Scale Crawling with Apache Nutch and FriendsLarge Scale Crawling with Apache Nutch and Friends
Large Scale Crawling with Apache Nutch and Friends
 
Open source enterprise search and retrieval platform
Open source enterprise search and retrieval platformOpen source enterprise search and retrieval platform
Open source enterprise search and retrieval platform
 
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...
Faster! Optimize Your Cascade Server Experience, by Justin Klingman, Beacon T...
 
Content analysis for ECM with Apache Tika
Content analysis for ECM with Apache TikaContent analysis for ECM with Apache Tika
Content analysis for ECM with Apache Tika
 
Populate your Search index, NEST 2016-01
Populate your Search index, NEST 2016-01Populate your Search index, NEST 2016-01
Populate your Search index, NEST 2016-01
 
Apache Tika end-to-end
Apache Tika end-to-endApache Tika end-to-end
Apache Tika end-to-end
 
Content Analysis with Apache Tika
Content Analysis with Apache TikaContent Analysis with Apache Tika
Content Analysis with Apache Tika
 
Large Scale Crawling with Apache Nutch and Friends
Large Scale Crawling with Apache Nutch and FriendsLarge Scale Crawling with Apache Nutch and Friends
Large Scale Crawling with Apache Nutch and Friends
 
ProjectHub
ProjectHubProjectHub
ProjectHub
 
Search Engine Capabilities - Apache Solr(Lucene)
Search Engine Capabilities - Apache Solr(Lucene)Search Engine Capabilities - Apache Solr(Lucene)
Search Engine Capabilities - Apache Solr(Lucene)
 
Buscador vertical escalable con Hadoop
Buscador vertical escalable con HadoopBuscador vertical escalable con Hadoop
Buscador vertical escalable con Hadoop
 
Zookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale SystemsZookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale Systems
 
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + StompKaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
 
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
 
Web Crawling with Apache Nutch
Web Crawling with Apache NutchWeb Crawling with Apache Nutch
Web Crawling with Apache Nutch
 

Similaire à Seminario Apache Solr

Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con RESTAlex Puig
 
Preguntas y respuestas Técnicas de SAP HANA
Preguntas y respuestas Técnicas  de SAP HANAPreguntas y respuestas Técnicas  de SAP HANA
Preguntas y respuestas Técnicas de SAP HANASergio Cannelli
 
Metodos de busqueda y operadores booleanos
Metodos de busqueda y operadores booleanosMetodos de busqueda y operadores booleanos
Metodos de busqueda y operadores booleanosrociitosanchez
 
Competencias de Gestión de Información y Conocimiento - Presentación 2: Conce...
Competencias de Gestión de Información y Conocimiento - Presentación 2: Conce...Competencias de Gestión de Información y Conocimiento - Presentación 2: Conce...
Competencias de Gestión de Información y Conocimiento - Presentación 2: Conce...UCC_Elearning
 
MetaShield Protector
MetaShield ProtectorMetaShield Protector
MetaShield ProtectorChema Alonso
 
Lección 4 (Curso de Internet)
Lección 4 (Curso de Internet)Lección 4 (Curso de Internet)
Lección 4 (Curso de Internet)Noe_saul
 
Arquitectura de una Apis Rest en C.pptx
Arquitectura de una Apis  Rest en C.pptxArquitectura de una Apis  Rest en C.pptx
Arquitectura de una Apis Rest en C.pptxRonaldoJos15
 
Desarrollo dirigido por modelo de servicios web REST
Desarrollo dirigido por modelo de servicios web RESTDesarrollo dirigido por modelo de servicios web REST
Desarrollo dirigido por modelo de servicios web RESTJose R. Hilera
 
Taller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesTaller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesXavier Espinoza
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 

Similaire à Seminario Apache Solr (20)

Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con REST
 
Preguntas y respuestas Técnicas de SAP HANA
Preguntas y respuestas Técnicas  de SAP HANAPreguntas y respuestas Técnicas  de SAP HANA
Preguntas y respuestas Técnicas de SAP HANA
 
Metodos de busqueda y operadores booleanos
Metodos de busqueda y operadores booleanosMetodos de busqueda y operadores booleanos
Metodos de busqueda y operadores booleanos
 
Presentacion swoogle
Presentacion swooglePresentacion swoogle
Presentacion swoogle
 
Competencias de Gestión de Información y Conocimiento - Presentación 2: Conce...
Competencias de Gestión de Información y Conocimiento - Presentación 2: Conce...Competencias de Gestión de Información y Conocimiento - Presentación 2: Conce...
Competencias de Gestión de Información y Conocimiento - Presentación 2: Conce...
 
MetaShield Protector
MetaShield ProtectorMetaShield Protector
MetaShield Protector
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 
Lección 4 (Curso de Internet)
Lección 4 (Curso de Internet)Lección 4 (Curso de Internet)
Lección 4 (Curso de Internet)
 
Instructivo themewordpress
Instructivo themewordpressInstructivo themewordpress
Instructivo themewordpress
 
Arquitectura de una Apis Rest en C.pptx
Arquitectura de una Apis  Rest en C.pptxArquitectura de una Apis  Rest en C.pptx
Arquitectura de una Apis Rest en C.pptx
 
Desarrollo dirigido por modelo de servicios web REST
Desarrollo dirigido por modelo de servicios web RESTDesarrollo dirigido por modelo de servicios web REST
Desarrollo dirigido por modelo de servicios web REST
 
Google apps engine
Google apps engineGoogle apps engine
Google apps engine
 
Taller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesTaller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeries
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 

Plus de Paradigma Digital

Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Paradigma Digital
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the futureParadigma Digital
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxParadigma Digital
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixParadigma Digital
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API ManagementParadigma Digital
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxParadigma Digital
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microserviciosParadigma Digital
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalParadigma Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!Paradigma Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octParadigma Digital
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJavaParadigma Digital
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?Paradigma Digital
 

Plus de Paradigma Digital (20)

Ddd + ah + microservicios
Ddd + ah + microserviciosDdd + ah + microservicios
Ddd + ah + microservicios
 
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
 
Have you met Istio?
Have you met Istio?Have you met Istio?
Have you met Istio?
 
Linkerd a fondo
Linkerd a fondoLinkerd a fondo
Linkerd a fondo
 
Horneando apis
Horneando apisHorneando apis
Horneando apis
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFlux
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API Management
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microservicios
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Cómo usar google analytics
Cómo usar google analyticsCómo usar google analytics
Cómo usar google analytics
 
Transformación Digital
Transformación DigitalTransformación Digital
Transformación Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJava
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?
 

Seminario Apache Solr

  • 1. 1 APACHE SOLR Paradigma Tecnológico Servicios de formaciónApache Solr
  • 2. 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
  • 3. 3 APACHE SOLR Paradigma Tecnológico Servicios de formaciónIntroducción
  • 4. 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
  • 5. 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)
  • 6. 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
  • 7. 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)
  • 8. 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
  • 9. 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
  • 10. 10 APACHE SOLR Paradigma Tecnológico Servicios de formaciónIndexación
  • 11. 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" />
  • 12. 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)
  • 13. 13 APACHE SOLR Paradigma Tecnológico Servicios de formaciónBúsqueda
  • 14. 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)
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 18 APACHE SOLR Paradigma Tecnológico Servicios de formaciónAnalizadores de Texto
  • 19. 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
  • 20. 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"/>
  • 21. 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"/>
  • 22. 22 APACHE SOLR Paradigma Tecnológico Servicios de formaciónComponentes de Búsqueda
  • 23. 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)
  • 24. 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>)
  • 25. 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>
  • 26. 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
  • 27. 27 APACHE SOLR Paradigma Tecnológico Servicios de formaciónReferencias
  • 28. 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