Special Thanks
Thank you @henry201605 for the third consecutive Milvus contribution — this is a precise, targeted fix that completes the BM25 integration story from v10.42.0.
Fixed
[#775] Milvus: missing anns_field in _check_semantic_duplicate and _run_search causes silent failures on BM25-enabled collections
Milvus collections with BM25 full-text search (pymilvus >= 2.5) contain two vector fields (vector dense + sparse_vector BM25-generated). Milvus rejects search() calls without an explicit anns_field when multiple vector fields exist.
Two call sites swallowed the error in except blocks:
- Semantic deduplication completely bypassed — duplicate memories stored silently (
_check_semantic_duplicate, line ~841) - Pure vector-search fallback returned empty results — affected
_has_bm25=False,_HYBRID_SEARCH_AVAILABLE=False, and the hybrid-search error-fallback paths (_run_search, line ~1024)
The hybrid search happy path (which already specified anns_field per AnnSearchRequest) was not affected. Does not manifest with Milvus Lite or pre-BM25 collections.
Fix: Added anns_field="vector" to both call sites. (PR #775, @henry201605)
What's NOT changed
- No new features
- No breaking changes
- Landing page not updated (PATCH release)
- PyPI publishes automatically via "Publish and Test (Tags)" GitHub Actions workflow