Commit Graph

750 Commits

Author SHA1 Message Date
Luis Cossío
a2d3270eb8 Custom RRF k parameter (#7065)
* allow custom K parameter for RRF

* generate grpc docs and openapi

* use tagged type approach for parametrized fusions

* use params approach in grpc

* simplify api structure

* upd schema

* nits

* rest: parameterized rrf as query variant

* consistency in doc comments

---------

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2025-08-20 15:05:27 -04:00
Roman Titov
13b05d18a3 Extract CollectionUpdateOperations into separate shard crate (#7054) 2025-08-18 11:48:02 +02:00
Andrey Vasnetsov
c188f5b7c4 Update if (#7006)
* implement condition parameter for upsert operation

* fmt

* update api schema

* implement conditional update for update-vectors op

* rename to update_filter for consistency

* add tests

* explicilty ignore strict mode for conditional updates

* rabbit review fix

* Also assert vector element before, confirm we don't normalize

* Simplify filter creation using new helper

* Rename merge_with_ids to with_point_ids

---------

Co-authored-by: timvisee <tim@visee.me>
Co-authored-by: Tim Visée <tim+github@visee.me>
2025-08-15 15:47:43 +02:00
Andrey Vasnetsov
4a3008e77a Fix bm25 params (#7056)
* make bm25 parameters compatible with default fastembed params

* bm25 params in openapi schema

* fmt

* improve bm25 config deserialization

* more explicit docstring for disabling english
2025-08-14 14:23:29 +02:00
Jojii
290f9e2675 Always load InferenceService (#7050)
* Always load InferenceService

* Add BM25 openapi test

* Add warning to development.yaml config (#7051)
2025-08-13 16:59:42 +02:00
Kyamran
2cd230dda5 Add buffer_size_b to on_disk (#6993)
* Add buffer_size_b to on_disk

* Rename buffer_size_b to buffer_size_bytes
2025-08-07 13:42:59 +02:00
Roman Titov
8be5e1b07f Refactor Collection::restore_shard_snapshot (#6988) 2025-08-06 17:48:04 +02:00
Roman Titov
563194febf Fix test_create_shard_key_read_availability flakiness (#6902) 2025-08-06 16:14:13 +02:00
Arnaud Gourlay
1c74c9f162 Fix Clippy 1.89 again (#6987) 2025-08-06 12:25:40 +02:00
Kumar Shivendu
a4220fdd84 Partial snapshots update recovery ts (#6980)
* Update recovery ts despite empty partial snapshots

* fmt

* apply suggestions with some improvements
2025-08-06 10:48:03 +02:00
Jojii
c2a9183f5f BM25 in the Core (#6891)
* Uncouple tokenizer and TextIndexParams

* Refactor token processing in `TokenizerConfig` (#6912)

* Refactor token processing in TokenizerConfig

* fix max length checking

* [Bm25] Execution implementation (#6939)

* Add Bm25

* Execute BM25 if config available

* cargo format

* Add mocked tests for inference and bm25

* Properly apply InferenceType

* Fix tests

* Review remarks

* Review remarks

* Add overwritten model name fix again

* use enum instead of multiple constants

* ensure handling all fields of InferenceInput in infer_local

---------

Co-authored-by: Luis Cossío <luis.cossio@outlook.com>

* review fixes

* fmt

* spell-check

* deduplicate code

---------

Co-authored-by: Luis Cossío <luis.cossio@qdrant.com>
Co-authored-by: Luis Cossío <luis.cossio@outlook.com>
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2025-08-03 20:43:20 -06:00
Roman Titov
bd34d52578 Cleanup partial snapshot stuff (#6925) 2025-08-01 18:33:32 +02:00
Jojii
4b6806bdc6 Fix config path & Webui Assets in Debian package (#6958)
* Fix debian config location & WebUI assets

* remove config overwrite env variable again
2025-07-31 10:02:17 +02:00
Roman Titov
e8625ba903 Avoid creating partial snapshot if snapshot manifest contains no changes (#6924) 2025-07-29 14:18:57 +02:00
Craig Rueda
398637a535 Allow health check endpoints to bypass authentication (#6931) 2025-07-24 08:38:43 +02:00
Andrey Vasnetsov
d0f333f9dc check for empty collection data (#6910) 2025-07-21 11:22:59 +02:00
Jojii
073d75eabf Minor inference code improvements (#6890) 2025-07-18 08:46:14 +02:00
Tim Visée
a5869beb99 Deprecations for Qdrant 1.15.0 (#6892)
* Deprecate init_from

* Mark memmap_threshold as deprecated

* Mark locks API as deprecated

* Mark RBAC collection access payload filter as deprecated

* Allow deprecations in tests and benchmarks
2025-07-17 16:10:45 +02:00
Luis Cossío
6307510476 [MMR] expose as query variant in rest and grpc (#6797)
* expose mmr in rest and grpc

* fix referenced vectors in mmr queries

* rename to MmrInput in grpc for consistency

* mmr is now an optional parameter of nearest query

* fix score_threshold at local shard

* fix conversion of rest -> collection

* fix and refactor planned query

* nits

* rename `lambda` to `diversity` in interface

* handle score_threshold within mmr calculation

* add openapi test

* fix candidate limit at collection level

* candidate_limit -> candidates_limit

* finish rename to candidates_limit

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2025-07-11 10:39:12 -04:00
Arnaud Gourlay
d90570fb0e Remove fallback eager allocation (#6829) 2025-07-08 19:40:45 +02:00
Kumar Shivendu
8b5b244521 Use peer_id instead of default_peer_id (#6815) 2025-07-08 13:49:12 +05:30
Kumar Shivendu
d123b4fb84 Introduce new config to set default peer ID (#6783)
* Introduce new config to set default peer ID

* Add unit test to check persistence of default peer ID

* add missing update to main.rs

* fix clippy

* Log if using default peer ID

* Use non default peer id

* Move default_peer_id config to cluster config

* update main.rs

* minor var name refactor

* Add validation for default peer ID range

* Fix validation and ensure we dont generate Peer ID 0 randomly

* fmt
2025-07-04 17:35:37 +05:30
Jojii
2a29432983 Fix duplicates in hardware counter metrics (#6803)
* Fix duplicates in hardware counter metrics

* Minor cleanup
2025-07-03 17:04:13 +02:00
Roman Titov
3ff0a34821 Create custom shards in Initializing state instead of Active (#6778) 2025-07-02 17:53:42 +02:00
Andrey Vasnetsov
15a52a460d inference errors (#6759)
* fix error handling in inference

* fmt

* Update src/common/inference/service.rs

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
2025-06-26 11:12:09 +02:00
Roman Titov
4705bff773 Improve read request handling during partial-snapshot recovery (#6725)
* Fix read request handling during partial snapshot recovery

* fixup! Fix read request handling during partial snapshot recovery

Just use a second lock 😔

* fixup! Fix read request handling during partial snapshot recovery

Remove accidental `\`

Co-authored-by: Tim Visée <tim+github@visee.me>

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
2025-06-26 10:35:34 +02:00
Andrey Vasnetsov
c11b96301b remove max indexing threads from config (#6760)
* remove max_optimization_threads from config.yaml

* fmt
2025-06-26 10:26:09 +02:00
xzfc
706571d8b4 Configurable HNSW healing threshold (#6756) 2025-06-25 10:22:18 +00:00
Tim Visée
5e1728dadd Add validation for legacy collection names (#6752)
* Add function for validating legacy collection names

* Apply legacy collection name validation everywhere

* Add more validation to gRPC endpoints

* Adjust tests
2025-06-24 20:02:40 +05:30
Andrey Vasnetsov
8792f51d0c check filesystem on start (#6682)
* check filesystem on start and do some simple mmap test to make sure it is persisted

* fmt

* fix fs type read on non-linux

* feature-flag for fs-check supported platforms + fs check with sub-folder

* fmt

* try larger magic file

* minor fixes

* fix compile on windows

* Add FAT, exFAT and APFS file systems

* Update lib/common/memory/src/checkfs.rs

Co-authored-by: Tim Visée <tim+github@visee.me>

---------

Co-authored-by: timvisee <tim@visee.me>
Co-authored-by: Tim Visée <tim+github@visee.me>
2025-06-16 18:12:59 +02:00
Roman Titov
d0f8a552bd Tweak partial snapshot recover and recover_from response (#6610) 2025-06-12 13:34:04 +02:00
Tim Visée
fd4dba96f2 Expose runtime feature flags in telemetry (#6667)
* Expose runtime feature flags in telemetry

* Update OpenAPI spec
2025-06-11 11:36:01 +02:00
Tim Visée
7149f2f933 Report usage of RocksDB feature flag in telemetry (#6666)
* Report usage of RocksDB feature flag in telemetry

* Update OpenAPI spec
2025-06-11 11:35:36 +02:00
Tim Visée
ee40956214 Remove web feature flag (#6665)
* Remove web feature flag

* Update OpenAPI spec
2025-06-10 18:19:38 +02:00
Roman Titov
0f61cbde34 Unify strict mode checks between REST and gRPC APIs (#6616) 2025-06-05 19:51:40 +02:00
n0x29a
01e5fab950 InferenceUsage in grpc (#6601)
* InferenceUsage in grpc

* Update documentation for InferenceUsage

* Update lib/api/src/grpc/ops.rs

Co-authored-by: Tim Visée <tim+github@visee.me>

* clearer inference usage tracking

* remove unused inference token from delete_points

* review

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
Co-authored-by: generall <andrey@vasnetsov.com>
2025-05-29 21:48:35 +02:00
n0x29a
1dfebb5ea0 Add inference usage tracking to REST API (#6563)
* Add inference usage tracking to REST API

---------

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2025-05-27 11:48:20 +02:00
Roman Titov
4a4c194acd Add partial snapshot recovery and search locks (#6497)
Co-authored-by: generall <andrey@vasnetsov.com>
2025-05-22 14:49:19 +02:00
Andrey Vasnetsov
dc203e11b0 Add setting to limit max number of collections (#6548)
* add setting to limit max number of colelctions

* upd openapi

* Add max_collections to config

---------

Co-authored-by: timvisee <tim@visee.me>
2025-05-20 13:40:56 +02:00
n0x29a
73e7b17ee8 Refactor: move HardwareUsage to the Usage map (#6532)
---------

Co-authored-by: jojii <jojii@gmx.net>
2025-05-14 21:01:49 +02:00
Roman Titov
83cc409ccb Add recover_partial_snapshot_from endpoint (#6468) 2025-05-14 19:21:36 +02:00
Arnaud Gourlay
46f00d5fdb Fix Clippy 1.87 bis (#6518) 2025-05-12 19:54:13 +02:00
Arnaud Gourlay
1e3017b304 Clippy 1.87 autofix (#6516)
* Clippy 1.87 autofix

* fmt
2025-05-12 15:51:34 +02:00
Tim Visée
833f310c3d Buffer all file IO when used as reader or writer (#6513) 2025-05-09 15:48:50 +02:00
Arnaud Gourlay
fc64334e29 Validate IntegerIndexParams (#6494)
* Validate IntegerIndexParams

* focus
2025-05-07 16:35:57 +02:00
Tim Visée
064fc24778 Don't batch queries if having more segments than search threads (#6478)
* Don't batch query if there's more segments than CPUs, limit threads

* Don't batch query if there's more segments than search threads

* Link to pull request

* Add note that we only consider local segments and global search threads
2025-05-07 12:57:48 +02:00
Arnaud Gourlay
9d6a08e3ce Fix missing gRPC query validations (#6485) 2025-05-05 15:58:48 +02:00
Andrey Vasnetsov
d177fd5be2 Update points_internal_api.rs (#6457) 2025-04-30 11:22:28 +02:00
Arnaud Gourlay
21dd277213 Use CollectionResult where possible (#6463) 2025-04-30 09:49:04 +02:00
Andrey Vasnetsov
0ea6bc0b25 Faster wal-delta transfer (#6458)
* implement internal batch-update api

* use batch update in wal-delta

* fix ci
2025-04-29 19:31:50 +02:00