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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Serarch engines y Solr, JUG Argentina

983
views

Published on

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/

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
983
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Search Engines + Solr
  • 2. Agenda
    • Introducción a SearchEngines
    • 3. Qué es Lucene
    • 4. Qué es Solr
    • 5. Conceptos de Lucene y Solr
    • 6. Cómo es una aplicación de búsqueda típica
    • 7. Qué otros features ofrece Solr / Lucene
    • 8. Escalando Solr
  • ¿Quées un Search Engine?
    Un sistema dentro de la categoría de “InformationRetrivalSystems”, diseñado para buscar información.
  • 9. ¿Porquéusar un Search Engine?
    • Se puedentenertoneladas de documentos, pero no sirve de nada si no puedoencontrar lo quenecesito.
    • 10. Yanadiepuedeimaginar internet sin Google o un buscadorequivalente.
    • 11. Es dificilimaginarquealguiencompraríaalgo en Ebaysituvieraquerevisartodos los productosparaencontrar el quequiere.
  • … entonces, quees lo importante?
    • Que el usuarioencuentre lo quebusca
    • 12. Simplificar la tarea de encontraresoquebusca:
    • 13. Eliminandoresultadosque no son de interés del usuario
    • 14. Asegurandose de mostraraquellosresultadosque SI son de interés
    • 15. Que los resultadostengan un ordenlógico, quefaciliteencontrar la mejoropcióndentro de los resultados
    • 16. Velocidad en la respuesta
    • 17. Escalabilidad en cantidad de usuarios y documentos
  • ¿Qué es Lucene?
  • 18. ¿QuéesLucene?
    • Biblioteca de busqueda y recuperación de texto
    • 19. Escrita en Java
    • 20. Muy Flexible
    • 21. Usa un índiceinvertido
    • 22. Muyestable
  • ¿Quées Lucene?
    • Biblioteca de busqueda y recuperación de texto
    • 23. Escrita en Java
    • 24. Muy Flexible
    • 25. Usa un índiceinvertido
    • 26. Muyestable
  • ¿QuéesLucene?
    • Biblioteca de busqueda y recuperación de texto
    • 27. Escrita en Java
    • 28. Muy Flexible
    • 29. Usa un índiceinvertido
    • 30. Muyestable
    Multi Platforma. También se
    implementó en otroslenguajes
  • 31. ¿Quées Lucene?
    • Biblioteca de busqueda y recuperación de texto
    • 32. Escrita en Java
    • 33. Muy Flexible
    • 34. Usa un índiceinvertido
    • 35. Muyestable
    Puedeutilizarse en casi
    cualquieraplicación Java
    querequierabúsqueda
    portexto
  • 36. ¿Quées Lucene?
    • Biblioteca de busqueda y recuperación de texto
    • 37. Escrita en Java
    • 38. Muy Flexible
    • 39. Usa un índiceinvertido
    • 40. Muyestable
    Optimizadapararealizar
    búsquedas de texto
  • 41. ¿Quées Lucene?
    • Biblioteca de busqueda y recuperación de texto
    • 42. Escrita en Java
    • 43. Muy Flexible
    • 44. Usa un índiceinvertido
    • 45. Muyestable
    10+ años de desarrollo open
    source. Utilizada en muchas
    aplicacionesproductivas
    (porejemplo: Twitter,
    Linked-in)
  • 46. ¿Qué es Solr?
  • 47. Primero el Nombre…
    S
    O
    L
    R
    earch
    over
    ucene at
    esin
  • 48. ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • 49. Escrita en Java
    • 50. Lucene essunúcleo
    • 51. Agregaalgunos features
    • 52. Muyescalable
    • 53. APIs “REST-like” HTTP/XML y JSON
    • 54. Configuraciónexterna
    • 55. 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
    • 56. Escrita en Java
    • 57. Lucene essunúcleo
    • 58. Agregaalgunos features
    • 59. Muyescalable
    • 60. APIs “REST-like” HTTP/XML y JSON
    • 61. Configuraciónexterna
    • 62. Extensible mediante plug-ins
  • ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • 63. Escrita en Java
    • 64. Lucene essunúcleo
    • 65. Agregaalgunos features
    • 66. Muyescalable
    • 67. APIs “REST-like” HTTP/XML y JSON
    • 68. Configuraciónexterna
    • 69. Extensible mediante plug-ins
    Multi plataforma
  • 70. ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • 71. Escrita en Java
    • 72. Lucene essunúcleo
    • 73. Agregaalgunos features
    • 74. Muyescalable
    • 75. APIs “REST-like” HTTP/XML y JSON
    • 76. Configuraciónexterna
    • 77. Extensible mediante plug-ins
    Incluyetodaslascaracterísticas
    y features de Lucene
  • 78. ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • 79. Escrita en Java
    • 80. Lucene essunúcleo
    • 81. Agregaalgunos features
    • 82. Muyescalable
    • 83. APIs “REST-like” HTTP/XML y JSON
    • 84. Configuraciónexterna
    • 85. 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
  • 86. ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • 87. Escrita en Java
    • 88. Lucene essunúcleo
    • 89. Agregaalgunos features
    • 90. Muyescalable
    • 91. APIs “REST-like” HTTP/XML y JSON
    • 92. Configuraciónexterna
    • 93. Extensible mediante plug-ins
    Replicación, Sharding
    Integración con Zookeeper
  • 94. ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • 95. Escrita en Java
    • 96. Lucene essunúcleo
    • 97. Agregaalgunos features
    • 98. Muyescalable
    • 99. APIs “REST-like” HTTP/XML y JSON
    • 100. Configuraciónexterna
    • 101. 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.
  • 102. ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • 103. Escrita en Java
    • 104. Lucene essunúcleo
    • 105. Agregaalgunos features
    • 106. Muyescalable
    • 107. APIs “REST-like” HTTP/XML y JSON
    • 108. Configuraciónexterna
    • 109. Extensible mediante plug-ins
    Podríanconstruirsecientos de
    aplicacionescompletamente
    distintas sin tocarunalínea de
    código Java.
  • 110. ¿Quées Solr?
    • Plataforma de Enterprise Search Open Source
    • 111. Escrita en Java
    • 112. Lucene essunúcleo
    • 113. Agregaalgunos features
    • 114. Muyescalable
    • 115. APIs “REST-like” HTTP/XML y JSON
    • 116. Configuraciónexterna
    • 117. Extensible mediante plug-ins
    Se pueden extender o crear
    nuevoscomponentes y
    agregarlos de manera simple
  • 118. ¿Quées Solr?
  • 119. Algunasdefiniciones...
    Documents, Fields y Terms
    Document:
    • La unidad de indexación y resultado.
    • 120. 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.
    • 121. Un conjunto de Fields
    Field:
    • Unasección del documento
    • 122. Contiene un conjunto de terminos (terms)
    • 123. Estáformadopor un nombre, un tipo, masunaserie de propiedadesque lo definen.
    Term:
    • Unapalabra
    • 124. 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”
  • 125. 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
  • 126. 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”
  • 127. Algunasdefiniciones...
    ÍndiceInvertido
    ÍndiceInvertido: Unaestructura de datosquemapeatodos los términosexistentes con los documentos en los quedichosterminosaparecen.
  • 128. Algunasdefiniciones...
    Analysis
    Analysis:
    • Un procesoaplicadoparaconvertir un texto en un conjunto de términos.
    • 129. Aplicado a los documentos al indexarcontenido.
    • 130. Aplicado a la query del usuario al realizarbúsquedas.
    • 131. Lucene proveediferentestipos de análisisparadiferentestipos de dato.
    • 132. Importanteparamejorar la…findability
  • Un ejemplo...
    Analysis
    Searching with Solr
  • 133. Un ejemplo...
    Analysis
    Searching with Solr
    Tokenization
    Searching
    with
    Solr
  • 134. Un ejemplo...
    Analysis
    Searching with Solr
    Tokenization
    Searching
    with
    Solr
    Lowercase Filter
    searching
    with
    solr
  • 135. Un ejemplo...
    Analysis
    Searching with Solr
    Tokenization
    Searching
    with
    Solr
    Lowercase Filter
    searching
    with
    solr
    Steming Filter
    search
    with
    solr
  • 136. Un ejemplo...
    Analysis
    Searching with Solr
    Tokenization
    Searching
    with
    Solr
    Lowercase Filter
    searching
    with
    solr
    Steming Filter
    search
    with
    solr
    Stop Filter
    search
    solr
  • 137. 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
  • 138. Un ejemplo...
    Analysis mal hecho
  • 139. Un ejemplo...
    Analysis mal hecho
  • 140. Un ejemplo...
    Analysis mal hecho
  • 141. 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
  • 142. El Proceso en unaaplicación de búsqueda
    Interfaz de Usuario
    Realizar Búsquedas:
    El objetivo
    Construir Query
    Armar Resultados
    Ejecutar la Query
    Índice
  • 143. El Proceso en unaaplicación de búsqueda
    Adquirir Contenido
    Construir Documento
    Indexar:
    El mal necesario
    Analizar Documento
    Indexar Documento
    Índice
  • 144. ¿Quehace Lucene?
    Adquirir Contenido
    Interfaz de Usuario
    Construir Documento
    Construir Query
    Armar Resultados
    Analizar Documento
    Ejecutar la Query
    Indexar Documento
    Índice
  • 145. ¿Queagrega Solr?
    Adquirir Contenido
    Interfaz de Usuario
    Construir Documento
    Construir Query
    Armar Resultados
    Analizar Documento
    Ejecutar la Query
    Indexar Documento
    Índice
  • 146. ¿Queagrega Solr?
    También agrega:
    • Esquema
    • 147. Consola de Administración
    • 148. Cache
    • 149. Algunas estadísticas
    • 150. Casi todo se puede hacer por configuración
    • 151. Interfaz via REST-API
    • 152. Escalabilidad integrada
    • 153. Algunos features, pero de ser posible se intentan migrar a Lucene
  • Features
  • 154. Features
    Filter Queries
    • Filtran el universo de documentos
    • 155. No afectan el score del resultado
    • 156. Se pueden almacenar en cache y reutilizar
    • 157. Ejemplo:
    • 158. Sólo quiero ver artículos usados
    • 159. Sólo mostrar artículos en stock
  • Features
    Faceting
    • Cuenta los resultados de una búsqueda que cumplen con cierto criterio.
    • 160. Muy útiles para la navegabilidad, junto con los FilterQueries
  • Features
    Highlighting
    • Obtiene el mejor snipet del resultado.
    • 161. 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
    • 162. Ejemplo:
    • 163. Libros de un mismo autor
    • 164. Productos de un mismo vendedor
  • Features
    Spatial Search
    • Filtrar resultados por distancia a un punto.
    • 165. Dar relevancia a resultados mas cercanos a un punto.
    • 166. Ordenar por distancia a un punto.
  • Features
    Otros…
    • Impulsar ciertos documentos al inicio.
    • 167. Clusterizar resultados
    • 168. Múltiples índices dentro de una instancia Solr
  • Escalabilidad
  • 169. Escalabilidad
    Solr provee dos métodosdistintosparaescalar:
    Replicación:
    • Necesariacuando la cantidad de consultases mayor a la quepuede responder un solo servidor.
    • 170. Ú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)
  • 171. Escalabilidad
    Replicación
    Cuando la cantidad de queries porsegundocrece
    Updates
    Index Server (Master)
    Search Servers
    (Slaves)
    Queries
    Queries
    Queries
  • 172. Escalabilidad
    Sharing
    Updates
    Updates
    Unamitad del Índice
    La otramitad del Índice
    Podríapartirse el índice en N partes
  • 173. 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
  • 174. Escalabilidad
    Sharing
    Una Query Distribuida
    q
    q
    q
    Resultadosparciales
    Merge
    resultados
    Resultado Final
  • 175. Escalabilidad
    Tambiénpuedehacersetodojunto
    Master 1
    Master 2
    Slaves
  • 176. NotasAleatorias
    • Lucene y Solr avanzan muy rápido. Así de rápido se desactualiza la documentación.
    • 177. Los números de versiones, sobre todo de Solr, pueden parecer raros… es porque son raros.
    • 178. Si les interesó la charla, prueben el ejemplo de Solr
  • Referencias
    • http://lucene.apache.org/
    • 179. http://lucene.apache.org/solr
    • 180. Lucene in Action, SecondEdition
    • 181. Solr 1.4 Enterprise Search Server
    • 182. Mailing Lists:
    • 183. solr-user@lucene.apache.org.
    • 184. general-subscribe@lucene.apache.org
  • ¿Preguntas?