从ES 5升级到ES 6后,每次我想在新索引中存储内容时都会收到错误消息。但是所有旧索引都可以正常工作。
错误消息是:
拒绝将映射更新更新为[测试],因为最终映射将具有1种以上的类型:[用户,组]
我使用Elasticsearch 6.3。它可以在生产服务器上使用先前创建的索引正常运行。我尝试删除索引无济于事。
我的测试文件是:
PUT test/group/1
{
"id": "5b29fb9aa3d24b5a2b6b8fcb",
"_mongo_id_": "5b29fb9aa3d24b5a2b6b8fcb"
}
和
PUT test/user/1
{
"id": "5ad4800ca3d24be81d7a6806",
"_mongo_id_": "5ad4800ca3d24be81d7a6806"
}
索引映射似乎还可以:
{
"mapping": {
"group": {
"properties": {
"_mongo_id_": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
答案 0 :(得分:2)
您要为每个type
添加一个以上index
PUT测试/ group
/ 1
PUT测试/ user
/ 1
ES 6不允许这种行为。
已删除每个索引具有多种映射类型的功能 在6.0中。新索引将被限制为单一类型。这是 该计划的第一步是完全删除映射类型。指标 在5.x中创建的版本将继续支持多种映射类型。