1

当用户键入时,德语重音变音符号“ö”、“ä”和“ü”通常被替换为非重音版本,通常是为了方便他们没有正确的键盘。

对于大多数重音字符,有一个大多数人使用的特定非重音版本。例如,重音的“è”总是被标准的“e”代替。

对于 Umlaut 字符,我们的英国用户和美国用户采用的惯例似乎有所不同。

英国用户将分别替换为“o”、“a”和“u”,而
美国用户将分别替换为“oe”、“ae”和“ue”。

我们的搜索建立在Lucene.Net上,并且与任何搜索框架一样,用于匹配所有重音字符组合的技术是在创建索引和提供搜索条件时替换它们,因此允许匹配用纯粹的非重音字符来完成。

我将如何解析重音字符以支持以下...

一位德国客户输入 - “Götz”<br> 一位英国客户输入 - “Gotz”<br> 一位美国客户输入“Goetz”

鉴于该名称在我们的数据库中以正确的“Götz”形式存在,那么我将如何解析“Götz”以便所有三个用户都可以在索引中找到它?

编辑

我在CodeProject上发现这篇文章正是我想要的。该示例显示了如何将单词的同义词添加到 Lucene 索引中,以便它们与原始单词一样匹配。通过一个小的调整,我能够完全按照我的意愿去做。

4

2 回答 2

2

在索引时将“Götz”转换为“Gotz”和“Goetz”。您可以在第二个术语上使用setPositionIncrement(0)以使短语搜索正常工作。

于 2010-06-25T18:17:33.420 回答
0

我在CodeProject上发现这篇文章正是我想要的。该示例显示了如何将单词的同义词添加到 Lucene 索引中,以便它们与原始单词一样匹配。通过一个小的调整,我能够完全按照我的意愿去做。

于 2011-09-16T12:21:16.937 回答