elasticsearch - Elastic Search - 按索引聚合分组

标签 elasticsearch lucene

我有一些具有相同数据类型(相同字段)的索引。有没有办法获得每个索引中某个字段的最大值(例如)?

假设我有以下数据:

index1.some_type:
    {"some_field": 23},
    {"some_field": 14},
    {"some_field": 43}

index2.some_type:
    {"some_field": 11},
    {"some_field": 65},
    {"some_field": 3}

我想获得第一个索引的最大值 43,第二个索引的最大值 65。 Elastic Search 允许在一个聚合查询中做这样的事情吗?

最佳答案

是的,您当然可以在 _index meta field 中使用特殊的 terms aggregation ,然后在 max 上使用 some_field aggregation ,如下所示:

curl -XPOST localhost:9200/_search -d '{
  "size": 0,
  "aggs": {
    "byindex": {
      "terms": {
        "field": "_index",
        "size": 100
      },
      "aggs": {
        "max_value": {
          "max": {
            "field": "some_field"
          }
        }
      }
    }
  }
}'

关于elasticsearch - Elastic Search - 按索引聚合分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34304443/

相关文章:

c# - 将JObject转换为匿名类型

twitter - 当geo_enable = true时,logstash Twitter错误

java - 无法加载主类 list Lucene Spellchecker

java - 使用 Lucene 进行正则表达式匹配

search - 西类牙语字符上的 Solr IOException(电影示例)