Как стать автором
Обновить

Как мы научились предсказывать запрос пользователя и ускорили загрузку поисковой выдачи

Время на прочтение7 мин
Количество просмотров18K
Всего голосов 45: ↑44 и ↓1+43
Комментарии8

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

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

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


А не проще было решить эту проблему, тем что не втыкать этот пробел сразу при выборе подсказки, а добавлять пробел только когда пользователь начал вводить что-то дальше?

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

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

Подсказки тоже нужно показывать для запроса с пробелом, иначе там будет много нерелевантного.
Когда человек ввёл слово, он хочет автоматический пробел.
Спорное утверждение. Скорее человек хочет пробел, когда он собирается вводить что-то дальше, но если он его хочет он его автоматом и ставит. Постановка пробела это самое простое в наборе на клавиатуре, даже те кто набирает двумя пальцами ставят пробел автоматически, не ища его на клавиатуре.
Подсказки тоже нужно показывать для запроса с пробелом, иначе там будет много нерелевантного.
Действительно так, только в том случае, если этот пробел был поставлен пользователем, а не вашим фронтендом автоматически. А пользователь и не собирался больше ничего вводить.
А когда Яндекс сможет найти 1-2 слова при указании «точно как в запросе» а не выводить в виде результата мусор?
Добрый день. Вопрос возможно не по теме, но давайте проверим поисковый запрос «официальный сайт kubernetes» через yandex и google. В Yandex — официальный сайт kubernetes на пятой строчке… Пожалуйста, было бы прекрасно, если доработали выдачу не со всем по коммерческим принципам.
Попробовал. В Гугле — оф сайт на 4 строке, до этого 3 строки рекламной выдачи.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий