验证elasticsearch某索引字段的值的唯一性
有个索引字段命名为id,现在领导怀疑该字段的唯一性,需要验证下这个问题。
该字段的定义为:
"id": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } },
对应的验证语句为:
curl -H "Content-Type: application/json" -XGET 'http://ip:9200/index_name/_search?pretty' -d '{ "aggs": { "id_type": {"terms": {"field": "id.keyword", "order": { "_count" : "desc" }}}}}'
这里聚合需要使用id.keyword而不是id,因为最新版本的es默认不能在text类型字段上执行聚合操作。