2016-02-15 5 views
0

У меня возникают странные проблемы со сфинксом, которые должны выполнять полный текстовый поиск по одному столбцу в таблице. Он возвращает результаты для некоторых значений, но для некоторых он ничего не возвращает.Sphinx полнотекстовый поиск не работает должным образом

Насколько я могу судить, у меня есть слово «Белград» в Postgres (это источник), а запрос sphinx для «Belg» не даст мне никаких результатов. Но если я запрошу «Белград», он вернет результат.

Он также вернет слова, которые заканчиваются поисковым запросом, но не если поисковый запрос находится посредине слова.

Вот мой сфинкс конф:

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

Смежные вопросы