2015-11-07 128 views
0

我用SphinxQl,我得到了這樣的查詢設置匹配模式sphinxsearch

SELECT `id`, WEIGHT() as relevance FROM `rt_table` WHERE MATCH('dubai') 

我想設置匹配模式擴展,使由*(通配符)搜索像

SELECT `id`, WEIGHT() as relevance FROM `rt_table` WHERE MATCH('dub*') 

到獲取包含「配音」子字符串的所有數據。

min_word_len = 1 
min_prefix_len = 2 

這是我的配置索引的一部分。 我試過設置min_infix_len = 2但它沒有幫助 問題是我無法進行通配符搜索*。

請幫助別人!

+0

你重新更改配置後的指數?您需要刪除(或TRUNCATE)索引,並重新插入所有數據。 (假設它是RT索引,如果是標準磁盤索引,則需要通過索引器重新創建) – barryhunter

回答

-1

如果使用SphinxQl你只是需要使指數配置

min_word_len = 2 
min_infix_len = 2 
enable_star = 1 
dict  = keywords 

一些變化,您可以使用通配符搜索

+0

該答案具有誤導性,它並不真正正確,根本不需要進行這些更改。不需要更改min_word_len。可以使用帶有min_prefix_len的通配符,如果需要在單詞的兩端使用通配符,則只需要中綴。不需要enable_star = 1 - 無論如何它的細節。並且不需要dict =關鍵字(它的默認設置,中綴/前綴索引不管用dict = crc) – barryhunter