【问题标题】:How to get total term frequency through aggregation in elastic?如何通过弹性聚合获得总词频?
【发布时间】:2023-03-03 21:35:01
【问题描述】:

在搜索结果中,我想获取一个词在返回的文档列表中出现的总次数。通过仅使用术语聚合,我只能获得文档计数,但我想要的是整个集合中出现的术语总数。

例如:

doc1:
Name: David
Tech: A1, A1, B1, B1, C1

doc2: 
Name: Josh
Tech: C1, D1, E1

doc3:
Name: David
Tech: A1, D1, F1

当我在“姓名”字段中搜索“大卫”时,我通常会得到我的“技术”聚合:

A1: 2
B1: 1
C1: 1
D1: 1
F1: 1

而我希望我的结果显示:

A1: 3
B1: 2
C1: 1
D1: 1
F1: 1

无论如何我可以通过聚合来做到这一点吗?

谢谢!

【问题讨论】:

    标签: elasticsearch elastic-stack elasticsearch-aggregation


    【解决方案1】:

    将字段设置为具有术语向量可以访问术语计数。

    然后你可以查询任意数量的文档ID

    将为您提供文档中的术语列表,其中包含文档中术语出现的计数和分片中术语的计数。如果您只有一个分片,那么您就很好,否则您可以估计所有分片的使用情况。

    看到这个How to retrieve frequency of a term in elastic search using python?

    【讨论】:

      猜你喜欢
      • 2021-02-19
      • 2021-06-15
      • 1970-01-01
      • 2020-11-20
      • 2015-06-06
      • 2015-10-18
      • 1970-01-01
      • 2019-02-15
      • 1970-01-01
      相关资源
      最近更新 更多