gpt4 book ai didi

Elasticsearch "size"值在与分区聚合方面不起作用

转载 作者:行者123 更新时间:2023-12-02 22:21:24 25 4
gpt4 key购买 nike

我正在尝试使用术语聚合与分区对特定字段进行分页。
问题是每个分区的返回项数不等于我设置的大小参数。

这些是我正在做的步骤:

  • 使用“基数”聚合检索字段的不同唯一值的数量。
    在我的数据中,结果是 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 对结果进行排序。

    最佳答案

    聚合方面的分区将值划分为相等的块。
    在你的情况下没有分区 num_partitions是 3 所以 21/3 == 7。
    分区旨在获得 1000 秒左右的大值。

    关于Elasticsearch "size"值在与分区聚合方面不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60411594/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com