【发布时间】:2021-01-20 04:11:03
【问题描述】:
我正在尝试使用带有分区的术语聚合对特定字段进行分页。 问题是每个partition返回的term数量不等于我设置的size参数。
这些是我正在做的步骤:
检索具有“基数”聚合的字段的不同唯一值的数量。 在我的数据中,结果是 21。
-
从网页中,用户想要显示一个每页包含 10 个项目的表格。
if unique_values % page_size != 0: partitions_number = (unique_values // page_size) + 1 else: partitions_number = (unique_values // page_size)
比我做这个简单的查询:
POST my_index/_search?pretty
{
"size": 0,
"query": {
"bool": {
"filter": [
{
"match": {
"field_to_paginate": "foo"
}
}
]
}
},
"aggs": {
"by_pchostname": {
"terms": {
"size": 10,
"field": "field_to_paginate",
"include": {
"partition": 0,
"num_partitions": 3
}
}
}
}
}
我期望检索 10 个结果。但如果我运行查询,我只有 7 个结果。 我在这里想念什么?我需要在这里使用不同的解决方案吗?
附带说明,我不能使用复合聚合,因为我需要在整个数据集上按 doc_count 对结果进行排序。
【问题讨论】:
标签: elasticsearch