我正在使用弹性搜索构建一个项目,用于索引和查询大数据。 在我的字段上创建的自动映射器为double,我想将其更改为int,我当然可以手动执行但我一直尝试使用put命令对索引进行操作
我尝试的是:
PUT myindex/_mapping/model
{
"model" : {
"properties" : {
"programnumber" : {"type" : "integer", "store" : "yes"}
}
}
}
}
谢谢
答案 0 :(得分:1)
创建后,字段cannot be changed anymore(除了一些明显的例外)
如果您的programnumber
字段是作为double创建的,那很可能是因为您编入索引的第一个文档中该字段的值是浮点值。
答案 1 :(得分:0)
如今,ElasticSearch允许您解决此问题。
只需更改您的映射,然后重新索引。
您可以从类似问题的答案中读到:Change field type from string to integer? and how to re-index?
...您必须重新编制索引。您可以使用Logstash(过去曾发布过示例配置)或诸如es-reindex之类的第三方工具来做到这一点。重新索引为新名称(例如,带有下划线的原始名称)后,您可以删除原始索引,并创建一个名称类似于原始索引的别名,该别名指向新索引。从而一切将像以前一样工作。
有趣的链接:Reindex API