sphinx搜索,如何匹配wordform标记两次

sphinx搜索,如何匹配wordform标记两次,sphinx,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,而不是3gs 问题是:如果用户搜索“iPhone”,我应该找到所有4个版本。 但是通过wordforms sphinx机制,源文本中的“iPhone

假设我们有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,而不是3gs

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

不确定
wordforms
(也不知道
例外情况
)是否有助于解决这个问题

但我相信你可以使用
regexp\u过滤器

差不多

regexp_filter = iphone\ (\d\w*)\b => iphone ip\1
这实际上与上面的wordforms具有相同的转换形式,但也将iphone作为一个单词包含在内,因此可以单独匹配


(我能看到的唯一一个小问题是,不确定如何使常规的express替换不区分大小写-因此必须在搜索字符串中包含所有可能的拼写if phone,或者为每个组合使用多个过滤器)

实际上,我刚刚了解了如何进行不区分大小写的替换,请参阅