• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Serarch engines y Solr, JUG Argentina
 

Serarch engines y Solr, JUG Argentina

on

  • 1,151 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,151
Views on SlideShare
1,092
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?