我已经用映射创建了一个关于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...我用的是Es5和Nest。
是否有一种方法可以更新我当前的属性数据以使用新的分析器而不重新索引我的所有数据?
发布于 2017-04-26 21:19:28
不是的。映射决定如何对数据进行索引,这意味着对数据的任何更改都将使当前索引与映射定义不一致。
虽然可以向索引中添加新类型或向类型添加新字段,但不能添加新的分析器或对现有字段进行更改。如果要这样做,已经编入索引的数据将不正确,您的搜索将不再像预期的那样工作。 当您需要对现有字段进行更改时,应该使用Reindex API重新编制数据索引。
https://www.elastic.co/guide/en/elasticsearch/client/net-api/master/writing-analyzers.html
https://stackoverflow.com/questions/43640576
复制相似问题