У меня возникают странные проблемы со сфинксом, которые должны выполнять полный текстовый поиск по одному столбцу в таблице. Он возвращает результаты для некоторых значений, но для некоторых он ничего не возвращает.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();
Установка min_infix_len исправлена, спасибо. Возможно, вы знаете, что я могу найти результаты, подобные этому, но включить другой столбец для сортировки? – Dexa
Я действительно справился, спасибо. – Dexa