【发布时间】:2018-05-17 09:11:12
【问题描述】:
我的收藏中有几个字段包含重音字符,这些词的来源语言非常多样:捷克语、德语、西班牙语、芬兰语、匈牙利语等。 我注意到在搜索时,例如“Andalucía”(注意重音 i),查询出现空 - 但是,搜索“Andaluc*”会返回我正在寻找的内容。 我在 RavenDB 文档中找到了this,并想询问将字段索引方法从 default 更改为 exact 是否可以解决我的问题。
谢谢!
编辑:RavenDB 似乎在 AND 之后删除字母,包括搜索中的重音字符。在 cmd 窗口中,我可以看到查询(我从 RavenDB Studio 以NAME_1:Andalucía 输入)以(...)/ByName?term=Andaluc&field=NAME_1&max(...) 出现
当我导航到索引的术语时,我可以看到“andalucía”(小写!!)。索引定义只是一个“select new { NAME_1 = area.NAME_1 }”。忘了说我还在使用 RavenDB 3.5。
索引定义:
Map = areas => from area in areas
select new
{
NAME_0 = area.NAME_0,
NAME_1 = area.NAME_1
};
Indexes.Add(x => x.NAME_1, FieldIndexing.Analyzed);
//Analyzers.Add(x => x.NAME_1, typeof(StandardAnalyzer).FullName);
注释掉的行不起作用,因为类型 StandardAnalyzer 无法在我的 VS2017 项目中解析。我目前正在研究如何获取 dll 或正确的 using 语句。
在引号中查询 Andalucía 会导致“正确查询”被发送到 Raven:(...)/ByName?term=Andalucía&field=NAME_1&max=5(...) - 但不会产生任何结果。
进一步编辑:找到 Lucene dll,将其包含在项目中,使用 StandardAnalyzer 作为分析器 - 结果相同(未找到结果)。
在 RavenDB 4 上,这似乎已修复。嗯
【问题讨论】:
-
索引的术语对我来说也是小写的,但对我来说它有效..如果您添加查询和索引定义可能会很有用