我已经使用映射创建了ES索引。
我需要更改属性分析器以使用新的分析器。我能够将新的分析器添加到索引中,但是当尝试更新映射属性以使用新的分析器时,我得到了一个例外。
我的代码:
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和Nest。
有没有办法更新我当前的属性数据以使用新的分析器而无需重新索引我的所有数据?
答案 0 :(得分:2)
不。映射决定了数据的索引方式,这意味着对数据的任何更改都会使当前索引与映射定义不一致
虽然您可以向索引添加新类型,或向类型添加新字段,但您无法添加新分析器或对现有字段进行更改。如果您这样做,那么已编入索引的数据将不正确,您的搜索将无法按预期工作。
当您需要更改现有字段时,应该使用Reindex API重新编制数据索引
https://www.elastic.co/guide/en/elasticsearch/client/net-api/master/writing-analyzers.html