更新到ElasticSearch 2后,我无法为不同类型映射ContextSuggester:
PUT /test/foo/_mapping
{
"properties": {
"suggest": {
"type": "completion",
"context": {
"type": {
"type": "category",
"path": "_type",
"default": [
"foo"
]
}
}
}
}
}
PUT /test/bar/_mapping
{
"properties": {
"suggest": {
"type": "completion",
"context": {
"type": {
"type": "category",
"path": "_type",
"default": [
"bar"
]
}
}
}
}
}
将第二种类型的地图放在以下例外中:
Mapper [建议]与其他类型的现有映射冲突:[mapper [suggest]具有不同的[context_mapping]值]
问题是不同类型的默认值不同。从我的观点来看,这应该是预期的方法。我该如何解决这个问题?
ES的测试版本:2.2.1
答案 0 :(得分:1)
您发生了字段冲突。
映射类型用于对字段进行分组,但是每个字段中的字段 映射类型不是彼此独立的。字段:
- 同名
- 在同一索引中
- 采用不同的映射类型
在内部映射到同一字段,并且必须具有相同的映射。如果一个
title
和user
映射类型中都存在blogpost
字段title
个字段在每种类型中必须具有完全相同的映射。唯一的 此规则的例外情况是copy_to
,dynamic
,enabled
,ignore_above
,include_in_all
和properties
参数,可能是。{ 每个字段有不同的设置。
创建单独的索引或重命名其他类型的字段。