我已经在c#(NEST)中将PoCo中的字段类型的字符串类型从字符串修改为int(仅用于测试)。第一件事是它没有反映出类型的映射。它仍在显示字符串
"properties": {
"AddressNumber": {
"type": "string"
},
"City": {
"type": "string"
},
"CompanyName": {
"type": "string"
},
"ContactName": {
"type": "string"
},
但确实允许我保存CompanyName的整数值。奇怪的是,数据显示为int。
ES中的上一份文件
{ "CompanyName": "1231",
"ContactName": "sdfsdf",
"City": "Schenectady"
}
将字段类型更改为int
后,上次保存的文档 { "CompanyName": 1231,
"ContactName": "shivang",
"City": "Leeds"
}
使用string和int值搜索正常,如果我们尝试在其中保存一些字符串,则显示CompanyName为0(很好)。但为什么它没有正确显示映射?
注意:我没有重新创建索引。它是现有的索引
答案 0 :(得分:1)
Changing Mapping With Zero Downtime将彻底解释这一点,正如@Rob在此处和this SO问题所指出的那样。
我强烈建议您阅读default mapping,dynamic mapping,尤其是dynamic templates。我发现这确实有助于我保持代码清除属性或映射代码,让我的poco是poco的!