标记化字段上的 ElasticSearch 术语聚合

标签 elasticsearch aggregation

当我对字符串字段(使用空格分词器)进行术语聚合时,我得到了每个单词(分词)的结果,但我需要整个字符串的结果。 我如何对术语等字符串字段进行聚合,但按整个字符串而不是标记对输出进行分组?

我已经看到了这个解决方案: ElasticSearch term aggregation Terms aggregation based on unique key 但它们基于关键字分词器

我不能使用关键字分词器,因为我不想在索引时应用停用词过滤器

最佳答案

我刚遇到同样的问题,来这里寻找解决方案。

然后我就明白了。有一个 .raw(未分析的)字段,它起作用了。解决方案是使用它。

所以聚合来自:

{
  "aggs": {
    "keys": {
      "terms": {
        "size": 0,
        "field": "key"
}}}}}

到:

{
  "aggs": {
    "keys": {
      "terms": {
        "size": 0,
        "field": "key.raw"
}}}}}

关于标记化字段上的 ElasticSearch 术语聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27815875/

相关文章:

elasticsearch - 加入Haystack SearchQuerySets

elasticsearch - 在Raspberry Pi上运行ElasticSearch:无法创建Java虚拟机

elasticsearch - 弹性如何在不同的日子汇总小时数

sql - 选择整个表格但特定列中的唯一值

elasticsearch - 无法使用 Kafka 连接将记录从 Kafka MSK 发送到 Elasticsearch

node.js - 将 Nodejs 应用程序容器安全地链接到 Elasticsearch 容器 (Docker)

elasticsearch - 反向嵌套聚合和

php - 具有查找条件的Mongodb随机聚合查询

python-2.7 - 等价于python中的 `GET _mapping`奇迹/感觉?

sql - UPDATE SQL 查询中的聚合