我在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}
答案 0 :(得分:0)
如评论中所述,错误是因为我试图将分析器添加到“关键字”字段中,这是不允许的(出于显而易见的原因,未分析关键字类型)!这是一个示例试用。
此外,现在在对以下设备执行PUT请求后:
<elshost>/<index-name>/_mapping/<doc-type>
带有请求正文:
{
"properties":{
"asset":{
"properties" :{
"biosSerialNumber":{
"type":"keyword",
"fields":{
"suffix":{
"type":"text",
"analyzer":"abc_analyzer"
}
}
}
}
}
}
}
工作。
我知道,为了使此字段对现有的现有数据生效,需要对文档重新编制索引。