【问题标题】:Handling different non-accented versions of Umlaut characters处理元音变字符的不同非重音版本
【发布时间】:2011-03-08 06:31:57
【问题描述】:

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

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

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

英国用户会将它们分别替换为“o”、“a”和“u”,其中...
美国用户将分别替换为“oe”、“ae”和“ue”。

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

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

德国客户类型 – “Götz”
一位英国客户类型——“Gotz”
一位美国客户键入“Goetz”

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

编辑

我在CodeProject 上找到了这篇文章,这正是我想要的。该示例显示了如何将单词的同义词添加到 Lucene 索引中,以便它们与原始单词一样匹配。稍作调整,我就可以完全按照自己的意愿行事。

【问题讨论】:

    标签: internationalization lucene lucene.net diacritics


    【解决方案1】:

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

    【讨论】:

    • 非常感谢您的建议。它让我走上了正轨,这使我能够在 CodeProject 上找到一篇很好的文章,而这正是我所需要的。见上文
    【解决方案2】:

    我在CodeProject 上找到了这篇文章,这正是我想要的。该示例显示了如何将单词的同义词添加到 Lucene 索引中,以便它们与原始单词一样匹配。稍作调整后,我就能完全按照自己的意愿行事。

    【讨论】:

    • 从我的问题中添加了这个编辑,以便这个问题有一个可接受的答案。
    猜你喜欢
    • 2012-01-04
    • 1970-01-01
    • 2012-11-08
    • 2019-11-05
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多