Эта проблема может иметь то, что вы ищете:
https://github.com/grantr/rubberband/issues/4
q = {
"query"=> {
"filtered"=> {
"query"=> {
"match_all"=> {}
},
"filter"=> {
"term"=> {
"client_id"=> "717",
"product_id"=> "1"
}
}
}
},
"facets"=> {
"shipped_to_state_counts"=> {
"terms"=> {
"field"=> "state",
"size"=> "500"
}
}
}
}
РЕДАКТИРОВАТЬ: (более простой запрос, синтаксис lucene)
ПРИМЕЧАНИЕ. Согласно документации elasticsearch, это разные запросы:
Следует помнить об одном важном различии. В то время как поиск queries
ограничивает как возвращаемые документы, так и количество аспектов, поиск filters
ограничивает только возвращаемые документы, но не количество аспектов.
q = {
"query"=> {
"query_string"=> {
"query"=> "client_id:717 AND product_id:1"
}
},
"facets"=> {
"shipped_to_state_counts"=> {
"terms"=> {
"field"=> "state",
"size"=> "500"
}
}
}
}
ЗАВЕРШИТЬ РЕДАКТИРОВАНИЕ
results = client.search(q)
facets = results.facets
=>
{
"shipped_to_state_counts"=> {
"_type"=> "terms",
"missing"=> 0,
"total"=> 1873274,
"other"=> 0,
"terms"=> [
{
"term"=> "MO",
"count"=> 187327
},
{
"term"=> "FL",
"count"=> 17327
}
]
}
}
person
iouri
schedule
15.05.2013