Но настоящая проблема чаще всего в схеме.
Объясняю:
Ты спрашиваешь: “Какие издатели получали роялти-платежи больше $5,000?”
Векторный поиск подтягивает "publisher" и "royalty_ledger".
Но он пропускает "vendor_agreement" — таблицу-мост, которая их связывает.
В итоге LLM пишет валидный SQL, который возвращает пусто.
Вот почему векторы сыпятся на реальных enterprise-схемах.
Они матчят названия.
Они не умеют находить пути для join-ов.
А пути уже описаны во внешних ключах.
Именно эту дыру закрывает QueryWeaver.
Это open-source инструмент от FalkorDB.
QueryWeaver превращает твою схему в граф.
- Таблицы это узлы.
- Внешние ключи это рёбра.
Потом он проходит по пути и автоматически добавляет промежуточные таблицы-мосты.
Спокойно тянет multi-hop цепочки.
Его гоняли на BIRD Benchmark на базе “superhero ” БД, расширенной до 60 таблиц: он разрулил запрос на 5 hop-ов, простроив цепочку через:
superpower → capability_matrix → stakeholder_registry → resource_requisition → budget_allocation
Можно запустить локально:
id="6b6prn"
docker run -p 5000:5000 -it falkordb/queryweaver
исходники тут