Поиск и сортировка с использованием Sphinx PHP Client - PullRequest
0 голосов
/ 05 января 2012

У меня есть таблица песен в БД, в которой есть столбцы TRACK, ALBUM, ARTIST. Я создал индекс сфинкса для этой таблицы.

Одна из строк в таблице содержит:

TRACK = Мы нашли любовь

ARTIST = Рианна

У меня есть следующий код PHP:

$extended_query = $_GET['keyword'];
$cl->SetMatchMode ( SPH_MATCH_EXTENDED2 );
$cl->SetRankingMode ( SPH_RANK_BM25 );
$cl->SetFieldWeights ( array ( "ARTIST" => 100,"TRACK"=>100) );
$cl->SetSortMode ( SPH_SORT_EXTENDED  , "@weight DESC" );
$cl->SetLimits(0,50);
$result = $cl->Query( $extended_query, 'searchtable' );

Когда я пытался найти «Мы нашли любовь», он правильно возвращает результат.

Однако, когда я пытался найти «We Found Love Rihanna» (комбинация исполнителя и трека), в результате он не показывался. Есть ли причина почему?

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

Спасибо за помощь!

PS: Я пытался найти «Мы | Найдены | Любовь | Рианна», но также безрезультатно.

...