open-webui/backend/open_webui/retrieval/vector
Classic298 75bff4bcd9
feat: native hybrid search for Milvus and Milvus multitenancy (#31645)
With hybrid search on, Milvus installs fetch every chunk of a collection and score BM25 in Python for each search. In both Milvus modes, one collection per knowledge base and multitenancy, Milvus now runs the keyword half itself with its built-in BM25 full-text search and merges it with the vector results, as pgvector already does. Milvus cannot add a BM25 index to an existing collection, so each collection gets a second, text-only collection next to it; existing installs build these once during startup when ENABLE_DB_MIGRATIONS is on, which copies the chunk text (extra storage roughly the size of that text) and leaves the original vectors and indexes untouched. On one standalone Milvus server the copy ran at about 11,000 chunks per second, around 40 minutes for 200 GB with 1536-dimension embeddings. Collections that cannot be copied, and Milvus servers older than 2.5, which have no BM25, keep using the existing hybrid search.

Fixes #26243
2026-09-30 21:03:47 +04:00
..
dbs feat: native hybrid search for Milvus and Milvus multitenancy (#31645) 2026-09-30 21:03:47 +04:00
async_client.py refac 2026-09-06 16:48:30 -04:00
factory.py refac 2026-09-06 17:13:32 -04:00
main.py refac 2026-06-22 16:10:19 +02:00
type.py feat: add support for Valkey vector database (#24769) 2026-06-01 12:20:01 -07:00
utils.py refac 2026-08-25 16:27:17 -04:00