Посетители описывают, что им нужно; каталоги описывают, чем вещи являются. Семантический поиск закрывает этот разрыв: «подарок любителю кофе» находит кофемолки и дрипперы, хотя ни одного из этих слов на карточке нет. В AACSearch это один эндпоинт — без кода для эмбеддингов и без векторной математики в вашем приложении.
Заполните векторное поле один раз через эндпоинт эмбеддингов — мультиязычная модель, 1024 измерения — и продолжайте индексировать как обычно.
Отправьте слова посетителя POST-запросом на семантический эндпоинт вместе с именем векторного поля. Платформа построит эмбеддинг запроса и вернёт ближайшие документы.
filter_by ограничивает результаты тем, что действительно можно купить или прочитать; distance_threshold отбрасывает совпадения, которые связаны с запросом лишь отдалённо.
Больше всего выигрывают три вида запросов. Запросы-намерения называют потребность, а не товар. В длинных запросах слишком много слов, чтобы совпало каждое. А межъязыковые запросы — вопрос на русском к каталогу на английском — вообще не имеют общих токенов, но оказываются рядом в пространстве эмбеддингов мультиязычной модели.
Один только смысл не прочитает «до 5000» или «в наличии». Эту половину берёт на себя поиск на естественном языке: настроенная языковая модель превращает «красные беговые кроссовки до 5000» в q, filter_by и sort_by, а ответ показывает разобранный запрос, так что поведение остаётся проверяемым.
Для повседневного поиска по сайту большинство команд используют семантический поиск как векторную сторону гибридного, а не отдельно: точные идентификаторы остаются точными, а описательные запросы перестают возвращать пустую выдачу.
Эмбеддинг запроса строится на сервере той же моделью, что и у документов, — один HTTP-вызов с витрины.
Эндпоинт входит в область поиска, поэтому короткоживущий браузерный ключ может вызывать его, не раскрывая доступ на запись.
distance_threshold возвращает меньше результатов вместо плохих, когда в коллекции нет ничего близкого.
Одна мультиязычная модель строит эмбеддинги документов и запросов, поэтому вопрос на русском находит карточку товара на английском.
Впервые встречаете термин? В глоссарии есть статья «Семантический поиск» — объяснение с азов.
{
"q": "подарок любителю кофе",
"vector_field": "embedding",
"k": 10,
"filter_by": "in_stock:true && price:<5000",
"distance_threshold": 0.4
}
// -> grinders, drippers, beans — no shared keywords requiredУзнать больше
Лучший способ оценить поисковую платформу — не читать ещё одну сравнительную таблицу.
И только после этого принимайте решение.