ElasticSearch读取所有唯一值

时间:2017-08-17 15:47:14

标签: elasticsearch

我知道这个问题在这里被多次询问过。但我需要知道是否有可能获得ES中特定字段的所有唯一值。

到目前为止我的成就:

  1. 请求字段的基数:
  2. {
        "size": 0,
        "aggs": {
            "unique_count": {
                "cardinality": {
                    "field": "fieldName"
                }
            }
        }
    }
    
    1. 从基数减去分区数量:MS.Internal.NamedObject

    2. 请求每个分区的条款

    3. {
          "size": 0,
          "aggs": {
              "value_terms": {
                  "terms": {
                      "field": "fieldName",
                      "include": {
                          "partition": $i,
                          "num_partitions": $total_partitions
                      }
                  }
              }
          }
      }
      

      这是对的吗?或者还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

我们最终得到了elasticsearch-hadoop。它包含Spark 积分。我们以本地模式运行Spark - 最简单的解决方案。

答案 1 :(得分:-1)

也许我在你的问题中遗漏了一些内容,但是一个简单的聚合应该给你具有相应计数的特定字段的所有唯一值:

{
  "aggs": {
    "unique_values": {
      "terms": {
        "field": "fieldName",
        "size": 0
      }
    }
  }
}