elasticsearch,lucene,Indexing,elasticsearch,Lucene" /> elasticsearch,lucene,Indexing,elasticsearch,Lucene" />

Indexing 处理现有字段类型的更改?

Indexing 处理现有字段类型的更改?,indexing,elasticsearch,lucene,Indexing,elasticsearch,Lucene,如果我有一个简单的对象在ES中索引 { "name" : "Mark", "age" : 30} 然后另一个对象被添加到同一个索引中 { "name" : "Bill", "age" : "forty"} 映射将无法更新,新对象将不会被索引。根据elasticsearch文档 添加字段后,其类型不能更改。例如,如果我们添加了年龄,并且其值为数字,则不能将其视为字符串 有没有办法让这些类似的人对象在同一个索引下存在(并且可以搜索)?恐怕你做不到。因为一旦声明了字段的类型,就不能在不重新索引整个

如果我有一个简单的对象在ES中索引

{ "name" : "Mark", "age" : 30}
然后另一个对象被添加到同一个索引中

{ "name" : "Bill", "age" : "forty"}
映射将无法更新,新对象将不会被索引。根据elasticsearch文档

添加字段后,其类型不能更改。例如,如果我们添加了年龄,并且其值为数字,则不能将其视为字符串


有没有办法让这些类似的
对象在同一个索引下存在(并且可以搜索)?

恐怕你做不到。因为一旦声明了字段的类型,就不能在不重新索引整个数据集的情况下对其进行更改。(当然还有重构代码)

Apache Solr也是如此


一个选项是引入一个新字段(字符串中的年龄),并用您想要的值填充它:“30”和“40”。你可以在上面搜索。

恐怕你做不到。因为一旦声明了字段的类型,就不能在不重新索引整个数据集的情况下对其进行更改。(当然还有重构代码)

Apache Solr也是如此


一个选项是引入一个新字段(字符串中的年龄),并用您想要的值填充它:“30”和“40”。你可以在上面搜索。

恐怕你做不到。因为一旦声明了字段的类型,就不能在不重新索引整个数据集的情况下对其进行更改。(当然还有重构代码)

Apache Solr也是如此


一个选项是引入一个新字段(字符串中的年龄),并用您想要的值填充它:“30”和“40”。你可以在上面搜索。

恐怕你做不到。因为一旦声明了字段的类型,就不能在不重新索引整个数据集的情况下对其进行更改。(当然还有重构代码)

Apache Solr也是如此


一个选项是引入一个新字段(字符串中的年龄),并用您想要的值填充它:“30”和“40”。你可以在上面搜索。

我只是用
age
字段在cross中获取我的想法。我实际上想的是允许任意数量的字段更改,根据您的解释,这显然是不可能的。如果我走另一条路,重新编制所有数据的索引,那么以前索引的文档(其中
age
是一个数字)将被忽略,而新文档将
age
作为一个字符串,我这样想对吗?我只是使用
age
字段来获得我的想法。我实际上想的是允许任意数量的字段更改,根据您的解释,这显然是不可能的。如果我走另一条路,重新编制所有数据的索引,那么以前索引的文档(其中
age
是一个数字)将被忽略,而新文档将
age
作为一个字符串,我这样想对吗?我只是使用
age
字段来获得我的想法。我实际上想的是允许任意数量的字段更改,根据您的解释,这显然是不可能的。如果我走另一条路,重新编制所有数据的索引,那么以前索引的文档(其中
age
是一个数字)将被忽略,而新文档将
age
作为一个字符串,我这样想对吗?我只是使用
age
字段来获得我的想法。我实际上想的是允许任意数量的字段更改,根据您的解释,这显然是不可能的。如果我走另一条路,重新编制所有数据的索引,那么以前的索引文档(其中
age
是一个数字)将被忽略,而新文档将
age
作为一个字符串,我这样想对吗?