gpt4 book ai didi

elasticsearch - 更改任何NON-INDEXED字段的映射时,是否需要强制为所有较旧的文档重新编制索引?

转载 作者:行者123 更新时间:2023-12-02 22:26:57 25 4
gpt4 key购买 nike

我在 flex 搜索中具有以下映射

"properties": {
"id": {
"type": "string",
"index": "not_analyzed"
},
"tag": {
"type": "long"
},
"level": {
"type": "integer"
},
"fieldIn": {
"type": "long",
"index": "no"
},
"fieldOut": {
"type": "long",
"index": "no"
},

}
我需要将fieldIn / fieldOut的数据类型更改为String。由于它是NON-INDEXED,我是否需要对所有较旧的文档进行强力索引

最佳答案

您正在更改现有字段的数据类型,这是一个重大更改,Elastic不允许这样做,请按照我创建的示例向您展示ES将在您的情况下抛出的MergeMappingException
创建具有长字段的索引映射:

{
"mappings": {
"mytype": {
"properties": {
"fieldOut": {
"type": "long",
"index": "no"
}
}
}
}
}
包含长值的索引文档
{
"fieldOut" :14897594242
}

{
"fieldOut" :112343434534
}
**尝试使用 put aka update mapping APIfieldOut更改为字符串**
{
"mytype": {
"properties": {
"fieldOut": {
"type": "string", // note changed to string type
"index": "no"
}
}
}
}
这导致以下异常:

{"error": "MergeMappingException[Merge failed with failures {[mapper [fieldOut] of different type, current_type [long],merged_type [string]]}]","status": 400 }

关于elasticsearch - 更改任何NON-INDEXED字段的映射时,是否需要强制为所有较旧的文档重新编制索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62840391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com