34 Commits

Author SHA1 Message Date
Damian
01a997098f Add NormalizePath middleware to cleanup url (#5946)
* feat: add NormalizePath middleware to cleanup url

Signed-off-by: Damian <damiakpan@gmail.com>

* Cleaned up comment on Normalize Path

* test: add test case to validate behavior

* Update tests/basic_api_test.sh

Co-authored-by: Andrey Vasnetsov <vasnetsov93@gmail.com>

---------

Signed-off-by: Damian <damiakpan@gmail.com>
Co-authored-by: Andrey Vasnetsov <vasnetsov93@gmail.com>
2025-02-06 09:43:43 +01:00
Predrag Knezevic
7fef49af03 Enable running integration tests against non-localhost available instance (#5345)
* `QDRANT_HOST` variable is used by all openapi tests, removed its copies from
  `test_multi_vector_uint8.py`, `test_multi_vector_unnamed.py`, `test_query.py`,
  `test_shard_snapshot.py`, and `test_snapshot.py`
* Added optional `QDRANT_HOST_HEADERS` env variable to set custom HTTP headers
  in order to reach Qdrant instance behind a reverse proxy. The content of the
  variable is JSON payload, e.g. `{"host": "qdrant.local"}`
* Adapted `./tests/basic_*.sh` scripts to aware of `QDRANT_HOST_HEADERS` env variable
2024-10-31 18:30:41 +01:00
Andrey Vasnetsov
20eb2e1f2f remove usage of vectors_count (#4052)
* remove usage of vectors_count

* skip serialization if none

* add deprecated mention

* Add colon after deprecation note

---------

Co-authored-by: timvisee <tim@visee.me>
2024-04-18 15:22:01 +02:00
xzfc
3ad1528ebe Use /usr/bin/env bash in shebangs (#3570) 2024-02-09 11:42:29 +01:00
Tim Visée
91a0200c1b Improve metrics building performance, limit endpoints to whitelist (#1616)
* Fix incorrect metrics value for cluster commit

* Rewrite metrics logic, don't use registry, write values directly

* Only report REST timings for requests having HTTP 200 response

* Limit metrics reporting of endpoints to whitelist

The whitelist contains a selection of search, recommend and upsert endpoints.

* Add MetricsParam, remove detail level, keep anonymize

* Request metrics in basic API test

* Specify content type for metrics endpoint

* Add OpenAPI test for metrics endpoint, remove from basic API test

This test probes for some strings that must exist in the output

* Add note that metrics endpoint whitelist must be sorted
2023-03-29 13:08:06 +02:00
Arnaud Gourlay
3aa148cdf7 Add UUID to storage compatibility tests (#1447) 2023-02-08 20:10:06 +01:00
Andrey Vasnetsov
6965f2f4f9 fix basic-rest-api-test (#1433) 2023-02-06 13:38:16 +01:00
Andrey Vasnetsov
123ae1607d Await for collection created for sure (#1144)
* run plunger operation after user request to ensure that the majority of the consensus actually applied previous operation

* fmt

* fix test

* ensure all operations are unique in consensus queue

* add extra timeout for CI tests

* fix timout param in delete peer + do not explicilty await on peer removal

* fmt
2022-10-19 17:59:16 +02:00
Andrey Vasnetsov
35ae83f3fc validate geo coordinate before adding it to the payload index (#1125)
* validate geo coordinate before adding it to the payload index

* revert changes in api test
2022-10-13 09:14:11 +02:00
Andrey Vasnetsov
dc07b01e1f remove deprecated fields from API (#1030)
* remove depricated fields from API

* fmt

* upd openapi and integration tests

* fix grpc test

* regenerate storage reference data

* improve docs

Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>
2022-09-19 13:51:03 +02:00
Ivan Pleshkov
22fd3a3963 minor doc and api in tests updates (#1022) 2022-09-15 13:37:38 +04: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
b66fa3b39d use indexes in basic api test (#732) 2022-06-23 14:04:24 +02:00
Andrey Vasnetsov
2601c017de Smarter defaults (#637)
* auto segments number

* auto segments number

* replace vector number limits with vector size limits

* fmt
2022-06-01 18:09:38 +02:00
Arnaud Gourlay
1f72ce6b1f return a JSON body in case of JSON decoding error (#556) 2022-05-04 20:11:27 +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
58ce28a933 [gPRC] search method (#300)
* wip: grpc search + refactor payload selector

* grpc: search api + test

* fmt

* fix clippy

* update openapi schema (backward compatible)
2022-02-14 12:49:24 +01:00
Andrey Vasnetsov
f5feff8080 Validated integration tests - #232
* wip: re-implement http tests using openapi validation library

* collection delete api

* payload operations test

* payload delete operations test

* payload index creation and removing test

* uuid operations test

* schema consistency test

* add tests into pipeline

* chmod +x

* faster local runs with docker cache

* upd instruction
2022-02-11 16:43:47 +01:00
Gabriel Velo
4483ea0d60 fix: #101 Payload type consistency is not enforced. 2022-02-09 11:46:01 -03:00
Arnaud Gourlay
5a5da0a16d use existing integration tests as CI (#279) 2022-02-03 19:22:39 +01:00
Gabriel Velo
79fefa2f67 remove payload using filters (#269) (#278) 2022-02-03 10:12:57 +01:00
Andrey Vasnetsov
65787f7f55 UUID as point id (#265)
* wip: u64 -> u128 + serialization tests

* breaking: use more flexible structure for saving point ids

* replace u64 external id type with enum

* update openapi definitions for uuid + fix retrieve point api + bash script tests
2022-01-31 13:18:07 +01:00
Andrey Vasnetsov
ca801b2b01 use new version of api in test (#266) 2022-01-31 11:33:01 +01:00
Tim Eggert
559e7a8055 Delete Points By Filter API #39 (#250)
* Delete Points By Filter API #39

* make delete_by_filter part of existing delete query + fix merge issues #39

* apply fmt

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2022-01-25 16:22:18 +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
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
Andrey Vasnetsov
cca7839e18 fix alias operation deadlock (#103) (#105)
* fix alias operation deadlock (#103)

* cargo fmt (#103)
2021-10-06 18:50:51 +03:00
Andrey Vasnetsov
910c3b9f8a Revert "Revert "Actix update (#55)" (#56)" (#57)
This reverts commit 53ddce350e.
2021-07-05 23:38:00 +02:00
Andrey Vasnetsov
53ddce350e Revert "Actix update (#55)" (#56)
This reverts commit 12e25089cb.
2021-07-05 00:43:23 +02:00
Konstantin
12e25089cb Actix update (#55)
* Updated actix to 4.0.0-beta.8

* Refactored search, scroll, update and collection operation APIs to be async
2021-07-05 00:20:16 +02:00
trean
d30e6fa8ee Implementation of points scroll API #38 (#40)
* WIP: filtered points iterator #38

* add paginated filtered point request function #38

* add scroll api + openapi definitions #38

* fix openapi #38
2021-06-20 15:30:12 +02:00
Andrey Vasnetsov
46ba12a198 update readme + change filter structure 2021-04-06 14:12:46 +02:00