На рассмотрении

+12

Поиск Sphinx для сайта

Дмитрий Караченков Обновлен 5 лет назад в категории CMS Общий функционал 11

Предлагаю внедрить доп поиск на основе поискового движка Sphinx.
Когда сидели на старой cms у них даже такое было сделано, очень удобно, поиск настраивается по множеству параметров на вкус и цвет! Почти как в яндексе)

http://sphinxsearch.com/

Комментарии 11

  • Артем Полторанин 5 лет назад

    Лично я очень хорошо знаком со Sphinx (разрабатывал однажды на одном стороннем крупном проекте поиск). Это отличное решение, но оно не для шаред хостинга, как вы понимаете. Это только для VPS, VDS - соответственно это может быть только модулем в маркетплейсе, так как наш массовый пользователь этим воспользоваться не сможет.

    Если кто-то закажет такой модуль в платной поддержке, то мы вероятно опубликуем его в маркетплейсе.

  • Дмитрий Караченков 5 лет назад

    Зачем модуль? У кого есть vps тот пусть пользуется, у кого шаред, тот будет выбирать обычный поиск.
    Просто в админке добавить выбор еще одного варианта sphinx.

    • Артем Полторанин 5 лет назад

      Чтобы в админке появилась такая возможность "просто выбрать sphinx", нужно разработать целый модуль, который будет создавать необходимый индекс в Sphinx, помещать данные в поисковый индекс сфинкса, обновлять его там (при любых изменениях в ИМ), удалять. (я про RT Index Sphinx) Это достаточно нетривиальный модуль. + Еще нужен админ у клиента, который настроит и будет следить за тем, чтобы демон sphinx'а не падал на сервере.

      Нам не интересно его разрабатывать для коробки, так как им сможет воспользоваться очень небольшой процент наших пользователей. Поэтому я и пишу, что такой модуль может появиться только под заказ(извините за честность) или если кто-либо из сторонних разработчиков разработает его и загрузит в наш маркетплейс.

  • Ярослав Пономарев 5 лет назад

    А можно хотя бы внести некоторые улучшения в поиске?
    И в блоке поиска тоже. Например, часто просят, чтобы при поиске выводились категории с поисковой строкой в начале названия и потом парочка категорий в других частях названия. А то пользователи ищут "мел", а им выводятся категории "Сумки для МЕЛочи".
    Пришлось делать изменения в коде.
    И с товарами тоже как то по приоритету разбить, так как по релевантности не выводятся в начале списка товары с символами "Мел" в начале, а все что угодно.

    • Александр Закусило 5 лет назад

      Ярослав Пономарев, У нас есть вывод категорий найденых в строке поиска в стоке. насчет нахождения вначале согласен.

    • Артем Полторанин 5 лет назад

      Такой сортировкой (совпадение ближе к началу) занимается сама БД (MATCH AGAINTS), у нас в отношении товаров это возможно, если включить полнотекстовый режим поиска и выбрать сортировку по релевантности.

      Такого сейчас нет в отношении категорий, так как у поля "Название категории" сейчас нет полнотекстового индекса (его возможно добавить), но поиск по категориям станет тогда "по словам", а не по частичному вхождению - это ложка дегтя в данном режиме будет.

      • Ярослав Пономарев 5 лет назад

        Артем Полторанин, я немного скорректировал searchlineapi.inc.php в блоке поиска. Теперь поиск в категориях идет в следующем порядке: like%, транслитерация like%, %like%, транслитерация %like%. Если на этапе есть вхождение, то далее поиск не идет. Слава богу, "мел" теперь найти можно))
        https://yadi.sk/d/geI1drZ9g7ZIJg
        Я думал, что поиск в блоке поиска делается механизмами модуля Search, но получается, что там свой код и категории ищутся вне зависимости от настроек модуля Search просто по %like%.

        И до кучи в контроллере блока searchline поменял порядок вывода: Категория->Товар->Бренд.
        В принципе, клиент доволен, я тоже) Получается, что претензии были не к модулю поиска товаров, а к реализации поиска у блока строки поиска.

  • Павел С 5 лет назад

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

  • Дмитрий Черпин 5 лет назад

    Может быть сделать модуль через краудфандинг? Артём, можете прикинуть стоимость разработки?

  • Алексей Дехта 5 лет назад

    Я за краудфандинг. Подниму тему...

  • Алексей Дехта 5 лет назад

    Коллеги, никто у себя не решил вопрос с внедрением Sphinx? Может кто-то придумал другое решение, быстрее чем сток Like+?

Написать сообщение