SpiderPigAndCat
@SpiderPigAndCat
занимаюсь салообразованием

Как сделать на сайте интеллектуальный поиск?

Сайт на opencart 2.3. Там несколько тысяч товаров. Клиенты хотят поиск "шоб как у гугла" вводишь слова с ошибкой, вводишь бренд +товар (apple mac), вводишь часть артикула, вводишь названия брендов\товаров с пробелами в ненужных местах (macpro, mac pro, imacproversion9000), вводишь макбук и чтоб поиск корректно все это обработал и выдал нужный товар.
Как это сделать? Я читал что нужно искать по файлу xml со всеми товарами, но не понимаю как. Нашел только поиск от яндекса, но там надо чтоб цены были в рублях, а у меня в гривне.
ЗЫ
Я допиливал стандартный поиск:
1) вырезаем из поисковой фразы все лишние символы типа \ ) ( " и тд и ищем. ничего не нашли идем дальше
2) разбиваем очищенную поисковую фразу на слова и ищем по каждому слову ничего не нашли идем дальше
3) проверка на кирилицу если написано на кирилице транслитерация символов в латиницу ничего не нашли идем дальше
4) разбиваем очищенную поисковую фразу в нужнов словаре на слова и ищем по каждому слову ничего не нашли идем дальше
5) делим поисковую фразу на кучу слов по 4 символа и ищем по каждому

это бред конечно, но уже не знаю как улучшить поиск самостоятельно.
  • Вопрос задан
  • 470 просмотров
Пригласить эксперта
Ответы на вопрос 4
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Такой поиск делается через поиск самой длинной совпадающей "цепочки" в "дереве" связанных слов.
Слова - тоже самое, но только это "дерево" букв.
Ошибки - "глубина" вложенности просмотра всех связей текущего "узла" в "дереве" во время поиска.

Всё крайне просто.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
нормас подошел

но задачка не совсем простая
чудесов нет - вводимая фраза мапится на строгую выверенную (типа нормированную) (или сразу на результаты) и выдается

вот как смапить - куча вариантов, возьми книженцию и рядом там еще есть (для сложных задач и все такое)

проще всего - отпарсить умного конкурента (или Гугл, но его сложнее, хотя...) и сделать маппинг в авторежиме

или там с выдачей яндекса заморочиться, в общем, do it
Ответ написан
@k2lhu
Предлагаю посмотреть на elasticsearch, индексируете все товары и можете получать результаты даже с неправильно введенными фразами используя нечеткий поиск
Ответ написан
opium
@opium
Просто люблю качественно работать
Поставьте сфинкс или эластик мерч, плагина под это дело есть в опенкарте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы