Serarch engines y Solr, JUG Argentina
Upcoming SlideShare
Loading in...5
×
 

Serarch engines y Solr, JUG Argentina

on

  • 1,203 views

These are the slides used for the presentation of Search Engines and Solr at the Java Users Group Argentina, in June 2011. See http://www.jugargentina.org/events/19524971/ ...

These are the slides used for the presentation of Search Engines and Solr at the Java Users Group Argentina, in June 2011. See http://www.jugargentina.org/events/19524971/

Estas son las diapositivas utilizadas en mi presentación de Search engines y Solr, en la Java Users Group de Argentina. http://www.jugargentina.org/events/19524971/

Statistics

Views

Total Views
1,203
Views on SlideShare
1,144
Embed Views
59

Actions

Likes
0
Downloads
18
Comments
0

3 Embeds 59

http://tflobbe-es.blogspot.com 50
http://tflobbe-es.blogspot.com.ar 6
http://tflobbe-es.blogspot.com.es 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Serarch engines y Solr, JUG Argentina Serarch engines y Solr, JUG Argentina Presentation Transcript

  • Search Engines + Solr
  • Agenda
    • Introducción a SearchEngines
    • Qué es Lucene
    • Qué es Solr
    • Conceptos de Lucene y Solr
    • Cómo es una aplicación de búsqueda típica
    • Qué otros features ofrece Solr / Lucene
    • Escalando Solr
  • ¿Quées un Search Engine?
    Un sistema dentro de la categoría de “InformationRetrivalSystems”, diseñado para buscar información.
  • ¿Porquéusar un Search Engine?
    • Se puedentenertoneladas de documentos, pero no sirve de nada si no puedoencontrar lo quenecesito.
    • Yanadiepuedeimaginar internet sin Google o un buscadorequivalente.
    • Es dificilimaginarquealguiencompraríaalgo en Ebaysituvieraquerevisartodos los productosparaencontrar el quequiere.
  • … entonces, quees lo importante?
    • Que el usuarioencuentre lo quebusca
    • Simplificar la tarea de encontraresoquebusca:
    • Eliminandoresultadosque no son de interés del usuario
    • Asegurandose de mostraraquellosresultadosque SI son de interés
    • Que los resultadostengan un ordenlógico, quefaciliteencontrar la mejoropcióndentro de los resultados
    • Velocidad en la respuesta
    • Escalabilidad en cantidad de usuarios y documentos
  • ¿Qué es Lucene?
  • ¿QuéesLucene?
    • Biblioteca de busqueda y recuperación de texto
    • Escrita en Java
    • Muy Flexible
    • Usa un índiceinvertido
    • Muyestable
  • ¿Quées Lucene?
    • Biblioteca de busqueda y recuperación de texto
    • Escrita en Java
    • Muy Flexible
    • Usa un índiceinvertido
    • Muyestable
  • ¿QuéesLucene?
    • Biblioteca de busqueda y recuperación de texto
    • Escrita en Java
    • Muy Flexible
    • Usa un índiceinvertido
    • Muyestable
    Multi Platforma. También se
    implementó en otroslenguajes
  • ¿Quées Lucene?
    • Biblioteca de busqueda y recuperación de texto
    • Escrita en Java
    • Muy Flexible
    • Usa un índiceinvertido
    • Muyestable
    Puedeutilizarse en casi
    cualquieraplicación Java
    querequierabúsqueda
    portexto
  • ¿Quées Lucene?
    • Biblioteca de busqueda y recuperación de texto
    • Escrita en Java
    • Muy Flexible
    • Usa un índiceinvertido
    • Muyestable
    Optimizadapararealizar
    búsquedas de texto
  • ¿Quées Lucene?
    • Biblioteca de busqueda y recuperación de texto
    • Escrita en Java
    • Muy Flexible
    • Usa un índiceinvertido
    • Muyestable
    10+ años de desarrollo open
    source. Utilizada en muchas
    aplicacionesproductivas
    (porejemplo: Twitter,
    Linked-in)
  • ¿Qué es Solr?
  • Primero el Nombre…
    S
    O
    L
    R
    earch
    over
    ucene at
    esin
  • ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • Escrita en Java
    • Lucene essunúcleo
    • Agregaalgunos features
    • Muyescalable
    • APIs “REST-like” HTTP/XML y JSON
    • Configuraciónexterna
    • Extensible mediante plug-ins
  • ¿QuéesSolr?
    Es unaaplicación web,
    corredentro de un servlet
    container cualquiera, como
    ser Tomcat, Jetty, etc.
    • Plataforma de Enterprise Search Open Source
    • Escrita en Java
    • Lucene essunúcleo
    • Agregaalgunos features
    • Muyescalable
    • APIs “REST-like” HTTP/XML y JSON
    • Configuraciónexterna
    • Extensible mediante plug-ins
  • ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • Escrita en Java
    • Lucene essunúcleo
    • Agregaalgunos features
    • Muyescalable
    • APIs “REST-like” HTTP/XML y JSON
    • Configuraciónexterna
    • Extensible mediante plug-ins
    Multi plataforma
  • ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • Escrita en Java
    • Lucene essunúcleo
    • Agregaalgunos features
    • Muyescalable
    • APIs “REST-like” HTTP/XML y JSON
    • Configuraciónexterna
    • Extensible mediante plug-ins
    Incluyetodaslascaracterísticas
    y features de Lucene
  • ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • Escrita en Java
    • Lucene essunúcleo
    • Agregaalgunos features
    • Muyescalable
    • APIs “REST-like” HTTP/XML y JSON
    • Configuraciónexterna
    • Extensible mediante plug-ins
    Simplifica el análisis, highlighting,
    faceting, spell-checking, integración
    con bases de datos, extracción de
    contenido de documentoscomo
    word, pdf, etc
  • ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • Escrita en Java
    • Lucene essunúcleo
    • Agregaalgunos features
    • Muyescalable
    • APIs “REST-like” HTTP/XML y JSON
    • Configuraciónexterna
    • Extensible mediante plug-ins
    Replicación, Sharding
    Integración con Zookeeper
  • ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • Escrita en Java
    • Lucene essunúcleo
    • Agregaalgunos features
    • Muyescalable
    • APIs “REST-like” HTTP/XML y JSON
    • Configuraciónexterna
    • Extensible mediante plug-ins
    Es simple de usardesde
    cualquieraplicaciónescrita
    en cualquierlenguaje. No es
    necesario saber Java parausarlo.
    Desacopla la búsqueda de la
    aplicación.
  • ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • Escrita en Java
    • Lucene essunúcleo
    • Agregaalgunos features
    • Muyescalable
    • APIs “REST-like” HTTP/XML y JSON
    • Configuraciónexterna
    • Extensible mediante plug-ins
    Podríanconstruirsecientos de
    aplicacionescompletamente
    distintas sin tocarunalínea de
    código Java.
  • ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • Escrita en Java
    • Lucene essunúcleo
    • Agregaalgunos features
    • Muyescalable
    • APIs “REST-like” HTTP/XML y JSON
    • Configuraciónexterna
    • Extensible mediante plug-ins
    Se pueden extender o crear
    nuevoscomponentes y
    agregarlos de manera simple
  • ¿Quées Solr?
  • Algunasdefiniciones...
    Documents, Fields y Terms
    Document:
    • La unidad de indexación y resultado.
    • Conceptualmente, es lo que el usuariova a buscar en la aplicación. Porejemplo, en Google, un documentoseríaunapágina web, en unabiblioteca, podría ser un libro, etc. Se define dependiendo del negocio de la aplicación.
    • Un conjunto de Fields
    Field:
    • Unasección del documento
    • Contiene un conjunto de terminos (terms)
    • Estáformadopor un nombre, un tipo, masunaserie de propiedadesque lo definen.
    Term:
    • Unapalabra
    • La unidad de búsqueda
  • Algunasdefiniciones...
    Documents, Fields y Terms
    id: 12345
    Album: The Dark Side of the Moon
    Artist: Pink Floyd
    Genere: Progressive Rock
    Release_Date: March 1973
    Un Documento o “Document”
  • Algunasdefiniciones...
    Documents, Fields y Terms
    id: 12345
    Album: The Dark Side of the Moon
    Artist: Pink Floyd
    Genere: Progressive Rock
    Release_Date: March 1973
    Un campo o Field
  • Algunasdefiniciones...
    Documents, Fields y Terms
    id: 12345
    Album: The Dark Side of the Moon
    Artist: Pink Floyd
    Genere: Progressive Rock
    Release_Date: March 1973
    Un Término o “Term”
  • Algunasdefiniciones...
    ÍndiceInvertido
    ÍndiceInvertido: Unaestructura de datosquemapeatodos los términosexistentes con los documentos en los quedichosterminosaparecen.
  • Algunasdefiniciones...
    Analysis
    Analysis:
    • Un procesoaplicadoparaconvertir un texto en un conjunto de términos.
    • Aplicado a los documentos al indexarcontenido.
    • Aplicado a la query del usuario al realizarbúsquedas.
    • Lucene proveediferentestipos de análisisparadiferentestipos de dato.
    • Importanteparamejorar la…findability
  • Un ejemplo...
    Analysis
    Searching with Solr
  • Un ejemplo...
    Analysis
    Searching with Solr
    Tokenization
    Searching
    with
    Solr
  • Un ejemplo...
    Analysis
    Searching with Solr
    Tokenization
    Searching
    with
    Solr
    Lowercase Filter
    searching
    with
    solr
  • Un ejemplo...
    Analysis
    Searching with Solr
    Tokenization
    Searching
    with
    Solr
    Lowercase Filter
    searching
    with
    solr
    Steming Filter
    search
    with
    solr
  • Un ejemplo...
    Analysis
    Searching with Solr
    Tokenization
    Searching
    with
    Solr
    Lowercase Filter
    searching
    with
    solr
    Steming Filter
    search
    with
    solr
    Stop Filter
    search
    solr
  • Un ejemplo...
    Analysis
    Searching with Solr
    Tokenization
    Searching
    with
    Solr
    Lowercase Filter
    Analysis
    searching
    with
    solr
    Steming Filter
    search
    with
    solr
    Stop Filter
    search
    solr
  • Un ejemplo...
    Analysis mal hecho
  • Un ejemplo...
    Analysis mal hecho
  • Un ejemplo...
    Analysis mal hecho
  • El Proceso en unaaplicación de búsqueda
    Adquirir Contenido
    Interfaz de Usuario
    Construir Documento
    Construir Query
    Armar Resultados
    Analizar Documento
    Ejecutar la Query
    Indexar Documento
    Índice
  • El Proceso en unaaplicación de búsqueda
    Interfaz de Usuario
    Realizar Búsquedas:
    El objetivo
    Construir Query
    Armar Resultados
    Ejecutar la Query
    Índice
  • El Proceso en unaaplicación de búsqueda
    Adquirir Contenido
    Construir Documento
    Indexar:
    El mal necesario
    Analizar Documento
    Indexar Documento
    Índice
  • ¿Quehace Lucene?
    Adquirir Contenido
    Interfaz de Usuario
    Construir Documento
    Construir Query
    Armar Resultados
    Analizar Documento
    Ejecutar la Query
    Indexar Documento
    Índice
  • ¿Queagrega Solr?
    Adquirir Contenido
    Interfaz de Usuario
    Construir Documento
    Construir Query
    Armar Resultados
    Analizar Documento
    Ejecutar la Query
    Indexar Documento
    Índice
  • ¿Queagrega Solr?
    También agrega:
    • Esquema
    • Consola de Administración
    • Cache
    • Algunas estadísticas
    • Casi todo se puede hacer por configuración
    • Interfaz via REST-API
    • Escalabilidad integrada
    • Algunos features, pero de ser posible se intentan migrar a Lucene
  • Features
  • Features
    Filter Queries
    • Filtran el universo de documentos
    • No afectan el score del resultado
    • Se pueden almacenar en cache y reutilizar
    • Ejemplo:
    • Sólo quiero ver artículos usados
    • Sólo mostrar artículos en stock
  • Features
    Faceting
    • Cuenta los resultados de una búsqueda que cumplen con cierto criterio.
    • Muy útiles para la navegabilidad, junto con los FilterQueries
  • Features
    Highlighting
    • Obtiene el mejor snipet del resultado.
    • Resalta aquellas secciones donde la querymatcheó el documento
  • Features
    Spell Checking
    • Sugiere correcciones a palabras que interpreta mal escritas
  • Features
    More Like This
    • Sugiere documentos similares a alguno en particular
  • Features
    Result Grouping
    • Agrupa resultados por un campo en particular
    • Ejemplo:
    • Libros de un mismo autor
    • Productos de un mismo vendedor
  • Features
    Spatial Search
    • Filtrar resultados por distancia a un punto.
    • Dar relevancia a resultados mas cercanos a un punto.
    • Ordenar por distancia a un punto.
  • Features
    Otros…
    • Impulsar ciertos documentos al inicio.
    • Clusterizar resultados
    • Múltiples índices dentro de una instancia Solr
  • Escalabilidad
  • Escalabilidad
    Solr provee dos métodosdistintosparaescalar:
    Replicación:
    • Necesariacuando la cantidad de consultases mayor a la quepuede responder un solo servidor.
    • Útilcomo back-up y altadisponibilidad
    Sharding:
    • Necesariocuando la cantidad de documentos en el índicees mayor a la quepuedemanejar un solo servidor.
  • Escalabilidad
    Replicación
    El casomas simple de replicación
    Updates
    Index Server (Master)
    Queries
    Search Server (Slave)
  • Escalabilidad
    Replicación
    Cuando la cantidad de queries porsegundocrece
    Updates
    Index Server (Master)
    Search Servers
    (Slaves)
    Queries
    Queries
    Queries
  • Escalabilidad
    Sharing
    Updates
    Updates
    Unamitad del Índice
    La otramitad del Índice
    Podríapartirse el índice en N partes
  • Escalabilidad
    Sharing
    Updates
    Updates
    Queries
    Queries
    Queries
    Solr se encarga de que las consultas vayan a todos los “shards”
    que se le indican y de “mergear” los resultados luego
  • Escalabilidad
    Sharing
    Una Query Distribuida
    q
    q
    q
    Resultadosparciales
    Merge
    resultados
    Resultado Final
  • Escalabilidad
    Tambiénpuedehacersetodojunto
    Master 1
    Master 2
    Slaves
  • NotasAleatorias
    • Lucene y Solr avanzan muy rápido. Así de rápido se desactualiza la documentación.
    • Los números de versiones, sobre todo de Solr, pueden parecer raros… es porque son raros.
    • Si les interesó la charla, prueben el ejemplo de Solr
  • Referencias
    • http://lucene.apache.org/
    • http://lucene.apache.org/solr
    • Lucene in Action, SecondEdition
    • Solr 1.4 Enterprise Search Server
    • Mailing Lists:
    • solr-user@lucene.apache.org.
    • general-subscribe@lucene.apache.org
  • ¿Preguntas?