2017-04-26 50 views
0

我有一个已经使用映射创建的ES索引。在Elasticsearch中更改映射属性分析器5

我需要更改属性分析器以使用新的分析器。我能够将新分析器添加到索引,但是当试图更新映射属性以使用新分析器时,我得到了一个异常。

我的代码:

var closeIndexResult = client.CloseIndex("index");  

var result = client.Map<MyEntity>(m => m.Properties(prop => 
    prop.Text(t => t.Name(n => n.FirstName).Analyzer("myNewAnalizer")) 
)); 

Result here is not successful... 

我使用ES 5和鸟巢。

有没有办法更新我的当前属性数据来使用新的分析器,而无需重新索引我的所有数据?

回答

1

没有。映射决定你的数据是如何编入索引,这意味着它的任何变化将与映射定义

目前指数不一致虽然可以添加新类型的索引,或添加新的字段类型,你可以不加新的分析仪或改变现有的领域。如果您这样做了,那么已经编入索引的数据将不正确,您的搜索将不再按预期工作。

当您需要更改现有的字段,你应该看看有重新索引API

https://www.elastic.co/guide/en/elasticsearch/client/net-api/master/writing-analyzers.html

重建索引数据