在现有索引的现有字段中添加带有分析器的多字段

时间:2019-09-30 10:53:11

标签: elasticsearch elasticsearch-5

我在Elasticsearch中有一个现有索引(版本:5.1.1),其中有一些文档索引。 索引中的映射(例如硬件)具有一个如下字段:

"biosSerialNumber" :{
     "type":"keyword"
}

我想使用分析器向其添加一个字段,如下所示:     “ biosSerialNumber”:{          “ type”:“关键字”,           “字段”:{               “后缀”:{                    “ type”:“文本”,                    “ analyzer”:“ abc_analyzer”               }            }     }

“ abc_analyzer”分析器已存在于索引设置中。 可以吗我尝试使用PUT命令(在索引中添加新字段)执行此操作。 但这似乎不起作用。

遇到此错误:

  

{       “错误”:{           “根本原因”: [               {                   “ type”:“ mapper_parsing_exception”,                   “ reason”:“ [fields]的映射定义具有不受支持的参数:[analyzer:suffix_match_analyzer]”               }           ],           “ type”:“ mapper_parsing_exception”,           “ reason”:“ [fields]的映射定义具有不受支持的参数:[analyzer:suffix_match_analyzer]”       },       “状态”:400}

1 个答案:

答案 0 :(得分:0)

如评论中所述,错误是因为我试图将分析器添加到“关键字”字段中,这是不允许的(出于显而易见的原因,未分析关键字类型)!这是一个示例试用。

此外,现在在对以下设备执行PUT请求后:

<elshost>/<index-name>/_mapping/<doc-type>

带有请求正文:

{
    "properties":{
        "asset":{
            "properties" :{
            "biosSerialNumber":{
                "type":"keyword",
                "fields":{
                  "suffix":{
                    "type":"text",
                    "analyzer":"abc_analyzer"
                  }
                }
              }
            }
        }
    }
}

工作。

我知道,为了使此字段对现有的现有数据生效,需要对文档重新编制索引。