2016-02-15 47 views
0

我對獅身人面像有奇怪的問題,應該對錶中的單個列進行全文搜索。它返回一些值的結果,但對於某些值則不返回任何內容。獅身人面像全文搜索不按預期方式工作

據我所知,我在Postgres(源代碼)中輸入了「貝爾格萊德」一詞,查詢「Belg」的獅身人面像將不會給我任何結果。但是,如果我查詢「貝爾格萊德」,它會返回結果。

它還會返回以搜索字詞結尾的單詞,但如果搜索字詞位於單詞的中間,則不會。

這裏是我的獅身人面像的conf:

source src_cities 
{ 
    type   = pgsql 

    sql_host  = #### 
    sql_user  = #### 
    sql_pass  = #### 
    sql_db  = #### 
    sql_port  = 5432 

    sql_query_pre = SET CLIENT_ENCODING TO 'UTF8'; 
    sql_query_pre = SET NAMES 'UTF8'; 

    sql_query  = \ 
    SELECT id,name \ 
    FROM cities 

    sql_field_string = name 

    sql_query_info  = SELECT * FROM cities WHERE id=$id 
} 
index cities 
{ 
    source   = src_cities 
    path    = /var/lib/sphinxsearch/data/cities 
    docinfo   = extern 
    charset_type  = sbcs 
    min_word_len  = 1 

} 

而這裏的如何,我試圖從Laravel獲取數據:

$results = $sphinx->search($name, 'cities') 
      ->setMatchMode(\Sphinx\SphinxClient::SPH_MATCH_EXTENDED) 
      ->query(); 

回答

1

此主題相關:

http://sphinxsearch.com/forum/view.html?id=3795

# min-prefix lenght. optional. default is 0 (do not index prefixes) 
    # 
    min_prefix_len = 3 
+0

設置min_infix_len修復了這個,謝謝。你也許知道我可以像這樣搜索結果,但包括另一個數字列進行排序? – Dexa

+1

我其實管理了,謝謝。 – Dexa