Поиск в электронной коммерции
Покупатели вводят, что им нужно, своими словами. Каталог ищется по смыслу и фильтруется по категории и магазину, в котором они находятся.
Находите ближайшие элементы по смыслу, с фильтром по тегам, в том же движке, который хранит сами элементы.
Размерность и метрика фиксируются для каждого индекса. Параметры HNSW при необходимости можно настроить.
Анимированная демонстрация с настоящими командами HotKV и примерами ответов. Нажмите на любой шаг, чтобы перейти к нему. Команды и ответы остаются на английском, ровно так, как вы вводите и видите их в HotKV.
Семантический поиск, «ещё такое же» и дедупликация сводятся к одному вопросу: какие из сохранённых элементов ближе всего к этому? Чтобы ответить на него, обычно нужна отдельная векторная база данных рядом с основным хранилищем, и каждое обновление товара приходится записывать в обе.
HotKV хранит векторные индексы HNSW в движке. Данные товаров лежат в обычных ключах, векторы индексируются под теми же именами ключей, а теги на этих ключах позволяют поиску оставаться внутри категории или арендатора. Один путь записи, одна система для запуска.
Размерность и метрика фиксируются для каждого индекса. Параметры HNSW при необходимости можно настроить.
VSIM.CREATEINDEX products 3 METRIC COSINEДанные товара - обычный хеш под именем ключа, которое будет использовать индекс.
HSET sku:1 name "Trail runner" price 89Теги на ключе позволяют векторному поиску оставаться внутри категории.
TAG.SET sku:1 shoes runningВектор попадает в индекс под тем же именем ключа.
VSIM.SET products sku:1 0.12 0.80 0.31Текст запроса превращается в эмбеддинг, и ближайшие товары с этим тегом возвращаются вместе с расстояниями.
VSIM.SEARCH products 3 0.10 0.82 0.29 FILTER shoesРезультатами являются имена ключей, поэтому данные товара доступны одним чтением на том же сервере.
HGETALL sku:1Покупатели вводят, что им нужно, своими словами. Каталог ищется по смыслу и фильтруется по категории и магазину, в котором они находятся.
Новые обращения в поддержку или объявления сравниваются с существующими, а почти дубликаты объединяются до того, как их увидит человек.
Эмбеддинги из модели изображений находят визуально похожие фотографии или клипы во всей библиотеке.
Приближённый поиск ближайших соседей, который остаётся быстрым на больших индексах, в среднем O(log N).
VSIM.CREATEINDEXVSIM.SEARCHCosine, L2 и inner product, выбираются для каждого индекса.
METRICОграничивайте поиск ключами, которые несут все заданные теги.
TAG.SETFILTERИндексы хранятся в ваших снимках и перезаписях AOF, как и остальные данные.
VSIM.INFOНет. Создавайте векторы нужной вам моделью эмбеддингов и сохраняйте их через VSIM.SET.
VSIM - это универсальный векторный индекс. Конвейеры RAG строятся на той же идее и добавляют разбиение на фрагменты, метаданные и гибридный ключевой поиск по документам.
Векторный поиск и теги - основные команды и работают на любом тарифе, лицензия не нужна.
HotKV понимает протокол Redis, поэтому вы можете подключить к нему существующий клиент и выполнить те же команды.