Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

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

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

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

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

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

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

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.