当前位置: 首页 > 面试题库 >

ElasticSearch术语按整个字段聚合

曾弘扬
2023-03-14
问题内容

如何编写一个将整个字段值而不是单个标记考虑在内的ElasticSearch术语聚合查询?比如,我想通过城市名聚集,但下面的回报newyorksanfrancisco作为单独的水桶,不new yorksan francisco的水桶预期。

curl -XPOST "http://localhost:9200/cities/_search" -d'
{
   "size": 0, 
   "aggs" : {
     "cities" : {
         "terms" : { 
            "field" : "city",
            "min_doc_count": 10
         }
     }
   }
}'

问题答案:

您应该在映射中解决此问题。添加一个not_analyzed字段。如果您还需要分析的版本,则可以创建多字段。

"album": {
  "city": "string",
  "fields": {
    "raw": {
      "type": "string",
      "index": "not_analyzed"
    }
  }
}

现在在city.raw上创建聚合



 类似资料:
  • 问题内容: 索引文件如下: 我想要的是按平台计数和输出统计信息。为了进行计数,我可以将术语聚合作为字段进行计数: 这样,我就可以像预期那样将统计数据作为多个存储桶接收到。 现在,我还能以某种方式添加到这些存储桶中吗(以及用于统计的漂亮输出)?我附带的最好的看起来像: 实际上,它可以工作,并且在每个存储桶中返回非常复杂的结构: 当然,可以从此结构中提取平台的名称和网址(例如),但是是否有更干净,更简

  • 索引文档如下: 我想要的是按平台计数和输出统计信息。对于计数,我可以使用带有的术语聚合作为字段进行计数: 通过这种方式,我以多个bucket的形式接收统计数据,看起来就像预期的那样{key:8,doc\u count:162511}。 现在,我可以以某种方式将和(用于漂亮的统计输出)添加到这些桶中吗?我带来的最好的看起来像: 实际上,它可以工作,并在每个桶中返回非常复杂的结构: 当然,平台的名称和

  • 问题内容: 我正在尝试使用以下查询对以下数据进行elasticsearch来执行术语聚合,输出将名称分解为标记(请参见下面的输出)。因此,我尝试将os_name映射为multi_field,但现在无法通过它查询。是否可以有没有令牌的索引?例如“ Fedora Core”? 查询: 数据: 输出: 映射: 问题答案: 实际上,您应该像这样更改映射 并且您的aggs应该更改为:

  • 如何编写Elasticsearch术语聚合,将存储桶按整个术语而不是单个标记拆分?例如,我想按州进行聚合,但以下返回的是纽约、纽约、泽西和加利福尼亚作为单个桶,而不是纽约、新泽西和加利福尼亚作为预期的桶: 我的用例就像这里描述的那样https://www.elastic.co/guide/en/elasticsearch/guide/current/aggregations-and-analysi

  • 问题内容: 我将此数据插入了Elasticsearch: 旁注:重现: 1)下载:http://wmo.co/20160928_es_query/bulk.json 2)执行:卷曲-s -XPOST ‘ 的http://本地主机:9200 /测试/外部/ _bulk漂亮 ‘ -数据二进制@ bulk.json 问题: 获取每个“位置”有多少记录的计数。 解决方案1:存储桶聚合..没有得到期望的结果

  • 我们目前正在开发一个多语言文档CMS。因此,我们有翻译成不同语言的文件。 对于使用Elasticsearch进行搜索,我们目前使用每种语言(德语、英语、法语……)一个索引,其中同一文档的所有翻译共享相同的ID。 当用户搜索特定术语时,我们希望在所有语言中搜索,但只返回不同ID的列表。据我所知,只有使用以下术语聚合才能做到这一点: 这很好,但是作为弹性搜索文档https://www.elastic.