v1.15.0
Change log
Features 📜
- milestone/25 - Phrase Matching in Full-Text index [Docs]
- milestone/28 - Stop words support in Full-Text index [Docs]
- milestone/29 - New multilingual tokenizer enabled by default [Docs]
- milestone/32 - Snowball Stemmer in Full-Text index, [Docs]
- milestone/30 - Asymmetric binary quantization [Docs]
- milestone/31 - 2-bit and 1.5-bit Binary Quantization encoding [Docs]
- milestone/26 - Maximum Marginal Relevance [Docs]
- #6682 - Verify file system compatibility on process start
Improvements 🪨
- milestone/16 - Migrate away from RocksDB
- milestone/27 - HNSW Healing on optimization
- #6479 - Speedup additional links construction by measuring sub-graph connectivity
- #6563, #6601 - Inference usage now reported in API response
- #6611 - Added major and minor tags for Docker builds
- #6685 - Speed up mutable posting list for upsertions
- #6729 - Reuse quantized vectors during HNSW index building
- #6713 - Optimize Gridstore insertions
- #6750 - Use sequential reads when iterating over Gridstore
- #6757 - Enable pod role based auth for S3 snapshots
- #6725 - Improve read request handling during snapshot recovery
- #6785 - Avoid re-optimizations when loading a mmap-backed immutable text index
- #6778, #6817 - Properly handle inconsistencies in consensus during custom shards creation
- #6779 - Avoid IO during evaluating HNSW index for re-optimization
- #6796 - Use sequential reads for building quantized vectors
- #6794 - Avoid double condition check during filtering
- #6804 - Optimize
has_id
condition - #6844 - Adjust default values for better performance
Bug fixes 🫙
- #6593 - Use ID tracker to estimate internal points range
- #6614 - Improve Gridstore wipe/clear functionality
- #6632 - Fix default replication factor
- #6640 - Fix significant memory usage in Distance Matrix API on high sample size
- #6739 - Fix IDF computation with deleted points
- #6755 - Prevent shards from getting stuck in
Initializing
state - #6759 - Properly propagate inference errors
- #6787 - Add flag to break optimization loop on panic
- #6862 - Avoid blocking async runtime when loading local shard
- #6800 - Fix bug that causes all replicas to die if node restarted during resharding
- #6882 - Fix broken
is_empty
filter on new points
Web-UI 🎨
- https://github.com/qdrant/qdrant-web-ui/releases/tag/v0.1.41 - New "Create Collection" form, Simplify JWT form, other fixes
Deprecations 🚧
-
init_from
parameter of the collection creation API is deprecated and going to be removed in v1.16- Reason:
init_from
creates false expectation of data consistency and reliability of this operation. - Alternative: prefer usage of migration tool or snapshots, read more in the tutorial
- Reason:
-
Payload based filters in JWT going to be removed in v1.16
- Reason: Payload based filters are inconsistent for read/write operations. Many update operations are not implemented due to security risks and complexity. Lack of real-life usage.
- Alternative: prefer collection-based access control.
-
mmap_threshold
parameter of the collection optimizer is deprecated and going to be removed in v1.16- Reason: starting from v1.12, all vector storages exclusively use memory maps, explicit usage of
mmap_threshold
is obsolete - Alternative: control memory cache behaviour of Qdrant storages with
on_disk: true/false
parameter
- Reason: starting from v1.12, all vector storages exclusively use memory maps, explicit usage of
-
Lock API is deprecated and going to be removed in v1.16
- Reason: lack of real-life usage
- Alternative: JWT tokens can be configured to provide read-only access to Qdrant
-
#6760 - Removed
max_optimization_threads
from config