Кто нибудь работал с поисковым движком сфинкс?

lutskboy
На сайте с 22.11.2013
Offline
173
512

Всем привет

надо иногда искать по сайту треки. использую движок Sphinx

много ума не прикладывал. сделал все по-простому

        require ( "sphinxapi.php" );

        $sphinx = new SphinxClient;
        $sphinx->SetServer('127.0.0.1', '9312');
         
        $sphinx->Open();

        $sphinx->setLimits(0, 10, 100);

        $from = array ( '\\', '(',')','|','-','+' ,'!','@','~','"','&', '/', '^', '$', '=', '<', ',' );

        $phrase = str_replace($from, ' ', $row['title']);
        $phrase = preg_replace('#\s{1,}#u', '|', $phrase);
        $phrase = trim($phrase, '|');

        $sphinx->AddQuery ($phrase, "cdn_index" );

        $results = $sphinx->RunQueries();

ищет норм. мне более мене подходит.

но есть проблемы. например при поиске

Егор Крид & МакSим - Отпускаю

получаю

Егор Крид & МакSим - Отпускаю (Версия 2)

Егор Крид & МакSим - Отпускаю


хотелось бы

Егор Крид & МакSим - Отпускаю

Егор Крид & МакSим - Отпускаю (Версия 2)


или если искать  Канги - 1+1

то выпадает

1. Канги - Эйя

2. Канги - Просто услышь меня (SLOW REMIX BY)

3. Канги - Вали на х

4. Канги - Бросишь Меня (Версия 2)

5. Канги - 1+1


если у кого есть мысли - пишите

D
На сайте с 28.06.2008
Offline
1101
#1
Результаты поиска получаешь в массиве наверное? Попробуй его просто сортирнуть по алфавиту.
lutskboy
На сайте с 22.11.2013
Offline
173
#2
Dram #:
Результаты поиска получаешь в массиве наверное? Попробуй его просто сортирнуть по алфавиту.

да нет. ето уже точно не релевантный поиск получиться.

Aisamiery
На сайте с 12.04.2015
Offline
294
#3

Посмотрите что у вас в 

$phrase

перед вставкой в запрос, там совсем не то что вы вводите, а соответственно и не то получаете

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
lutskboy
На сайте с 22.11.2013
Offline
173
#4
Aisamiery #:
перед вставкой в запрос, там совсем не то что вы вводите, а соответственно и не то получаете

Егор|Крид|МакSим|Отпускаю 

Канги|1|1

вот что. ето и вставляю. и что тут не так?

Aisamiery
На сайте с 12.04.2015
Offline
294
#5
lutskboy #:

Егор|Крид|МакSим|Отпускаю 

Канги|1|1

вот что. ето и вставляю. и что тут не так?

знак | означает или и ваш запрос звучит как: "Найди мне Егор или Крид или МакSим или Отпускаю", а вы хотите чтоб вам он нашел точное вхождение " Егор Крид & МакSим - Отпускаю"

Плюс скорее всего надо весами играться, вообще поиск достаточно большой раздел и сделать его адекватно достаточно сложно

LEOnidUKG
На сайте с 25.11.2006
Offline
1727
#6
Если хотите точности, то надо сначала скормить полностью точное вхождение, а уже потом делать всякие преобразование.
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий