我正在尝试使用python中的elasticsearch-dsl包来获取所有行的计数和一列中不同值的计数。
我对Elasticsearch还是相当陌生,所以如果我问一个愚蠢的问题,我深表歉意,但是我已经阅读了所有可用的文档,对此一无所知。
任何帮助,将不胜感激!
为了获取所有行的计数,我使用了工作正常的'.aggs.metric(),并尝试了.bucket('terms')和.bucket的不同值的计数(“基数”)没有返回我想要的内容。
总行数:
s = Search(using=client, index="<index_name>")
s.aggs.metric('total', 'sum', field = '<column>')
s = s.execute()
s.aggregations.total.value
对于列中不同值的计数:
s = Search(using=client, index="brandcleanerv2")
s.aggs.metric('by_cluster', 'cardinality', field='cluster')
s = s.execute()
第二个代码段返回10行,我也尝试在.bucket()中使用'terms'参数,但是它返回了列中每个不同值的出现次数计数,也只返回了10个值。
答案 0 :(得分:1)
您必须访问s.aggregations.by_cluster.value
(在运行execute()
之后)才能获得cardinality
聚合的结果。