2013-07-26 48 views
0

假設我們有4種產品:獅身人面像搜索,怎麼搭配wordform令牌兩次

「iPhone 3G,iPhone 3GS,iPhone 4,iPhone 4S」

,並使用詞形等它:

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

這隻需要匹配iPhone 3g,而不是3gs時搜索「iPhone 3g」

問題是:如果用戶搜索「iPhone」,我應該找到所有4個版本。 但是!在源文本中的「iPhone」將通過字形來替換爲CRC32 sphinx mechanism 如何解決此問題並在搜索「iPhone」時發現所有4個文件,或者只搜索到一個產品?

回答

0

不確定wordforms(也不是exceptions就此而言)將對此有所幫助。

但我beleive你可以使用regexp_filter

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

喜歡的東西

regexp_filter = iphone\ (\d\w*)\b => iphone ip\1 

這有效地做同樣的變換分析作爲上述詞形等,而且還包括iPhone作爲一個詞,所以它可以自行匹配。

(我能看到的唯一輕微的皺紋,不知道如何使正則表達式替換不區分大小寫 - 所以要麼必須包括所有可能的拼寫,如果手機在搜索字符串中,或​​者有多個過濾器每個組合)

+0

正確地,只是想出瞭如何做不區分大小寫的替換,請參閱http://sphinxsearch.com/forum/view.html?id=11453 – barryhunter