0

出于性能原因,我最近选择了 sphinx 而不是 postgres http://www.postgresql.org/docs/8.4/static/pgtrgm.html中的相似函数。

但是,开箱即用的 sphinx 的行为与相似度函数不同。

并且似乎只匹配完整的单词(在我的情况下是地址),

关键字如:“Main South Rd”、“Field St”、“Olive Av”,没有给出结果

我曾尝试启用 SPH_MATCH_ANY,但通过 postgres 相似性,我得到了更好的结果。

4

1 回答 1

1

要处理缩写,您也许可以使用单词形式。因此,短格式匹配长格式。

还有 http://sphinxsearch.googlecode.com/svn/trunk/misc/suggest/ 这是一个使用三元组来获得模糊匹配的例子。

如果您需要更多帮助,建议给出一个更完整的示例,关于效果不佳的查询,以及您匹配的内容。

(我猜你只是使用similarity() 函数,通过循环遍历所有文档,并获取最佳匹配。它的蛮力,检查每个文档。Sphinx 正在使用索引(这就是它快速的原因)但并非所有查询都是适合这种类型的设置)

于 2012-05-21T13:50:49.423 回答