Как реализовать хороший полнотекстовый поиск по сайту?

Сейчас на сайте используется вот такой код код поиска:
OrgModel::whereRaw(
        "MATCH(name_org,description,tags) AGAINST(? IN BOOLEAN MODE)",
        array($string)
    )

Но как-то плохо ищет.
При запросе "магазин №9" - он ищет все магазины, но ни как не магазин №9.
Что делаю не так?
  • Вопрос задан
  • 1236 просмотров
Пригласить эксперта
Ответы на вопрос 4
magalex
@magalex
Архитектор распределённых систем управления
Посмотрите в сторону поисковых машин: например на sphinx
Ответ написан
mahoho
@mahoho
Full stack certified PHP developer.
Попробуйте IN NATURAL LANGUAGE MODE вместо IN BOOLEAN MODE.
Ответ написан
pchemu4ka
@pchemu4ka
Ученье - путь к уменью
Справку по языку запросов почитайте.
В данном случае поиск с кавычками "магазин №9" - даст точное совпадение.
Это можно вшить в запрос, либо написать хинт пользователю.

Но хорошего поиска из базового функционала Вы не получите.

Если нужна простая строка поиска, то наверное самый ленивый вариант - Яндекс.Поиск. По крайней мере, с морфологией все окей там. Единственная проблема - ищет только по проиндексированному.
Ответ написан
Комментировать
@artyvr
Можно попробовать '+магазин +№9'
операторы
про поисковые машины
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы