當我使用獅身人面像時,我發現結果不太準確。關於獅身人面像細分市場規則
例如,在我的mysql表中,有'test1','test2','test.zip','test_zip','test-zip'的記錄當我搜索'test'時,只有'test.zip'和'test-zip'。如果我想得到'test1'的結果,我必須明確搜索'test1'
所以我的問題是,爲什麼獅身人面像不考慮test1作爲'test'和'1',並且如果我想要搜索結果包括一個完整的詞的部分,如何做到這一點?
當我使用獅身人面像時,我發現結果不太準確。關於獅身人面像細分市場規則
例如,在我的mysql表中,有'test1','test2','test.zip','test_zip','test-zip'的記錄當我搜索'test'時,只有'test.zip'和'test-zip'。如果我想得到'test1'的結果,我必須明確搜索'test1'
所以我的問題是,爲什麼獅身人面像不考慮test1作爲'test'和'1',並且如果我想要搜索結果包括一個完整的詞的部分,如何做到這一點?
默認的charset_table,設置字母,數字和下劃線爲單詞的字符,其他的都是分隔符。
所以test1
將被收錄爲「測試1」,但test-zip
將被收錄爲「測試壓縮」
有綴/前綴索引 http://sphinxsearch.com/docs/current.html#conf-min-infix-len 所以無法比擬的一部分的話。 (默認情況下,獅身人面像總是匹配整個單詞)
如果你想要你可以改變charset_table,所以數字不被視爲字符字符串(但不會然後能夠搜索數字!) - 在同一時間可能不想包括下劃線 - 所以test_zip
可以被認爲是兩個單詞。
你可以把數字放在blend_chars中 - 這樣它們也可以作爲分隔符。
最後可以使用regexp_filter將單詞和數字拆分爲單獨的單詞。
...所以有四種可能的解決方案,可能值得嘗試每種解決方案,並決定哪種解決方案最適合您。