elasticsearch - Elasticsearch通过管道bucket_script聚合对术语进行排序

标签 elasticsearch

我将这2个文档编入索引:

POST my_index/my_type/1
{
    "name": "Nephi",
    "x": 5
}

POST my_index/my_type/2
{
    "name": "Lehi",
    "x": 10
}

这是我的搜索请求:
POST my_index/my_type/_search?size=0
{
   "aggs": {
      "some_terms_agg": {
         "terms": {
            "field": "name",
            "order": {
               "the_script_bucket": "asc"
            }
         },
         "aggs": {
            "the_sum": {
               "sum": {
                  "field": "x"
               }
            },
            "the_avg": {
               "avg": {
                  "field": "x"
               }
            },
            "the_script_bucket": {
               "bucket_script": {
                  "buckets_path": {
                     "a": "the_sum.value",
                     "b": "the_avg.value"
                  },
                  "script": "a + b"
               }
            }
         }
      }
   }
}

我收到这样的错误:

Invalid term-aggregator order path [the_script_bucket]. Unknown aggregation [the_script_bucket]



但是,当我将the_script_bucket更改为the_sumthe_avg之类的另一个聚合时,它可以正常工作。我确定这是因为the_script_bucket是管道聚合,但是我希望根据the_script_bucket对术语进行排序,因此(例如)我可以查看100,000个文档的前10个值。那可能吗?

最佳答案

关于elasticsearch - Elasticsearch通过管道bucket_script聚合对术语进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37799130/

相关文章:

spring-boot - AbstractElasticsearchRepository:无法加载elasticsearch节点:MapperParsingException:找不到字段的分析器[autocomplete_index]

elasticsearch - 为什么不能在ElasticSearch 6.0中启用 “_all”字段?

elasticsearch - 基于唯一键的术语汇总

elasticsearch - Elasticsearch 文档计数传递数组

javascript - Elasticsearch 按自定义项目重量排序

docker - 如何为 Swisscom elasticsearch 公共(public)云 (CloudFoundry) 配置 Kibana

elasticsearch - Elasticsearch 文档存储

elasticsearch - 对 elasticsearch 映射的更改是否适用于已索引的文档?

java - 如何在没有元信息的情况下将json(来自elasticsearch)解析为数组

java - Elastic Search 中的嵌套文档