我正在为我的雇主构建一些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千。这导致查询响应缓慢。
我们是否有任何其他方式来获取这些带有分页的值,就像我们在搜索查询中的大小和来自?
答案 0 :(得分:1)
Elasticsearch不支持聚合结果的分页,仅支持文档本身。如果要返回所有聚合结果,请设置"size": 0
。