Поиск

Рассказываем что изменилось в нашем поиске за последнее время и собираем фидбек для дальнейших исправлений и улучшений.

Последние несколько месяцев мы плавно и достаточно незаметно улучшаем наш поиск. Если вы пробовали пользоваться им ещё полгода-год назад, то наверное помните, что найти что-то было практически нереально, а в самом топе выдачи могли спокойно попадаться сильно заминусованные посты и не относящиеся к запросу комментарии.

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

Что изменилось

Алгоритм поиска

В первую очередь, мы начали работать над самим алгоритмом. Теперь при сортировке результатов поиска во вкладке «по релевантности» мы учитываем рейтинг материала, дату его публикации, количество комментариев и ещё много других параметров. Если коротко, наверху в выдаче показываются свежие результаты с точными совпадениями и высоким рейтингом, ниже — более давние или с более низким рейтингом. Формулу рассчитывали сами и постепенно продолжаем её улучшать, подкручивая коэффициенты разных параметров.

Сортировка с учётом точности совпадения

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

Работа с опечатками и правки в поиске «по дате»

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

Однако, при сортировке «по дате» из-за работы с опечатками поисковый запрос мог очень сильно «размываться». Из-за этого по нужному запросу выдавались абсолютно не подходящие результаты, например при вводе «губка боб» показывались посты с совпадением по слову «гибкой», а на запрос «3080» показывались комментарии и посты про все остальные видеокарты (1080, 3070, 3060 и т.д.). Подправили работу с опечатками в этой сортировке, что помогло сильно улучшить выдачу «по дате».

Работа с запросами из нескольких слов и очень короткими запросами

Возникали проблемы с запросами, которые состоят из нескольких слов. Чтобы решить проблему подняли приоритет постов, где слова из выдачи находятся близко друг к другу и дополнительно добавили релевантности результатам с прямым совпадением

Была и обратная ситуация, например при вводе условного запроса «лего» топовые результаты приходились на выдачу по «лёг» или «Лема» и так работало для всех коротких запросов. Улучшили выдачу и для таких случаев.

Транслитерация

Добавили в поиск возможность транслитерировать русские буквы в английские и наоборот. Теперь куда проще искать пользователей, имена у которых могут быть написаны как на русском, так и на английском.

Смена раскладки при неправильном вводе

Теперь поиск умеет автоматически менять раскладку в запросе, если пользователь забыл её переключить. Например, при вводе «сниукзгтл» покажутся результаты по запросу «cyberpunk». Вместе с этим поправили смену раскладки для коротких запросов, когда поиск пытался заменить условный «vfx» на «мач».

Заглавные буквы в запросах

Были проблемы с поиском по запросам «nft», «npc» и похожими, например нельзя было найти подсайт по запросу «Улучшаем dtf». Убрали чувствительность к регистру для коротких запросов, теперь в таких случаях поиск отрабатывает корректно.

Дальнейшие планы

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

Поисковые фильтры

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

Страница выдачи

Сейчас страница с результатами поиска по функциональности и дизайну совсем не соответствует новому алгоритму поиска. В первую очередь, планируем переработать сами острова с материалами, чтобы не было такого шума с выделенными совпадениями. Поработаем ещё и над сортировками и новыми вкладками для удобства поиска по разным категориям.

Работа над алгоритмом

Мы успели поработать только над базовыми вещами внутри поисковой системы, поэтому планируем и дальше продолжать постепенно улучшать и настраивать поиск под наши сайты. Например, в ближайших планах поработать с синонимами и словарями, чтобы приводить разные по написанию слова к одному поисковому запросу.

Собираем фидбек

С нами уже связался инициативный читатель, который провёл консультацию по поиску и помог собрать некоторые баги. Теперь мы дополнительно хотим попросить помощи у вас, чтобы собрать наиболее частые проблемы и продолжать дальше улучшать поиск.

Будет здорово, если вы попробуете поискать что-то в обновлённом поиске (лучше не присылать старые скриншоты, они могут быть не актуальны) и пришлете проблемы, с которыми столкнулись. Желательно делать это в таком виде:

  • поисковый запрос, с которым возникли проблемы;
  • скриншот выдачи или ссылка на эту выдачу
  • что хотели найти.

Соберём самые популярные проблемы, сгруппируем их и начнём работать над новыми обновлениями. Спасибо!

9898
111 комментарий

Неужели сложно добавить поиск только по заголовкам как функцию?

61
Ответить

Об этом написано в дальнейших планах: «Поисковые фильтры». Сделаем

2
Ответить

Тоже первое что сделал. Опять льют в уши что делают и меняют что-то.

5
Ответить

лучший

1
Ответить

и достаточно незаметносогласен.

47
Ответить

Брат, не унижай. Лучше укажи, что самое приоритетное.

1
Ответить

Ну, теперь после вложений от Бухманов придётся делать заметнее, ну или хотя бы имитировать бурную деятельность, ведь они читают DTF ¯\_( ͡° ͜ʖ ͡°)_/¯ В общем на этом пара лямов баксов и закончатся, можно расходиться, на допиливание поиска нужно будет ещё пару лямов.

1
Ответить