【问题标题】:Sphinx with metaphone and wildcard search带有变音位和通配符搜索的 Sphinx
【发布时间】:2015-02-26 17:01:24
【问题描述】:

我们是一个解剖平台,我们使用 sphinx 进行搜索。我们想让我们的搜索更加模糊,并开始使用变音位来纠正拼写错误。即使搜索词是falanges,它也会找到例如phalanges。

这很好,但我们想要更多。我们希望用户可以输入falange 甚至falang,我们仍然可以找到phalanges。任何想法如何做到这一点?

如果您有兴趣,可以查看我们的 sphinx 配置文件 here。

谢谢!

【问题讨论】:

    标签: sphinx thinking-sphinx metaphone


    【解决方案1】:

    您可以同时在索引上启用metaphone 和min_prefix_len。它会有点工作。

    falange* 
    

    然后可能就可以工作了。 (匹配phalanges)

    问题是“剥离”的字母可能会改变单词的“发音”(因为改变发音)

    例如 falange 变为 FLNJ,但 falang acully 变为 FLNK - 因此它们不再是彼此的“子字符串”。 (即指骨变成FLNJS,FLNK* 不会匹配)


    ...老实说,我不知道一个好的解决方案。如果要在变音位之前应用词干提取,您可能会得到更好的结果。 (所以改变单词发音的结尾被删除了。

    唉,斯芬克斯做不到。如果同时启用词干和变音,则只有一个处理器会触发。


    两种可能的解决方案,在 sphinx 之外实现词干提取(或者可能使用 regexp_filter。不确定是否可以纯粹使用正则表达式来实现搬运工词干提取器)

    或修改 sphinx,以便应用所有形态处理器。 (而不仅仅是第一个改变单词的)

    【讨论】:

    • 您好,非常感谢您的长篇回答。我们已经尝试过min_prefix_len,但没有达到预期的效果。它甚至以某种方式禁用了metaphone 的功能。我要玩一下词干分析器,看看我会得到什么样的结果,但正如你所说,我只能启用metaphone 或词干分析器。在 Sphinx 之外使用它甚至修改 Sphinx 看起来都非常棘手。这是如此罕见的用例吗?我不明白为什么没有更好更直接的解决方案。
    • 好吧,也许是搞错了这两者是如何相互作用的。根据我的经验,它非常罕见,只有第二次看到这样的讨论。请看sphinxsearch.com/blog/2014/11/26/… 的最后一句话——未来版本的狮身人面像可能会处理一些家。
    猜你喜欢
    • 1970-01-01
    • 2012-06-16
    • 2014-05-20
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    相关资源
    最近更新 更多