【发布时间】:2013-04-26 20:43:21
【问题描述】:
我正在尝试使用 NEST c# 客户端在 ElasticSearch 中进行一个没有重音的查询,我的数据有带有重音的葡萄牙语拉丁词。见下面代码:
var result = client.Search<Book>(s => s
.From(0)
.Size(20)
.Fields(f => f.Title)
.FacetTerm(f => f.OnField(of => of.Genre))
.Query(q => q.QueryString(qs => qs.Query("sao")))
);
此搜索未找到任何内容。我在该索引上的数据包含许多标题,例如:“São Cristóvan”、“São Gonçalo”。
var settings = new IndexSettings();
settings.NumberOfReplicas = 1;
settings.NumberOfShards = 5;
settings.Analysis.Analyzers.Add("snowball", new Nest.SnowballAnalyzer { Language = "Portuguese" });
var idx5 = client.CreateIndex("idx5", settings);
如何使用 ElasticSearch 查询“sao”并找到“são”?
我认为必须创建具有正确属性的索引,但我已经尝试了许多设置。
或在原始模式下:
{ “idx”:{ “设置”:{ “index.analysis.filter.jus_stemmer.name”:“巴西人”, “index.analysis.filter.jus_stop._lang_”:“巴西” } } }如何进行搜索并忽略重音符号?
感谢朋友,
【问题讨论】:
标签: c# lucene elasticsearch nest