Сравнение с Векторные и графовые СУБД (pgvector, Neo4j, Pinecone)
Память по смыслу без отдельной базы: рекурсия и графы в Интеграме
Векторные и графовые СУБД (pgvector, Neo4j, Pinecone)
Поиск по смыслу и обход связей обычно требуют отдельной векторной или графовой базы данных. Интеграм решает обе задачи внутри рабочей таблицы: вектор хранится как текст, близость считает штатный отчёт, а обход графа соседей выполняется одним рекурсивным запросом WITH RECURSIVE. Для миллионов векторов и миллисекундных задержек выделенная векторная СУБД быстрее, но требует отдельной инфраструктуры и бюджета.
Когда приложению нужна «память по смыслу» (найти похожее, даже если слова не совпали дословно) или обход сетевых связей («похоже на этот заказ», «такой вопрос уже задавали»), стандартный ответ — поднять отдельную систему: векторную базу (Pinecone, Qdrant, FAISS) или графовую (Neo4j). Это отдельный сервис рядом с бизнес-данными: его нужно разворачивать, оплачивать, синхронизировать с основной базой и обслуживать. Для небольших и средних объёмов такая инфраструктура часто избыточна.
Контекст
Команда хочет добавить в рабочее приложение поиск по смыслу и подсказки «похожие записи». Типичные сложности при заведении отдельной векторной или графовой базы:
- появляется второй сервис, который нужно разворачивать, обновлять и оплачивать;
- данные приходится дублировать и синхронизировать между основной базой и векторной;
- чистые векторные СУБД находят похожее, но не умеют обходить связи вглубь (граф);
- обход графа из кода приложения — это десятки сетевых обращений на один запрос, то есть секунды задержки.