37
Introducción a Solr

Introducción a Solr

Embed Size (px)

Citation preview

Page 1: Introducción a Solr

Introducción a

Solr

Page 2: Introducción a Solr

¿Solr?

🔍 búsqueda

Page 3: Introducción a Solr

¡Queremos buscar!

Page 4: Introducción a Solr

SELECT ... FROM ... WHERE ... LIKE “%query%”

Primera solución

Page 5: Introducción a Solr

20 minutos después …

Page 6: Introducción a Solr
Page 7: Introducción a Solr

No tan así ...

• lento con muchas tuplas •mayúsculas/minúsculas • longitud del campo •match parciales •análisis textuales

Page 8: Introducción a Solr

1) la uci 2) bienvenido la uci 3) esta es la uci

Match parciales

query=“la uci”

query=“esta uci”

Page 9: Introducción a Solr

Análisis textuales

ABCD123 ➜ [“ABCD”, “123”]

“la casa” ➜ [“casa”]

“drinking, learning” ➜ [“drink”, “learn”]

Page 10: Introducción a Solr

No tan así ...• lento con muchas tuplas •mayúsculas/minúsculas • longitud del campo •match parciales •análisis textuales •¿relevancia?

Page 11: Introducción a Solr

Características

Page 12: Introducción a Solr

• servidor de indexación • comunica a través HTTP (REST) • soporta formatos XML y JSON • configuración vía ficheros • caché a diferentes niveles • basado en Lucene • orientado a documentos (NoSQL) • extensible • distribuido, escalable, etc.

Page 13: Introducción a Solr

Lucene

Page 14: Introducción a Solr

• librería de búsqueda full-text • muy utilizada y extendida • desarrollada desde el 2000 • pertenece a la Fundación Apache • open source

Lucene es...

y no es:• un servidor, crawler o un sistema

Page 15: Introducción a Solr

Indice Invertido

correlación entre términos y los documentos donde aparece, posición relativa y frecuencia.

Page 16: Introducción a Solr

Término Documentos

a doc1[2x]

brown doc2[1x],doc3[1x]

cat doc4[1x]

cow doc2[1x]

… …

once doc1[1x]

over doc2[1x]

the doc2[1x],doc3[1x] doc4[1x]

Documento Contenido

doc1 once upon a time, in a land

doc2 the brown cow jumped over...

doc3 the quick brown fox…

doc4 the cat in the hat

Indice Invertido

además se guarda la posición del término en el documento

Page 17: Introducción a Solr

• Documento: Cualquier fragmento de información enviado a Solr.

• Campo: Unidad lógica que compone a los documentos (columnas en un SGBD).

• Término: Es la unidad básica que compone cada campo de un documento.

Conceptos Fundamentales

Page 18: Introducción a Solr

¡Queremos buscar!

Page 19: Introducción a Solr

Funcionamiento de SolrWeb

secundario📸

Page 20: Introducción a Solr

Nutch ♥ Solr

Page 21: Introducción a Solr

spider

BD

Web

Page 22: Introducción a Solr

Instalando Solr

Page 23: Introducción a Solr

JARs con funciones adicionales

JARs de Solr, SolrJ (cliente Java)

ejemplos de configuraciones

directorio “home” para el ejemplo

distribución standard

Page 24: Introducción a Solr

nombre del core/colección

subdirectorio de configuración

subdirectorio de datos

esquema (estructura)configuración principal de un core

Estructura de una colección

Page 25: Introducción a Solr

➜ cd /path/a/solr/example ➜ java -jar start.jar

Iniciando Solr

⌨ Ctrl+C# para detener el servidor

Page 26: Introducción a Solr

puerto en el que se inició Solr

Page 27: Introducción a Solr

http://localhost:8983/solr

Page 28: Introducción a Solr

Interfaz Web de Solr

Page 29: Introducción a Solr

➜ cd exampledocs/ ➜ java -jar post.jar *.xml

Añadiendo documentos

Page 30: Introducción a Solr

http://localhost:8983/solr/select?q=*:*

Endpoint REST

Todos los documentos

Page 31: Introducción a Solr
Page 32: Introducción a Solr

Respuesta de Solr

Page 33: Introducción a Solr

<response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">1</int> </lst> <result name="response" numFound="32"> <doc> <str name="id">belkin</str> <arr name="compName_s"> <str>Belkin</str> </arr> <arr name="address_s"> <str>12045 E. Waterfront Drive</str> </arr> </doc> </result> </response>

XML

Page 34: Introducción a Solr

<doc> <str name="id">belkin</str> <arr name="compName_s"> <str>Belkin</str> </arr> <arr name="address_s"> <str> 12045 E. Waterfront Drive </str> </arr> </doc>

<doc></doc>

Page 35: Introducción a Solr

{ "responseHeader":{ "status":0, "QTime":15}, "response":{ "numFound":32, "docs":[ { "id":"belkin", "compName_s":["Belkin"], "address_s":["12045 E. Waterfront Drive Playa Vista, CA 90094"] } ] } }

JSON

Page 36: Introducción a Solr

Bibliografía adicional

Page 37: Introducción a Solr

http://sunshine.prod.uci.cu/search/solr