Elasticsearch:对唯一值的分页

时间:2014-09-11 20:29:29

标签: elasticsearch pagination bigdata aggregation

我正在为我的雇主构建一些Logging and monitoring产品,并使用ES作为后端。 现在找到每个/任何属性的唯一值是我手头的业务逻辑的核心部分。

让我说我想要唯一的dst_ip来实现这一点,

  • 我已将"index":"not_analyzed"用于所选字段

  • Api曾经获得独特的计数

    http:// 127.0.0.1:9200/es-server/Events/_search -d '{
      "aggs": {
        "dst_ip_count": {
          "cardinality": {
            "field": "dst_ip"
          }
        }
      },
      "size": 0
    }'
    
  • Api用于获取这些值

    http:// 127.0.0.1:9200/es-server/Events/_search -d '{
      "fields": [
        "dst_ip"
      ],
      "facets": {
        "terms": {
          "terms": {
            "field": "dst_ip",
            "size": 1116,
            "order": "count"
          }
        }
      },
      "size": 1116
    }'
    

这里从第一个API接收1116。现在这里的数量非常少,但在生产环境中这个数量超过了2千。这导致查询响应缓慢。

我们是否有任何其他方式来获取这些带有分页的值,就像我们在搜索查询中的大小和来自?

1 个答案:

答案 0 :(得分:1)

Elasticsearch不支持聚合结果的分页,仅支持文档本身。如果要返回所有聚合结果,请设置"size": 0