open-webui/backend/open_webui/retrieval
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
..
loaders fix: backslashes in uploaded HTML files turn into line breaks or break the upload (#31450) 2026-09-27 23:08:14 +04:00
models fix: jina-colbert-v2 reranker fails to load and turns hybrid search off (#31532) 2026-09-30 19:34:20 +04:00
vector feat: native hybrid search for Milvus and Milvus multitenancy (#31645) 2026-09-30 21:03:47 +04:00
web feat: add a Tavily search depth setting (#31308) 2026-09-27 23:15:09 +04:00
external.py refac 2026-07-27 01:59:17 -04:00
utils.py fix: admins can still read and change other users' chats with ENABLE_ADMIN_CHAT_ACCESS off (#31416) 2026-09-28 01:51:59 +04:00