如果我在ES
中索引了一个简单的对象{ "name" : "Mark", "age" : 30}
然后将另一个对象添加到同一索引
{ "name" : "Bill", "age" : "forty"}
映射无法更新,新对象不会被索引。根据elasticsearch docs
“一旦添加了一个字段,它的类型就不会改变。例如,如果我们添加了age并且它的值是一个数字,那么它就不能被视为一个字符串。”
有没有办法让这些类似的people
对象在相同的索引下存在(并且可以搜索)?
答案 0 :(得分:3)
我担心你不能这样做。因为一旦声明了字段的类型,就不能在不重新索引整个数据集的情况下更改它。 (当然,重构你的代码)。
对于Apache Solr也是如此。
一个选项可能是引入一个新字段(age_in_string)并使用您想要的值填充它:“30”和“40”。你可以搜索它。