我想计算一个索引的elasticsearch db中每个字段的条目数。我试过使用下面的代码,但这只返回条目的总数。我在用python工作。
到目前为止,我尝试了:
qry = {
"aggs": {
"field": {
"terms" : {"field": "field"}
}
}, "size": 0
}
r = es.search(body=qry,
index="webhose_english")
我当前的结果:
Out[64]:
{'_shards': {'failed': 0, 'skipped': 0, 'successful': 5, 'total': 5},
'aggregations': {'field': {'buckets': [],
'doc_count_error_upper_bound': 0,
'sum_other_doc_count': 0}},
'hits': {'hits': [], 'max_score': 0.0, 'total': 4519134},
'timed_out': False,
'took': 16}
我最好有这样的东西:
{'field_1': 321,
'field_2': 231,
'field_3': 132}
2条答案
按热度按时间2hh7jdfx1#
我通过迭代以下查询,然后在字典中收集“total”值来实现:
pinkon5k2#
这些信息曾经是
_field_stats
api,但已在6.0中删除。因此,如果您在正确的轨道上,您将需要一个聚合。我想value_count
是你需要的,而且我已经加上了global
同时,我们知道总共有多少份文件。三份样本文件:
聚合(我不确定是否有较短的版本,尤其是对于许多字段):
结果: