open-webui/backend/open_webui
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
..
data refac: mv backend files to /open_webui dir 2024-09-04 16:54:48 +02:00
internal fix: non-English text is missed by searches and counted six times against size limits (#31615) 2026-09-30 19:19:29 +04:00
migrations chore: format 2026-08-25 16:53:53 -04:00
models fix: shared chats can't open new files attached together with a file already in the chat (#31650) 2026-09-30 21:03:32 +04:00
retrieval feat: native hybrid search for Milvus and Milvus multitenancy (#31645) 2026-09-30 21:03:47 +04:00
routers fix: send max_completion_tokens for Bedrock-prefixed OpenAI models (#30976) 2026-09-30 20:09:06 +04:00
socket refac: apply the Notes permission to live note editing (#31552) 2026-09-30 19:19:53 +04:00
static refac 2026-09-06 17:27:30 -04:00
storage fix: read S3 files with long non-ASCII names (#30418) 2026-09-23 23:30:55 -04:00
tools refac: calendar event tools use the calendar's access check (#31537) 2026-09-30 19:29:19 +04:00
utils fix: artifact preview closes right after opening when a filter writes the reply (#31652) 2026-09-30 21:02:27 +04:00
__init__.py refactor: use secrets module for generated secret key (#30441) 2026-09-23 23:36:26 -04:00
alembic.ini fix: Alembic CLI commands from failing 2025-08-15 04:17:47 -04:00
config.py feat: add a Tavily search depth setting (#31308) 2026-09-27 23:15:09 +04:00
constants.py fix: SSO login failures show the email/password error (#31629) 2026-09-30 19:07:49 +04:00
env.py perf: use the faster JSON encoder by default (#31616) 2026-09-30 19:42:53 +04:00
events.py refac 2026-08-16 23:21:00 -07:00
functions.py fix: honor bypass_system_prompt on the pipe route (#28739) 2026-08-19 11:08:02 -07:00
main.py fix: ejecting a model ignores AIOHTTP_CLIENT_SESSION_SSL (#31391) 2026-09-30 19:49:59 +04:00
tasks.py refac 2026-09-21 08:59:39 -04:00