想象一下,我们有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个产品,或者只搜索一个产品?
答案 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作为单个字,因此它可以自己匹配。
(我可以看到的唯一轻微的皱纹,不确定如何使常规快递更换不区分大小写 - 所以如果手机在搜索字符串中,或者每个都有多个过滤器,则必须包括所有可能的拼写组合)