我正在对存储在索引中的文档执行术语聚合。我的文件是产品,我正在汇总产品的品牌名称。
# GET /products/_search/
{
"query": {
"match": { "name": "iphone 5" }
},
"aggs": {
"brands_name": {
"terms": {
"field": "brand",
"size": 10
}
}
}
}
正如预期的那样,结果是一桶品牌名称及其doc_counts
。
{
"aggregations": {
"brands_name": {
"doc_count_error_upper_bound": 577,
"sum_other_doc_count": 239924,
"buckets": [
{
"key": "Irrelevant Brand 1",
"doc_count": 8539
},
{
"key": "Irrelevant Brand 2",
"doc_count": 7616
},
...
]
}
}
}
通用搜索的点击次数可能非常高。在我的情况下,只有高分的第一个结果是相关性。由于聚合在所有命中(即使是得分较低的命中)上运行,因此常见品牌倾向于始终存在于桶列表中(它们的doc_count
很高),而它们可能不是与相关的对应的那个结果
我希望推动我认为是相关品牌的优势。
我的想法是将聚合范围仅限于第一个n
文档(每个结果或每个分片可能为n
,这无关紧要)。我还没有成功。
我尝试了不适合我的不同方法:
n
个文档。但感觉有点脏和弹性搜索does not seems to support decimal intervals yet