Tim Visée
160becbb46
Remove vectors_count ( #7244 )
...
* Remove deprecated vectors count from collection info
* Remove vectors count from shard info
* Update OpenAPI and gRPC spec
* Remove vectors count from example
2025-09-12 14:40:24 +02:00
Luis Cossío
9973e41b0a
add consistency param for count api in openapi ( #6905 )
...
* add consistency param to openapi spec for count api
* reorder query params: collection_name -> consistency -> timeout
2025-08-14 10:38:53 -04:00
Tim Visée
c8beb36268
Fix inconsistent OpenAPI spec ( #6859 )
...
* Update OpenAPI spec
* Remove newline
2025-07-14 11:46:55 +02:00
George
f4ced2567f
deprecate old search api endpoints ( #5907 )
2025-01-30 13:35:45 +01:00
Kartik Gupta
f5e47707f7
Remapping tags to api docs ( #5104 )
...
* Remapping tags to
* Declare new tags, v1.12 remapping
* Declare Indexes, Aliases
---------
Co-authored-by: Anush <anushshetty90@gmail.com >
2024-10-24 20:35:18 +02:00
Andrey Vasnetsov
68179bf697
make operationId consistent with grpc ( #5201 )
2024-10-07 22:02:22 +02:00
Tim Visée
070f152877
Remove max_segment_number from quick start and OpenAPI definition ( #5058 )
2024-09-10 11:35:53 +02:00
Arnaud Gourlay
ee6e760b1c
Distance matrix docs improvements ( #5023 )
...
* docs improvements
* improve openapi description
2024-09-06 08:24:46 +02:00
Luis Cossío
07be0a1aed
Facets: add consistency param to openapi ( #4969 )
...
* add consistency param to openapi
* interpret uuid map index as facet index too
2024-08-28 09:18:02 -04:00
Luis Cossío
045fb7038c
Facets in REST ( #4848 )
...
* rename to FacetRequestInternal
* add rest endpoint
* fix correctness by fetching the whole list of values
* fix mmap map index variant
Also removes test for sorted output, for now
* add ytt spec
* fix clippy
* use hashmap inside of local shard
* rename operation to `facet`, add access test
* whitelist endpoint
* change api
* make limit optional
2024-08-19 16:03:26 -04:00
Arnaud Gourlay
caeb262e86
Search distance matrix REST API ( #4884 )
...
* Search distance matrix REST API
* apply Validator upgrade
* min sample size is 2 thanks Luis
* review: rethink pair view
* remove rows-based similarity matrix output
* fmt
* upd openapi
* we have only 70 apis now
---------
Co-authored-by: generall <andrey@vasnetsov.com >
2024-08-19 00:21:55 +02:00
Arnaud Gourlay
a9978c6999
Add missing timeout query params in openapi specs ( #4850 )
...
* Add missing timeout query params in openapi specs
* get_points as well
2024-08-08 14:31:49 +02:00
Arnaud Gourlay
bb9f9f8e94
universal-query: Grouping REST API ( #4616 )
...
* universal-query: Grouping REST API
* add API docs
* bump API count
* add jwt validation test
* fix API
* better test
* stay on CoreSearchRequest where possible
* use existing scoring helper
* push broken test to illustrate issue
* track best score per point_id to enable sort on payload
* add example test for query discover with groups
* track ScoredPoint instead of PointId
* add default values for smoother ux
2024-07-10 08:26:57 +02:00
Luis Cossío
d107aee6b7
Add layer of response structure specific to query ( #4498 )
2024-06-19 08:31:39 +02:00
Luis Cossío
f6d6b7a713
universal-query: Expose batch query in REST ( #4497 )
...
Exposes the ability to query in batch
2024-06-18 18:47:08 -04:00
Luis Cossío
6d0d542356
universal-query: Expose REST endpoint ( #4380 )
...
Exposes `POST collections/{collection_name}/points/query` for single queries
2024-06-10 11:55:46 -04:00
Luis Cossío
29c914de71
Issues API: Interface: get issues ( #3502 )
...
* add `/issues` endpoint
* generate openapi spec
* fmt
* fix read only patterns test
* list under beta tag, update tags descriptions.
2024-02-16 11:54:14 -03:00
ding-young
62428e61e9
Support Min should clause ( #3331 ) ( #3466 )
...
* Add min_should field in Filter struct
* min_should clause checks whether at least given number (min_count) of conditions are met
* modify test cases due to change in Filter struct (set min_should: None)
* add simple condition check unit test
* docs, cardinality estimation, grpc not implemented yet
* Add min_should field in Filter struct
* min_should clause checks whether at least given number (min_count) of conditions are met
* modify test cases due to change in Filter struct (set min_should: None)
* add simple condition check unit test
* Impl min_should clause in REST API
* perform cardinality estimation by estimating cardinalities of intersection and combining as union
* add openapi spec with docs update
* add integration test
* Impl min_should clause in gRPC
* Cargo fmt & clippy
* Fix minor comments
* add equivalence test between min_should and must
* shortcut at min_count matches
* use `Filter::new_*` whenever possible
* Add missing min_should field
* Fix gRPC field ordering & remove deny_unknown_fields
* Empty commit
---------
Co-authored-by: Luis Cossío <luis.cossio@outlook.com >
2024-02-11 16:43:43 +01:00
Wesley
8b806f90de
Read-Only API keys ( #2979 )
...
* Read-only API keys
Co-authored-by: Luis Cossío <luis.cossio@outlook.com >
Correct placement of OpenAPI security
Place regex dep with actix/tonic
* Read-only API keys
* Replace with pytests
* API Key tests run on the same job
* Drop allow dead-code
* Rename setting key
* Containerized tests
* No special config files
* DRY
* refactor: re-use can_write method
* refactor: replace static by constants
* refactor: get PID from `$!`
* refactor: use explicit brackets on boolean condition
* style: fix identation
* small fixes + account for new APIs
* specify security in openapi
* small fix + chmod for .sh testfile
* add best-efford check for api consistency
---------
Co-authored-by: Amr Hassan <amr.hassan@gmail.com >
Co-authored-by: generall <andrey@vasnetsov.com >
2023-11-23 21:58:35 +01:00
Luis Cossío
42c0ed4a2e
Improve discovery openapi and grpc comments ( #2956 )
...
* improve openapi descriptions
* update grpc docs
* replace em for en dashes with spaces
2023-11-09 10:57:47 -03:00
Luis Cossío
904a7ab306
Discovery API ( #2861 )
...
* create and connect discovery http and grpc interfaces
* add openapi tests
* fix bad rebase
* Add better descriptions
* remove numpy from openapi tests
* fix rebase artifact
* remove already addressed TODO
* add more tests
* 🤡 🔫 (cfg batch handler)
* add timeout query param for discover requests
* More gRPC validation
* make fields pydantic_openapi_generator_v3 friendly
* `context_pairs` -> `context` with struct for pairs
* discovery api is only discovery or context,
move struct description to fields
---------
Co-authored-by: timvisee <tim@visee.me >
2023-11-08 14:22:31 +01:00
Luis Cossío
4700e2a86a
Expose timeout query param for search requests ( #2748 )
...
* add timeout query param for search requests
* enable timeout for recommend requests
* Add query timeout for group by requests
* update openapi models
* Don't decrease timeout after recommend preprocessing
* Add openapi test
* code review
* add timeout to individual group by requests, non-decreasing
* handle timeout for discover
* Update timeout field tag in SearchBatchPoints
message
2023-11-02 12:45:46 -04:00
Luis Cossío
e90a03e00b
Group by key ( #1768 )
...
* test: test must_not is_null
* vcs: ignore vscode files
* feat: group-by initial implementation
* cargo fmt
* refactor: same request behavior on reco and search
* refactor: get rid of RefCell
* refactor-fix: correct hashmap keys, and early stops
* chore: small improvements
* feat: groups aggregator
* fix: pull changes from other files
* cargo fix
* cargo fmt
* docs: edit docstrings
* allow dead code (while the complete feature is beint built)
* chore: restructure
* feat: introduce GroupKey, minor other improvements
* cargo fmt
* chore: specify aggregator visibility
* fix: oops, leaking "private" type
* refactor-fix: restructure and refactor group_by
* cargo fix
* fix: don't panic when there is no group-by field
* remove print statements
* amend: `>=` -> `==`
* perf: remove double clone
* chore: sync aggregator from other branch
* chore: cleanup print statemets
* test: ignore big tests
* cargo fmt
* refactor: add early stop when the groups have been filled, improve code
* chore: sync aggregator, remove print from test
* refactor: consider shard_selection, improve collection_by_name handling
* feat: add bucketing to table of content
* refactor: better errors, improve tests
* test: add integration tests
* feat: add endpoints
* refactor: introduce ScoredPoint wrapper, restructure types
* sync aggregator
* edit internal grouping visibility
* feat: group_by internals
* cargo fmt
* cargo fmt
* refactor: turn inner fn into closure
* test: fix test to support new vector output representation
* feat: wire up grouping with actix
* expose grouped_by field
* fix: change output group format
* feat: wire up openapi
* fix: finish wiring up grouping in actix
* tests: fix test_group.py
* cargo fmt
* refactor: extract constants
* remove Hash from ScoredPoint
* `Option<collection_by_name>` -> `collection_by_name`
* fix: handle better cases on `match_on`
* fix: consider that subsequent calls can bring better results
* cargo fmt
* fix clippy warnings
* cargo fmt
* refactor: move `Group` to `types`, localize `hydrate_from`, remove `Deref` impls
* refactor `add_points`
* refactor: turn `GroupKey` into enum
* refactor: make `HashablePoint` inner struct private
* feat: add grpc layer, make new `PointGroup` type to use as output
* fix: update openapi models
* docs: update grpc docs
* fix merge errors
* refactor: add BaseGroupRequest to make code DRYer, improve doc comments
* cargo fmt
* perf: increase precision; choose best groups by score
* misc: add more integration tests, fix review comments
* cargo fmt
* fix: reimplement interface to flatten search and recommend requests, excluding offset
* cargo fmt
* refactor: move `r#do` impl to `GroupRequest`
* fix: update grpc docs
* perf: sort in reverse order
* fix: use fist value of a Value::Array
* fix: validate group_by to not support bracket notation, fix int. tests
* fix: update grpc validation
* tests: update collection_tests
* refactor: move validation to the api layers
* Oops: reupdate tests
* refactor: let the derives derive (thanks @ffuugoo)
* refactor: use a new GroupId on the output
also increases performance by copying less
* remove hashable set, take ordering into an account, fix mutliple groups values support
* fmt
* refactor group_id + rename per_group -> group_size, fix clippy
* remove GroupKey wrapper
* @agourlay review fixes
* refactor: `group_min_scores` and `group_max_scores` -> `group_best_scores`
* refactor: use set difference on `keys_of_unfilled_best_groups`
* refactor: use set intersection on `len_of_filled_best_groups`
* refactor: turn best_group_keys into iterator
* fix: remove [] syntax limitation
* fix: update openapi.json
---------
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2023-05-15 23:05:20 +02:00
Roman Titov
a50e7bdcd4
Add read_consistency parameter to the APIs ( #1371 ) ( #1407 )
...
* WIP: Add `read_consistency` parameter to the APIs
* WIP: Add `read_consistency` parameter to the APIs
TODO:
- Add documentation
* `cargo fmt`
* Add gRPC documentation
* Add OpenAPI documentation
* Cleanup
* fixup! Add OpenAPI documentation
* fixup! Add gRPC documentation
Who would have known there's `generate_grpc_docs.sh`!? 🥲 🙈 🤦♀️
* generate openapi
* Fix `read_consistency` query parameter deserialization
* Further improve `read_consistency` query parameter deserialization
* `cargo clippy`
* Fix `Payload` comparison during read operation result resolving
* Fix grammar
* rename `read_consistency` -> `consistency` and add integration test
* use majority for test
* fix tests
* Fix tests
* fixup! Fix tests
Apply the same fix to `ScoredPoint`
* Remove an `unwrap`
* fixup! Fix tests
Gotta love those negative conditions, or how a missed `!` can ruin your day... 🤦♀️
* Make internal API calls strictly "local-shard only"
* Implement a few basic traits for `ResolverRecord`
* fixup! Implement a few basic traits for `ResolverRecord`
* Revert "Make internal API calls strictly "local-shard only""
This reverts commit 25378e61ff .
* Fix `Record::payload` and `ScoredPoint::payload` serialization
* Revert "Fix `Record::payload` and `ScoredPoint::payload` serialization"
This reverts commit b566bea49b .
* Fix `Record::payload` and `ScoredPoint::payload` visibility
* fixup! Fix `Record::payload` and `ScoredPoint::payload` visibility
Remove `todo!()`
* refactoring
---------
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2023-02-03 01:12:28 +01:00
Ivan Pleshkov
8eedcf3735
add empty security to openapi ( #1079 )
2022-09-30 10:02:40 +02:00
Ivan Pleshkov
4d3b4b132d
More multivector api updates ( #1025 )
...
* rest multivector api updates
* update openapi
* update grpc doc
2022-09-16 12:25:42 +04:00
Arnaud Gourlay
03c10fc310
Batch recommendation API ( #954 )
2022-08-22 09:41:22 +02:00
Andrey Vasnetsov
a2acca0345
Segment batch search ( #813 )
...
* batch search benchmark
* collect filter iterator in indexed search
* fmt
* fix
* fix
* fmt
* use new tempfile create
* auto batching
* Clippy fixes
* REST, gRPC and internal APIs
* fix bugs & less duplication
* two steps payload retrieval mechanism & fix duplication
* add proxy_segment implementation & tests
* add gRPC docs
* remove unused code (#950 )
* only filter ids within a batch
* add more equivalence tests
* add integration test search vs batch
* assert more search options in tests
* cleanup assertions
* fix offset panic
* rename search batch API
* openapi spec
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com >
2022-08-18 14:48:17 +02:00
Andrey Vasnetsov
123332c867
Full snapshot ( #824 )
...
* full snapshot rest api
* openapi for snapshots
* openapi snapshot api
* fmt + clippy
* fix recovery + implement grpc methods
* fmt
* same aliases to full storage snapshot
* fmt
2022-07-18 17:11:23 +02:00
Andrey Vasnetsov
098bc4c751
Count api ( #777 )
...
* count api
* test for approx counting
* fmt + clippy
* unit test
* add warning
2022-07-05 09:33:38 +02:00
Andrey Vasnetsov
ddf940c491
allow server selection in OpenAPI schema ( #682 )
2022-06-14 09:54:47 +02:00
Gabriel Velo
c15981092a
[WIP] [real-time index] Implement payloadstorage for structpayloadindex ( #642 )
...
* [real-time index] Extend FieldIndex enum and StructPayloadIndex with method from PayloadStorage
* [real-time index] add missing remove_point methods
* [real-time index] add new index to FieldIndex enum
* fix compile
* are you happy fmt
* merge load and remove
* fix test generics
* decrement points count
* remove from histogram
* simplify histogram usage
* [real-time index] remove old tests and fix clippy warnings
* histogram: method to derive range by size (#657 )
* [real-time index] add histogram based payload_blocks implementation.
* payload blocks
* fmt
* clippy
* [real-time index] refactor Segment to use PayloadIndex instead of PayloadStorage.
* fix tests
* fmt
* clippy
* rename indexes
* remove redundent params
* add struct payload deletion test + fix delete payload in map index
* remove payload threshold
Co-authored-by: Ivan Pleshkov <pleshkov.ivan@gmail.com >
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2022-06-06 17:14:20 +02:00
Andrey Vasnetsov
c286bde562
Cluster api ( #631 )
...
* cluster status API
* add cluster api to OpenAPI specification
2022-05-27 14:52:51 +02:00
Andrey Vasnetsov
adc1f4ad97
Bool filter ( #421 )
...
* bool match condition
* use generic values for match requests
* fmt
* upd grpc interface
* upd grpc docs
2022-04-03 16:08:34 +02:00
Gabriel Velo
f69a7b740f
json as payload ( #306 )
...
add json as payload
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2022-03-21 07:09:10 -03:00
Andrey Vasnetsov
20c1e0f20d
upd naming in api ( #361 )
2022-03-03 13:27:51 +01:00
Andrey Vasnetsov
d51a70fa93
add openapi validation during generation #208 ( #248 )
...
* add openapi validation during generation #208
* fix: POST -> PUT in point update api implementation and docs #208
* fix: openapi structure exposure
* fix: api usage in stress test
2022-01-24 17:33:57 +01:00
Arnaud Gourlay
97cb5091bc
Split Points API #208 ( #221 )
...
Split Points API #208
2022-01-24 07:54:47 +01:00
Andrey Vasnetsov
f4a0511385
Add OpenAPI version selector ( #171 )
...
* add OpenAPI version selector
* fix typo
2022-01-03 11:34:09 +01:00
Andrey Vasnetsov
d7148126ce
Split collection update API into several endpoints ( #126 )
...
* split storage operation structures #32
* cargo fmt #32
* split collection update api into several endpoints #32
* cargo fmt #32
* fix tonic-related code with new structures
* upd alias structures
* use ytt teplate engine for OpenAPI Endpoint schema generation
2021-12-13 09:38:33 +01:00