在我的电子商务商店中,我只希望在最终结果中包括每个组中的第一个项目(按item_id分组)。同时,我也不想丢失聚合(属性旁边的小数字表示已找到具有该属性的项目)。
这是一个小例子:
假设我搜索商品,但只显示25个。这是我当前得到的颜色聚合的结果:
我希望它是
数字应等于用户在页面上实际看到的总数。
如何通过Elasticsearch实现这一目标?我已经尝试了分组(热门)和字段折叠,但两者似乎都不适合我的用例。 Solr几乎在默认情况下会利用其分组功能来做到这一点。
答案 0 :(得分:0)
应该很容易。当您要求聚合时,您只需将请求发送到Name: hello-world
Version: 1
Release: 2
Summary: Most simple RPM package
License: FIXME
Requires: hello-world = 1-1
Provides: hello-world = %{version}-%{release}
端点即可。示例:
_search
在上面的示例中,您将获得所有文档的汇总。
如果您想汇总特定文档,只需在请求正文中添加特定的POST /exams/_search
{
"aggs" : {
"avg_grade" : { "avg" : { "field" : "grade" } }
}
}
,例如:
query
,您也可以发送POST /exams/_search
{
"query": {
"bool" : {
"must" : {
"query_string" : {
"query" : "some query string here"
}
},
"filter" : {
"term" : { "user" : "kimchy" }
}
}
},
"aggs" : {
"avg_grade" : { "avg" : { "field" : "grade" } }
}
}
和size
参数。