!
Queries
queries
consultas
/collection1/select?q=*:*
SearchHandler
SELECT *
FROM collection1
•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
Parámetrosbásicos
los parámetros pueden ser definidos en el archivo
solrconfig.xml o mediante la URL.
q
Petición con formato
campo:valor (petición del
usuario)
start
Indica el documento
(posición) a partir del cual se
va retornar
rows
Indica la cantidad de
documentos a devolver
df
Campo de búsqueda por
defecto
fl
Indica los campos que se
van a devolver (list
separada por comas)
fq
Similar 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.
http://localhost:8983/
solr/collection1/select?
q=uci&start=1&rows=20&fl=i
d,name
Wildcards
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
Rangos,boosting,fuzzy
Rangos
field:[A to B]
Fechas
date:[NOW-1YEAR TO *]
Numéricos
date:[100 TO *]
Boosting
name:pepe^10 AND
alias:pepe^2
Fuzzy
name:”A B”~4
EncontrarlasocurrenciasdeAa4
“posiciones”deB
Highlighting
hl=true
Activa el highlighting
(resaltado)
hl.fl
Indica sobre que campos
se va a resaltar
hl.simple.pre
etiquetas utilizadas
para la apertura y
cierre de cada
fragmento.
hl.simple.post
Facets
Labúsquedafacetadapermitealos
usuariosversubconjuntosderesultados
agrupadospordeterminadocampo
LaventajadelosfacetsenSolresque
soncalculadosygeneradosenbaseal
criteriodebúsquedadelusuarioy
basadosenuncampodeterminado.
Fieldfaceting
facet=true
Activa 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)
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":{}
}
}
Fieldfaceting-avanzado
facet.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.
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.
facet.missing
Especifica 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).
¡Enmuchoscasoslosparámetros
anteriorespuedenserespecificados
paracadacampo!
!
utilizandolasintaxis:
f.campo.facet.opción=valor
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
"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
Queryfaceting
facet.query
Acepta una query (similar al
parámetro q) cada consulta se
utilizará para generar una faceta
(bucket).
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 *]
"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},
lasfacetas(buckets)son
nuestrasqueries.
¡problema!losidentificadoresdelasfacetassonlas
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”} indicaunnombredeunafaceta
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 *]
renombraruncampo
Rangefaceting
facet.range
Se le indica el campo sobre el que se
realizará el facetado.
facet.range.start=0
Valor inicial
facet.range.end=50
Valor final del último bucket.
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.
http://localhost:8983/solr/
collection1/select?q=*:*&
facet=true&
facet.range=price&
facet.range.start=0&
facet.range.end=50&
facet.range.gap=5
!
"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}
}}}
losbucketssongenerados
automáticamente
PáginaQuerydelainterfaz
interfazvisualparavariasdelas
opcionesanteriores
Facetadoparaaplicaciones
deanalítica

Conferencia 4: Queries