open-webui/backend/open_webui/retrieval/vector/dbs
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
..
chroma.py fix: page Chroma get() so hybrid search works on collections over 32k chunks (#30368) 2026-09-22 14:48:45 -04:00
elasticsearch.py refac 2026-08-25 16:27:17 -04:00
mariadb_vector.py refac 2026-07-31 17:41:14 -04:00
milvus.py feat: native hybrid search for Milvus and Milvus multitenancy (#31645) 2026-09-30 21:03:47 +04:00
milvus_multitenancy.py feat: native hybrid search for Milvus and Milvus multitenancy (#31645) 2026-09-30 21:03:47 +04:00
opengauss.py fix: release the openGauss connection when a read returns no rows (#30144) 2026-09-18 19:31:01 -04:00
opensearch.py refac 2026-08-25 16:27:17 -04:00
oracle23ai.py fix: apply the shared metadata size cap to the last four vector DB backends (#29502) 2026-09-04 11:42:20 -04:00
pgvector.py fix: pgvector reads leak their connection and lose most of their neighbours (#30142) 2026-09-18 19:31:49 -04:00
pinecone.py refac 2026-08-25 16:27:17 -04:00
qdrant.py fix: file uploads and hybrid search fail on Qdrant with strict mode enabled (#31461) 2026-09-27 22:58:42 +04:00
qdrant_multitenancy.py fix: file uploads and hybrid search fail on Qdrant with strict mode enabled (#31461) 2026-09-27 22:58:42 +04:00
s3vector.py refac 2026-08-25 16:27:17 -04:00
valkey.py perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
weaviate.py fix: exact matches score as the worst result on Weaviate (#31531) 2026-09-30 19:29:59 +04:00