2013-08-26 33 views
1

當我使用獅身人面像時,我發現結果不太準確。關於獅身人面像細分市場規則

例如,在我的mysql表中,有'test1','test2','test.zip','test_zip','test-zip'的記錄當我搜索'test'時,只有'test.zip'和'test-zip'。如果我想得到'test1'的結果,我必須明確搜索'test1'

所以我的問題是,爲什麼獅身人面像不考慮test1作爲'test'和'1',並且如果我想要搜索結果包括一個完整的詞的部分,如何做到這一點?

回答

0

默認的charset_table,設置字母,數字和下劃線爲單詞的字符,其他的都是分隔符。

所以test1將被收錄爲「測試1」,但test-zip將被收錄爲「測試壓縮」

有綴/前綴索引 http://sphinxsearch.com/docs/current.html#conf-min-infix-len 所以無法比擬的一部分的話。 (默認情況下,獅身人面像總是匹配整個單詞)

如果你想要你可以改變charset_table,所以數字不被視爲字符字符串(但不會然後能夠搜索數字!) - 在同一時間可能不想包括下劃線 - 所以test_zip可以被認爲是兩個單詞。

你可以把數字放在blend_chars中 - 這樣它們也可以作爲分隔符。

最後可以使用regexp_filter將單詞和數字拆分爲單獨的單詞。

...所以有四種可能的解決方案,可能值得嘗試每種解決方案,並決定哪種解決方案最適合您。