Date post: | 29-Jul-2015 |
Category: |
Data & Analytics |
Upload: | jorge-luis-betancourt-gonzalez |
View: | 123 times |
Download: | 0 times |
Introducción a
Solr
¿Solr?
🔍 búsqueda
¡Queremos buscar!
SELECT ... FROM ... WHERE ... LIKE “%query%”
Primera solución
20 minutos después …
No tan así ...
• lento con muchas tuplas •mayúsculas/minúsculas • longitud del campo •match parciales •análisis textuales
1) la uci 2) bienvenido la uci 3) esta es la uci
Match parciales
query=“la uci”
query=“esta uci”
Análisis textuales
ABCD123 ➜ [“ABCD”, “123”]
“la casa” ➜ [“casa”]
“drinking, learning” ➜ [“drink”, “learn”]
No tan así ...• lento con muchas tuplas •mayúsculas/minúsculas • longitud del campo •match parciales •análisis textuales •¿relevancia?
Características
• 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.
Lucene
• 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
Indice Invertido
correlación entre términos y los documentos donde aparece, posición relativa y frecuencia.
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
• 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
¡Queremos buscar!
Funcionamiento de SolrWeb
secundario📸
Nutch ♥ Solr
spider
BD
Web
Instalando Solr
JARs con funciones adicionales
JARs de Solr, SolrJ (cliente Java)
ejemplos de configuraciones
directorio “home” para el ejemplo
distribución standard
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
➜ cd /path/a/solr/example ➜ java -jar start.jar
Iniciando Solr
⌨ Ctrl+C# para detener el servidor
puerto en el que se inició Solr
http://localhost:8983/solr
Interfaz Web de Solr
➜ cd exampledocs/ ➜ java -jar post.jar *.xml
Añadiendo documentos
http://localhost:8983/solr/select?q=*:*
Endpoint REST
Todos los documentos
Respuesta de 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
<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>
{ "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
Bibliografía adicional
http://sunshine.prod.uci.cu/search/solr