sphinx搜索,如何匹配wordform令牌两次

时间:2013-07-26 11:27:41

标签: sphinx

想象一下,我们有4种产品:

“iPhone 3g,iPhone 3gs,iPhone 4,iPhone 4s”

并使用wordforms:

iPhone 3g > ip3
iPhone 3gs > ip3s
iPhone 4 > ip4
iPhone 4s > ip4s

这需要仅匹配iPhone 3g,而不是匹配时搜索“iPhone 3g”

问题是:如果用户搜索“iPhone”,我应该找到所有4个版本。 但!源文本中的“iPhone”将通过字形sphinx机制替换为CRC32 我如何能够解决这个问题并在搜索“iPhone”时找到所有4个产品,或者只搜索一个产品?

1 个答案:

答案 0 :(得分:0)

不确定wordforms(也不是exceptions)对此有所帮助。

但我相信你可以使用regexp_filter

http://sphinxsearch.com/docs/current.html#conf-regexp-filter

这样的东西
regexp_filter = iphone\ (\d\w*)\b => iphone ip\1

这实际上与上述字形有相同的转换,但也包含iphone作为单个字,因此它可以自己匹配。

(我可以看到的唯一轻微的皱纹,不确定如何使常规快递更换不区分大小写 - 所以如果手机在搜索字符串中,或​​者每个都有多个过滤器,则必须包括所有可能的拼写组合)