使用elasticsearch中的聚合获取完整的术语内容

 徐青乔府_631 发布于 2022-12-18 12:04

我当前的聚合查询:

{
   "size": 0,
   "query": {
      "match_all": {}
   },
   "aggregations": {
      "publication_type": {
         "terms": {
            "field": "publication_type.name"
         }
      }
   }
}

这将返回三个单独的术语:"年度","每周"和"报告".

实际上,这些只有两个术语:"每周报告"和"年度报告".

如何让ElasticSearch(使用1.1)返回完整的单词而不是单独的术语?

1 个回答
  • 默认情况下,如果未提供显式映射,则会分析所有字段.您必须使用新映射重新索引整个数据."名称"字段必须是未分析的,或者您可以添加"关键字"标记生成器.

    例:

    "name" : {"type" : "string", "index" : "not_analyzed"}
    

    如果要保留分析的名称字段,可以进行多字段映射,如下所示.

    "name":{
        "type":"string",
        "fields":{
            "name_raw":{
                "type":"string",
                "index" : "not_analyzed"
             }
         }
     }
    

    现在您可以在聚合查询中使用"publication_type.name_raw".

    2022-12-18 12:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有