Поиск
Рассказываем что изменилось в нашем поиске за последнее время и собираем фидбек для дальнейших исправлений и улучшений.
Последние несколько месяцев мы плавно и достаточно незаметно улучшаем наш поиск. Если вы пробовали пользоваться им ещё полгода-год назад, то наверное помните, что найти что-то было практически нереально, а в самом топе выдачи могли спокойно попадаться сильно заминусованные посты и не относящиеся к запросу комментарии.
По этой причине работы по поиску мы начали с самых базовых вещей, которые помогли постепенно довести его до состояния хоть не идеального, но хотя бы работающего инструмента. В этом посте хотелось бы рассказать что мы уже сделали, какие у нас дальнейшие планы ну и, конечно же, попросить у вас помощи с тестированием.
Что изменилось
Алгоритм поиска
В первую очередь, мы начали работать над самим алгоритмом. Теперь при сортировке результатов поиска во вкладке «по релевантности» мы учитываем рейтинг материала, дату его публикации, количество комментариев и ещё много других параметров. Если коротко, наверху в выдаче показываются свежие результаты с точными совпадениями и высоким рейтингом, ниже — более давние или с более низким рейтингом. Формулу рассчитывали сами и постепенно продолжаем её улучшать, подкручивая коэффициенты разных параметров.
Сортировка с учётом точности совпадения
В новом поиске на самый верх выдачи попадают самые точные совпадения с введенным поисковым запросом. После них уже идут совпадения, в которых может быть изменен род или склонение. На самом последнем месте оказываются неточные совпадения с опечатками или совпадения только по части запроса. Естественно, вся эта выдача дополнительно сортируется нашим алгоритмом.
Работа с опечатками и правки в поиске «по дате»
Поиск научился работать с опечатками. При наличии одной или нескольких ошибок в запросе он умеет показывать правильную выдачу (но не всегда). Для разной длины запроса применяются свои правила, например в длинных запросах допускается несколько ошибок, а в самых коротких запросах ошибки совсем не допускаются.
Однако, при сортировке «по дате» из-за работы с опечатками поисковый запрос мог очень сильно «размываться». Из-за этого по нужному запросу выдавались абсолютно не подходящие результаты, например при вводе «губка боб» показывались посты с совпадением по слову «гибкой», а на запрос «3080» показывались комментарии и посты про все остальные видеокарты (1080, 3070, 3060 и т.д.). Подправили работу с опечатками в этой сортировке, что помогло сильно улучшить выдачу «по дате».
Работа с запросами из нескольких слов и очень короткими запросами
Возникали проблемы с запросами, которые состоят из нескольких слов. Чтобы решить проблему подняли приоритет постов, где слова из выдачи находятся близко друг к другу и дополнительно добавили релевантности результатам с прямым совпадением
Была и обратная ситуация, например при вводе условного запроса «лего» топовые результаты приходились на выдачу по «лёг» или «Лема» и так работало для всех коротких запросов. Улучшили выдачу и для таких случаев.
Транслитерация
Добавили в поиск возможность транслитерировать русские буквы в английские и наоборот. Теперь куда проще искать пользователей, имена у которых могут быть написаны как на русском, так и на английском.
Смена раскладки при неправильном вводе
Теперь поиск умеет автоматически менять раскладку в запросе, если пользователь забыл её переключить. Например, при вводе «сниукзгтл» покажутся результаты по запросу «cyberpunk». Вместе с этим поправили смену раскладки для коротких запросов, когда поиск пытался заменить условный «vfx» на «мач».
Заглавные буквы в запросах
Были проблемы с поиском по запросам «nft», «npc» и похожими, например нельзя было найти подсайт по запросу «Улучшаем dtf». Убрали чувствительность к регистру для коротких запросов, теперь в таких случаях поиск отрабатывает корректно.
Дальнейшие планы
Все работы по поиску мы делали только внутри поискового движка и пока что совсем не занимались тем, как выглядит поиск у нас на сайте. Вот что есть в планах:
Поисковые фильтры
На данный момент нет возможности как-то настраивать поисковый запрос. Хотим добавить поиск по конкретным подсайтам и авторам, возможность искать только по редакционным материалам, настраивать диапазон рейтинга и дат публикации для поиска постов и комментариев, ну и другие полезные надстройки над нашим поиском.
Страница выдачи
Сейчас страница с результатами поиска по функциональности и дизайну совсем не соответствует новому алгоритму поиска. В первую очередь, планируем переработать сами острова с материалами, чтобы не было такого шума с выделенными совпадениями. Поработаем ещё и над сортировками и новыми вкладками для удобства поиска по разным категориям.
Работа над алгоритмом
Мы успели поработать только над базовыми вещами внутри поисковой системы, поэтому планируем и дальше продолжать постепенно улучшать и настраивать поиск под наши сайты. Например, в ближайших планах поработать с синонимами и словарями, чтобы приводить разные по написанию слова к одному поисковому запросу.
Собираем фидбек
С нами уже связался инициативный читатель, который провёл консультацию по поиску и помог собрать некоторые баги. Теперь мы дополнительно хотим попросить помощи у вас, чтобы собрать наиболее частые проблемы и продолжать дальше улучшать поиск.
Будет здорово, если вы попробуете поискать что-то в обновлённом поиске (лучше не присылать старые скриншоты, они могут быть не актуальны) и пришлете проблемы, с которыми столкнулись. Желательно делать это в таком виде:
- поисковый запрос, с которым возникли проблемы;
- скриншот выдачи или ссылка на эту выдачу
- что хотели найти.
Соберём самые популярные проблемы, сгруппируем их и начнём работать над новыми обновлениями. Спасибо!