Перейти к содержанию
mihim

Сортировка результатов поиска по релевантности

Рекомендуемые сообщения

Здравствуйте.

Версия движка ocStore 1.5.1.3.

Насколько я понял из кода дефолтный поиск по сайту организован так, что поисквая строка разбивается на отдельные слова, а потом эти слова ищутся в базе с помощью запроса, использующего конструкцию:

WHERE LIKE (%слово1%) OR LIKE (%слово1%) ...

При этом релевантность никак не учитывается, все результаты вываливаются подряд. Товар содержащий все слова строки поиска может оказаться на 2ой странице, а товар с одним совпавшим словом может оказаться в топе.

Подскажите, пожалуйста, как доработать запрос, чтобы товары в результате поиска сортировались от более релевантных к менее?

P.S. Полнотекстовый поиск через MATCH AGAINST пробовал - не понравилось. Лучше, конечно, чем дефолный поиск, но всё-равно не то. Там используются какие-то хитрые алгоритмы с весами и проверкой слов на уникальность. А я хочу, чтобы тупо - чем больше слов совпало, тем выше товар в результатах поиска.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

пс я тут еще делал для одного своего модуля маленькую модификацию стандартного поиска, добавил возможность выбирать логику поиска. По умолчанию стоит ИЛИ, а если поменять ее на И то поиск покажет только те записи у которых встречаются 2 слова.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.