+ All Categories
Home > Data & Analytics > Conferencia 4: Queries

Conferencia 4: Queries

Date post: 16-Jul-2015
Category:
Upload: jorge-luis-betancourt-gonzalez
View: 60 times
Download: 1 times
Share this document with a friend
Popular Tags:
39
Queries
Transcript
Page 1: Conferencia 4: Queries

!

Queries

Page 2: Conferencia 4: Queries

queries

consultas

Page 3: Conferencia 4: Queries

/collection1/select?q=*:*

SearchHandler

SELECT * FROM collection1

Page 4: Conferencia 4: Queries

• Petición HTTP: Incluye la petición de búsqueda y los parámetros.

• Interfaz en la administración de Solr.

• SolrJ y demás librerías en distintos lenguajes.

• Respuestas en diferentes formatos

Page 5: Conferencia 4: Queries

Parámetros básicoslos parámetros pueden ser definidos en el archivo

solrconfig.xml o mediante la URL.

Page 6: Conferencia 4: Queries

qPetición con formato campo:valor (petición del usuario)

startIndica el documento (posición) a partir del cual se va retornar

rowsIndica la cantidad de documentos a devolver

dfCampo de búsqueda por defecto

Page 7: Conferencia 4: Queries

flIndica los campos que se van a devolver (list separada por comas)

fqSimilar a q utilizado para “filtrar” la búsqueda (resultados cacheados).

sort

Define un orden basado en un campo (descarta la relevancia) formato campo desc|asc.

Page 8: Conferencia 4: Queries

http://localhost:8983/solr/collection1/select?q=uci&start=1&rows=20&fl=i

d,name

Page 9: Conferencia 4: Queries

Wildcards

Page 10: Conferencia 4: Queries

term* sustituye cualquier número de caraceteres

t?rm sustituye la ocurrencia de 1 único caracter

AND, &&, + term1 AND term2, term1 && term2, +term1 +term2

OR, || term1 || term2, term1 OR term2, term1 term2

NOT, - term1 -term2, term1 NOT term2

Page 11: Conferencia 4: Queries

Rangos, boosting, fuzzy

Page 12: Conferencia 4: Queries

Rangosfield:[A to B]

Fechasdate:[NOW-1YEAR TO *]

Numéricosdate:[100 TO *]

Page 13: Conferencia 4: Queries

Boostingname:pepe^10 AND alias:pepe^2

Fuzzyname:”A B”~4

Encontrar las ocurrencias de A a 4 “posiciones” de B

Page 14: Conferencia 4: Queries

Highlighting

Page 15: Conferencia 4: Queries

hl=trueActiva el highlighting (resaltado)

hl.flIndica sobre que campos se va a resaltar

hl.simple.preetiquetas utilizadas para la apertura y cierre de cada fragmento.

hl.simple.post

Page 16: Conferencia 4: Queries

Facets

Page 17: Conferencia 4: Queries

La búsqueda facetada permite a los usuarios ver subconjuntos de resultados

agrupados por determinado campo

Page 18: Conferencia 4: Queries
Page 19: Conferencia 4: Queries

La ventaja de los facets en Solr es que son calculados y generados en base al

criterio de búsqueda del usuario y basados en un campo determinado.

Page 20: Conferencia 4: Queries

Field faceting

facet=trueActiva el componente de facetado para la petición en concreto.

facet.field=name

Indica el campo sobre el que se desea facetas (obtienen valores para los conjuntos)

Page 21: Conferencia 4: Queries

http://localhost:8983/solr/collection1/select?

q=*:*&facet=true&facet.field=name{ "facet_counts":{ "facet_queries":{}, "facet_fields":{ "name":[ "Starbucks",6, "McDonalds",5, "Pizza Hut",3, "Red Lobster",3, "Freddy's Pizza Shop",1, "Sprig",1, "The Iberian Pig",1 ]}, "facet_dates":{}, "facet_ranges":{} } }

Page 22: Conferencia 4: Queries

Field faceting - avanzadofacet.sort

Ordena las facetas por mayor cantidad de ocurrencias (count) o por el orden lexicográfico (index).

facet.limit

Limita el número máximo de facetas a obtener.

Page 23: Conferencia 4: Queries

facet.mincount

Determina el número mínimo de documentos con el valor de facetado que deben existir para que sea considerada una faceta válida.

facet.prefix

Limita el valor de las facetas a sólo aquellas que comienza con el prefijo especificado.

Page 24: Conferencia 4: Queries

facet.missingEspecifica si se debe devolver o no un contador con el total de documentos que no tienen un valor para el campo facetado.

facet.offset

Indica la posición a partir de la cual se desea obtener el listado de afacetado (útil para paginado).

Page 25: Conferencia 4: Queries

¡En muchos casos los parámetros anteriores pueden ser especificados

para cada campo! !

utilizando la sintaxis: f.campo.facet.opción=valor

Page 26: Conferencia 4: Queries

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

facet=true& facet.mincount=1& facet.field=state& f.state.facet.limit=50& f.state.facet.sort=index& facet.field=name& f.name.facet.mincount=2& facet.field=tags& f.tags.facet.limit=5

Page 27: Conferencia 4: Queries

"facet_fields":{ "state":[ "California",4, "Georgia",6, "Illinois",2, "New York",4, "South Carolina",1, "Texas",3 ], "name":[ "Starbucks",6, "McDonalds",5, "Pizza Hut",3, "Red Lobster",3, "Freddy's Pizza Shop",1, "Sprig",1, "The Iberian Pig",1], "tags":[ "breakfast",11, "coffee",11, "sit-down",8, "fast food",5, "hamburgers",5] }

state

name

tags

Page 28: Conferencia 4: Queries

Query facetingfacet.query

Acepta una query (similar al parámetro q) cada consulta se utilizará para generar una faceta (bucket).

Page 29: Conferencia 4: Queries

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

facet=true& facet.query=price:[* TO 5]& facet.query=price:[5 TO 10]& facet.query=price:[10 TO 20]& facet.query=price:[20 TO 50]& facet.query=price:[50 TO *]

Page 30: Conferencia 4: Queries

"response":{ "numFound":20, "start":0, "docs":[] }, "facet_counts":{ "facet_queries":{ "price:[* TO 5}":6, "price:[5 TO 10}":5, "price:[10 TO 20}":3, "price:[20 TO 50}":6, "price:[50 TO *]":0},

las facetas (buckets) son nuestras queries.

¡problema! los identificadores de las facetas son las queries

Page 31: Conferencia 4: Queries

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

facet=true& facet.query={!key=“<$5”}price:[* TO 5]& facet.query={!key=“$5<$10”}price:[5 TO 10]& facet.query={!key=“<$10<$20”}price:[10 TO 20]& facet.query={!key=“<$20<$50”}price:[20 TO 50]& facet.query={!key=“>$50”}price:[50 TO *]

{!key=“>$50”} indica un nombre de una faceta

Page 32: Conferencia 4: Queries

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

facet=true& facet.field={!key=“Location”}city& facet.query={!key=“<$5”}price:[* TO 5]& facet.query={!key=“$5<$10”}price:[5 TO 10]& facet.query={!key=“<$10<$20”}price:[10 TO 20]& facet.query={!key=“<$20<$50”}price:[20 TO 50]& facet.query={!key=“>$50”}price:[50 TO *]

renombrar un campo

Page 33: Conferencia 4: Queries

Range facetingfacet.range

Se le indica el campo sobre el que se realizará el facetado. facet.range.start=0

Valor inicialfacet.range.end=50

Valor final del último bucket.

Page 34: Conferencia 4: Queries

facet.range.gap=5

Indica el incremento que se utilizará para generar cada bucket, por ejemplo si el valor inicial es 0 y el gap es de 5, los buckets generados serían: 0, 5, 10, 15, etc.

Page 35: Conferencia 4: Queries

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

facet=true& facet.range=price& facet.range.start=0& facet.range.end=50& facet.range.gap=5 !

Page 36: Conferencia 4: Queries

"response":{ "numFound":20, "start":0, "docs":[] }, "facet_counts":{ "facet_ranges":{ "price":{ "counts": [ "0.0",6, "5.0",5, "10.0",0, "15.0",3, "20.0",2, "25.0",2, "30.0",1, "35.0",0, "40.0",0, "45.0",1 ], "gap":5.0, "start":0.0, "end":50.0} }}}

los buckets son generados automáticamente

Page 37: Conferencia 4: Queries

Página Query de la interfaz

Page 38: Conferencia 4: Queries

interfaz visual para varias de las opciones anteriores

Page 39: Conferencia 4: Queries

Facetado para aplicaciones de analítica


Recommended