elasticsearch-dsl,Python,Aggregation,elasticsearch Dsl" /> elasticsearch-dsl,Python,Aggregation,elasticsearch Dsl" />

Python 如何获取elasticsearch索引中列(字段)中不同值的计数

Python 如何获取elasticsearch索引中列(字段)中不同值的计数,python,aggregation,elasticsearch-dsl,Python,Aggregation,elasticsearch Dsl,我正在尝试使用python中的elasticsearch dsl包获取列中所有行的计数和不同值的计数。 我是elasticsearch的新手,如果我问了一个愚蠢的问题,我深表歉意,但我已经阅读了所有关于这方面的可用文档,无法理解这一点。 在此方面的任何帮助都将不胜感激 为了获取所有行的计数,我使用了'.aggs.metric(),它工作正常,为了获取不同值的计数,我尝试了.bucket('terms')和.bucket('cardinality'),它们没有返回我想要的值 有关行的总计数: s

我正在尝试使用python中的elasticsearch dsl包获取列中所有行的计数和不同值的计数。
我是elasticsearch的新手,如果我问了一个愚蠢的问题,我深表歉意,但我已经阅读了所有关于这方面的可用文档,无法理解这一点。 在此方面的任何帮助都将不胜感激

为了获取所有行的计数,我使用了'.aggs.metric(),它工作正常,为了获取不同值的计数,我尝试了.bucket('terms')和.bucket('cardinality'),它们没有返回我想要的值

有关行的总计数:

s = Search(using=client, index="<index_name>")
s.aggs.metric('total', 'sum', field = '<column>')
s = s.execute()
s.aggregations.total.value

第二个代码段返回10行,我也尝试在.bucket()中使用'terms'参数,但它返回了列中每个不同值的出现次数,并且仅返回了10个值的出现次数

您必须访问
s.aggregations.by_cluster.value
(在运行
execute()
)以获得满足您需要的
基数
聚合结果

s = Search(using=client, index="brandcleanerv2")
s.aggs.metric('by_cluster', 'cardinality', field='cluster')
s = s.execute()