Кейсы

Стратегии поиска AnyQuery

Стратегия поиска определяет, какой алгоритм будет подбирать товары и по каким критериям будет ранжироваться выдача.
Все стратегии делятся на 2 основные группы:
📍Текстовые. Ищут товары только по полному совпадению запроса и названия.
📍Векторные. К текстовому поиску добавляются векторные модели.
Рассмотрим стратегии каждой группы по отдельности. Начнем с текстовых.

Текстовые стратегии

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

1 стратегия

В первую очередь стоит рассмотреть базовую стратегию. Мы используем ее для новых сайтов, по которым нет трекинговых данных.
В этой стратегии применяется т. н. поиск по триграммам. Суть его в том, что каждое слово в запросе делится на триграммы — фрагменты, по 3 символа. То же самое происходит с расширенным названием товара.
В итоге схожесть слов можно измерить по количеству совпавших триграмм.
Алгоритм ранжирования в данной стратегии поиска учитывает популярность товара по конкретным запросам, совпадение тегов и длину строки.
Также такой поиск хорошо справляется с опечатками, которые пропускает выпрямитель.
Но есть и недостатки. Данная стратегия может давать много мусора (нерелевантных товаров) в выдаче. Результаты поиска по запросу “кипятильник” могут содержать Холодильники и Светильники и пр., поскольку в этих словах есть похожие триграммы

2 стратегия

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

3 стратегия

Если предыдущая стратегия требует вхождения всех триграмм из запроса в расширенное название, то в этой применяется полнотекстовый поиск.
Для того чтобы товар попал в выдачу, необходимо полное вхождение запроса в расширенное название.
Минусом данного подхода является то, что запрос с опечатками может дать пустую выдачу. Поэтому, если запрос состоит из 5 и больше слов, требуется уже не 100%, а 80% его совпадения с расширенным названием.
Ранжирование в такой стратегии происходит с учетом общей популярности товаров на сайте. Данный подход помогает отслеживать тренды, но иногда приводит к тому, что в топ выдачи попадают нерелевантные товары.
Разберем на примере: допустим, пользователь ищет товар по запросу “айфон”. Скорее всего ему нужен смартфон, но на сайте большей популярностью пользуются аксессуары для него. Соответственно, в топ выдачи попадут именно они.
Однако подобные случаи происходят редко. Чаще всего стратегия показывает хорошие результаты.

4 стратегия

Она является скорее экспериментальной и пока не работает так, как ожидается. Тем не менее стоит о ней рассказать.
В этой стратегии товары также попадают в выдачу по полному вхождению. Но при ранжировании более высокий скор получают товары, у которых слова из запроса находятся в названии (обычном, не расширенном).
Кроме того, у данной стратегии есть еще 1 особенность. В отличие от всех прочих, она сравнивает части запроса и названия, до предлогов. Товары, у которых эти фрагменты совпадают, получают более высокий скор.
Пример: пользователь вводит запрос “коробка для конфет”. На сайте есть товары “коробка для конфет” и “конфеты в коробке”. После нормализации эти фразы будут выглядеть так:
📍запрос: “коробк конфет”;
📍товары: “коробк конфет” и “конфет коробк”.
Во всех других стратегиях последовательность слов не учитывается. Оба товара получат одинаковый скор. Но данная модель выведет в топ именно первый товар, потому что у запроса совпали части до предлога “для”.

Векторные стратегии

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

1 стратегия

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

2️ стратегия

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

3 стратегия

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

4 стратегия

В данной стратегии при ранжировании товаров учитывается популярность по конкретному запросу, а также текстовые совпадения запроса с моделями и атрибутами.
Отличительной особенностью данной стратегии является логика альтернатив. Товары в выдаче делятся на 2 группы — оригиналы (скор выше определенного числа) и альтернативы (все остальные).
Оригинальными товарами, как правило, становятся те, которые содержат в названии слова из запроса и их синонимы. А если товар был найден по тегам, он скорее всего будет относиться к альтернативным.
Благодаря этому можно визуально отделять в выдаче более релевантные товары.

Дополнительные стратегии поиска

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

1 стратегия

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

2 стратегия

Во второй доп. стратегии выдача фильтруется предиктором. Это еще 1 элемент поиска, о котором мы не упомянули в прошлый раз.
Когда пользователь делает запрос, предиктор показывает ему товары из релевантных категорий.
Например, по запросу “IPhone” юзер увидит только смартфоны. Чехлы, защитные стекла и другие аксессуары в выдачу не попадут.
И на этом мы завершаем разбор стратегий поиска. В будущем еще расскажем вам об инструментах, с помощью которых мы подбираем оптимальную стратегию для каждого сайта.