当前位置:  开发笔记 > 数据库 > 正文

ElasticSearch:我可以查询.raw字段吗?

如何解决《ElasticSearch:我可以查询.raw字段吗?》经验,为你挑选了1个好方法。

我正在尝试查询我的elasticsearch(版本5.0.0)索引中的字段的.raw版本。该字段的名称为“ region”,其映射如下:

{

  "properties": {
    "region": {
      "type": "text", "analyzer": "custom_analyzer", 
      "fields": {
        "raw": { 
              "type":  "keyword", "index": "not_analyzed"
        }
      }
    }
  }
}

请注意,我最初使用分析的版本设置了区域映射,第二步,我通过添加字段的原始版本更新了映射。

据我从文档和此处的类似问题了解,我可以查询原始字段以获取其区域与我的查询完全匹配的文档。但是,通过使用以下查询,不会返回任何结果。

{
   "match": {
        "region.raw": "Northern Ireland"
   }
}

相反,通过使用我的字段的分析版本,结果将按预期返回。

{
   "match": {
        "region": "Northern Ireland"
   }
}

因为我需要使用原始字段,所以我有以下问题:

我为区域字段设置映射的方式是否正确?

我查询的方式正确吗?

非常感谢您的帮助。



1> betto86..:

不,您的查询是正确的。问题是您必须重新索引数据才能使用新的映射版本建立索引。

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有