Как сделать нормальный поиск

У магазинов, госсайтов, СМИ и даже жирных блогов часто есть поиск. Качество его обычно варьируется от «ужасно» (когда напилили сами) до «на троечку» (когда используют встроенный в CMS).

Проблема в том, что поиск — это сложно. Не, включить механизм полнотекстового поиска в БД или прикрутить Elasticsearch — как раз легко. А вот сделать нормальный релевантный поиск — непросто. Релевантный — это когда на первых местах в выдаче именно то, что имел в виду человек, а не фигня какая-то.

Как обычно бывает со сложными штуками, есть ребята, которые специализируются исключительно на поиске. Вот их и стоит использовать.

Если нет ни времени, ни бюджета, я бы взял Поиск для сайта от Яндекса. Встраивается за полчаса, ищет неплохо, выглядит нормально:

Поиск на этом сайте
Именно через «Яндекс» сделан поиск на моем сайте

Если есть деньги и желание сделать классно — Multisearch (или Algolia для англоязычного контента).

В качестве опенсорсной алтернативы Алголии рекомендуют Typesense. Я с ним не работал, но по описанию выглядит интересно.

А пилить свой поиск — почти всегда плохая идея.

Заметка из телеграм-канала «Интерфейсы без шелухи»