ИИ и LLMПоиск

Векторный поиск по сходству

Находите ближайшие элементы по смыслу, с фильтром по тегам, в том же движке, который хранит сами элементы.

индексирован
HNSW
средний поиск
O(log N)
метрики расстояния
3
Шаг 1 из 6
Создаём индекс

Размерность и метрика фиксируются для каждого индекса. Параметры HNSW при необходимости можно настроить.

Пример сеансаplaying
# Создаём индекс
hotkv> VSIM.CREATEINDEX products 3 METRIC COSINE
OK

Анимированная демонстрация с настоящими командами HotKV и примерами ответов. Нажмите на любой шаг, чтобы перейти к нему. Команды и ответы остаются на английском, ровно так, как вы вводите и видите их в HotKV.

Проблема

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

Как с этим справляется HotKV

HotKV хранит векторные индексы HNSW в движке. Данные товаров лежат в обычных ключах, векторы индексируются под теми же именами ключей, а теги на этих ключах позволяют поиску оставаться внутри категории или арендатора. Один путь записи, одна система для запуска.

Шаг за шагом

Что происходит, команда за командой

  1. 01

    Создаём индекс

    Размерность и метрика фиксируются для каждого индекса. Параметры HNSW при необходимости можно настроить.

    VSIM.CREATEINDEX products 3 METRIC COSINE
  2. 02

    Сохраняем товар

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

    HSET sku:1 name "Trail runner" price 89
  3. 03

    Добавляем теги

    Теги на ключе позволяют векторному поиску оставаться внутри категории.

    TAG.SET sku:1 shoes running
  4. 04

    Индексируем вектор

    Вектор попадает в индекс под тем же именем ключа.

    VSIM.SET products sku:1 0.12 0.80 0.31
  5. 05

    Поиск по смыслу в пределах тега

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

    VSIM.SEARCH products 3 0.10 0.82 0.29 FILTER shoes
  6. 06

    Получаем то, что показать

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

    HGETALL sku:1
Где это уместно

Реальные сценарии

Поиск в электронной коммерции

Покупатели вводят, что им нужно, своими словами. Каталог ищется по смыслу и фильтруется по категории и магазину, в котором они находятся.

Обнаружение дубликатов

Новые обращения в поддержку или объявления сравниваются с существующими, а почти дубликаты объединяются до того, как их увидит человек.

Сходство изображений и медиа

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

Встроено

Что вы получаете

Индексы HNSW

Приближённый поиск ближайших соседей, который остаётся быстрым на больших индексах, в среднем O(log N).

VSIM.CREATEINDEXVSIM.SEARCH

Три метрики

Cosine, L2 и inner product, выбираются для каждого индекса.

METRIC

Фильтры по тегам

Ограничивайте поиск ключами, которые несут все заданные теги.

TAG.SETFILTER

Сохраняется

Индексы хранятся в ваших снимках и перезаписях AOF, как и остальные данные.

VSIM.INFO

Частые вопросы

Создаёт ли HotKV эмбеддинги?

Нет. Создавайте векторы нужной вам моделью эмбеддингов и сохраняйте их через VSIM.SET.

Чем это отличается от конвейеров RAG?

VSIM - это универсальный векторный индекс. Конвейеры RAG строятся на той же идее и добавляют разбиение на фрагменты, метаданные и гибридный ключевой поиск по документам.

Какие тарифы это включают?

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

Связанные сценарии

Попробуйте на своей нагрузке

HotKV понимает протокол Redis, поэтому вы можете подключить к нему существующий клиент и выполнить те же команды.