Commit Graph

467 Commits

Author SHA1 Message Date
Ivan Pleshkov
aa7e33b68b mmap geo index api (#5163)
* define mmap geo index

fix compilation

deleted flags

load new mmap

geo index tests

fix tests

fix build after rebase

add files list

* refactor get_stored_sub_regions output type

* review remanings

* mmap geo index api

* fix after rebase
2024-10-08 13:30:08 +02:00
Luis Cossío
ad6b9734f3 Facets: Support for bool payload (#5100)
* enable faceting with boolean index

* test and fix

* also test uuid
2024-10-08 13:11:36 +02:00
Jojii
05b8dca540 [Strict mode] Merge StrictMode config types (#5137)
* merge StrictModeConfig and StrictModeConfigDiff into one type

* review remarks
2024-10-08 13:10:33 +02:00
Jojii
0b236d8107 [Strict mode] default config (#5037)
* add default config for strict mode

* add default values as example to config/config.yaml

* improve implementation

* update grpc docs
2024-10-08 13:09:56 +02:00
Tim Visée
dee106d746 Bump version to 1.11.5 (#5121)
* Bump version to 1.11.5

* Update missed cherry picks
2024-09-23 17:10:35 +02:00
Tim Visée
d8b6e4a0c2 Bump version to 1.11.4 (#5098)
* Bump version to 1.11.4

* Update missed cherry picks
2024-09-17 17:04:40 +02:00
Luis Cossío
cf89715036 Expose on_disk text index (#5074)
* map index: fix reachable code marked as unreachable

* plumber work to get mmap text index to interfaces

* test: add fixture for mmap text index, always create mmap segment

* various fixes

- ensure dir is created for mmap
- implement is_on_disk() for text index
- invert deleted condition for filter in mmap inverted index

* update grpc docs and openapi

* implement return of files

* review nit

* fix after rebase

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-09-17 15:30:17 +02:00
Tim Visée
faf4407c19 Allow shard transfer from/to the same peer if from/to shard ID is different (#5034) 2024-09-17 15:26:58 +02:00
Andrey Vasnetsov
d0ccf4fc96 Better json path parsing errors (#5035)
* report malformed json path inside error

* fmt
2024-09-17 15:26:35 +02:00
Arnaud Gourlay
0de10604fb Distance matrix docs improvements (#5023)
* docs improvements

* improve openapi description
2024-09-17 15:26:19 +02:00
Arnaud Gourlay
ba57d63200 gRPC API for Distance Matrix (#5011)
* gRPC API for Distance Matrix

* generate API docs

* apply correct limit to sample

* add JWT tests

* pluralitiy

* fix COO naming

* drops COO as it trips codespell and is redundant

* clarify docs
2024-09-17 15:26:02 +02:00
Tim Visée
9fa86106e8 Bump version to 1.11.3 (#4984)
* Bump version to 1.11.3

* Update missed cherry picks
2024-08-29 16:14:49 +02:00
Jojii
3377530c62 [Strict-Mode] Basic implementation (#4887)
* add CollectionRequestVerification

* add to api

* rebase

* improve implementation

* implement strict mode for SearchRequest+Batch

* improve code + fix Clippy

* improve error handling

* restructure StrictModeVerification trait

* generate docs

* check `enabled` option

* review remarks

* rename StrictModeConfigDiff in grpc

* use missing payload detection from issue api

* performance improvement

* decouple extractor from issues (#4945)

* some review remarks

* don't default to empty functions in StrictModeVerification trait

* update openapi

* filter_limit => query_limit

* replace discovery_max_context_size and recommend_max_examples with max_input_examples

* review remarks

* review fix: include possible index types into error message

* review remarks

---------

Co-authored-by: Luis Cossío <luis.cossio@qdrant.com>
Co-authored-by: generall <andrey@vasnetsov.com>
2024-08-29 15:24:11 +02:00
Tim Visée
4dc4de4c75 Bump version to v1.11.2 (#4974)
* Bump version to 1.11.2

* Update missed cherry picks
2024-08-28 17:14:43 +02:00
Luis Cossío
4b429214cc Integer and UUID facets (#4946)
* move FacetIndex into facet_index.rs

* add support for integer facets

* add support for uuid facets

* use separate internal structure

* rename FacetValue::Keyword into FacetValue::String in REST

* fix after rebase
2024-08-28 15:18:21 +02:00
Andrey Vasnetsov
8a46eb1247 bump version to v1.11.1 (#4962) 2024-08-27 10:02:24 +02:00
Andrey Vasnetsov
287f287bbd Implement better handling of UUID index (#4961)
* rename keyword -> string for internal data structures

* implement MatchAny and expect for filter on UUID mmap index

* implement MatchAny and expect for cardinality estimation on UUID mmap index

* refactor PayloadFieldIndex filter for handling incorrect empty query parsing case
2024-08-27 01:16:44 +02:00
Andrey Vasnetsov
35e0ef8a7d Data structures for inference (#4936)
* add document to VectorStruct

* fmt

* add document to BatchVectorStruct

* add document to VectorInput

* add document to Vector

* upd openapi
2024-08-27 01:13:19 +02:00
Luis Cossío
5f5fd25d64 Add grpc endpoint for Facet (#4933)
* add grpc endpoint

* gen grpc docs
2024-08-27 01:13:12 +02:00
Luis Cossío
3185dd23c5 Exact facet mode (#4878) 2024-08-27 01:09:27 +02:00
Luis Cossío
ace8a90259 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-27 01:08:53 +02:00
Andrey Vasnetsov
e37a9ea2d5 make range and lookup params optional (#4905) 2024-08-27 01:07:00 +02:00
Arnaud Gourlay
faab853b86 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-27 01:06:50 +02:00
Arnaud Gourlay
29126883bc Update Validator 0.18 (#4894)
* Update Validator 0.18

* fix new test error message

* clearer geo error message

* fix error message

* fix unit tests

* Put spaces back

---------

Co-authored-by: timvisee <tim@visee.me>
2024-08-27 01:04:34 +02:00
Andrey Vasnetsov
3be87b11eb Mmap subcrate refactoring (#4886)
* make mmap_type independent from segment structures

* make bitvec and thiserror workspace dependencies

* move mmap_type into common/memory subcrate

* fmt
2024-08-27 00:57:20 +02:00
Tim Visée
6336395685 Bump version to 1.11.0 (#4865)
* Bump version to 1.11.0

* Update missed cherry picks

* Update OpenAPI spec and redoc
2024-08-12 16:29:32 +02:00
Andrey Vasnetsov
36e771d4da fix grpc enumeration (#4857) 2024-08-09 18:20:48 +02:00
Andrey Vasnetsov
94ed6a1fb8 docs: Use // for proto comments (#4852)
* docs: Use // for proto comments

* docs: Update gRPC

* chore: regen

---------

Co-authored-by: Anush <anushshetty90@gmail.com>
2024-08-09 18:19:59 +02:00
Jojii
564c085d4b On-disk Uuid hybrid-index (#4825)
* Migrate uuid index to mmap

* add uuid numeric index

* select correct index + tenants

* Only serialize if necessary

* select correct index

* reset Cargo.toml

* review: use only map index for uuid for now

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-08-09 18:19:39 +02:00
Luis Cossío
867a26d259 Facet in Table of Content (#4817)
* implement facets in ToC

- implement CheckableCollectionOperation for FacetRequest
- implement facet in Collection

* complete facet of internal service + From<StorageError> refactor

- finalize connecting internal service to table of content
- make error_to_status a From implementation, refactor accordingly
2024-08-09 18:19:17 +02:00
Arnaud Gourlay
93f04a3f49 Add and fix missing timeout in the retrieve APIs (#4842)
* Add and fix missing timeout in the retrieve APIs

* no need for extra timeout handling as single ops are doing it

* don't surface timeout too high in shard transfer infra

* add todos for future work

* update timeout after first query
2024-08-09 18:19:09 +02:00
Luis Cossío
12c5d6b6b6 Support timeout in Facets (#4792)
* nits in segments_searcher

* implement timeout into segment faceting

* Add timeout to internal service api

* refactor iterator_ext, and add test
2024-08-09 18:17:26 +02:00
Andrey Vasnetsov
0c23f81e52 Refactor resharding filter (#4799) 2024-08-09 18:17:18 +02:00
Luis Cossío
88fa434f53 Facets in internal service (#4790)
* add `facet` to shard trait

* Add internal service

* gen grpc docs
2024-08-09 18:17:00 +02:00
Jojii
20b0199aff Rename tenant to principal for float,int,datetime (#4789)
* Rename tenant to principal for float,int,datetime

* Apply review proposal
2024-08-09 18:16:25 +02:00
Jojii
e6bc3af29c fix tenants not getting applied from API (#4763) 2024-08-09 18:15:19 +02:00
Luis Cossío
aa5a6dda24 Switch to camelcase in Sample proto enum (#4758)
* Switch to camelcase

* grpc docs
2024-08-09 18:15:04 +02:00
Jojii
745b1621df UUID payload index (#4738)
* add UuidIndex

* fix clippy

* rebase to dev

* update api docs

* don't use wrapper type for Uuid index

* rebase to `dev`

* remove existence checking

* rename UuidPayloadKeyType => UuidIntType

* apply review changes

* rebase to dev

* post-rebase fixes

* Improve estimation

* Improve naming

* Apply suggestions from code review

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>

* use u128 in histogram and improve uuid sorting

* Also allow defragmentation for completely random Uuids

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-08-09 18:14:51 +02:00
xzfc
983df217d9 Add {Integer,Float,Datetime}IndexParams::on_disk to the API (#4755)
* Add {Keyword,Integer,Float,Datetime}IndexParams::on_disk to the API

* Add PayloadFieldSchema::is_on_disk()
2024-08-09 18:12:13 +02:00
Kartik Gupta
c6b24b6425 schemars example for CollectionsResponse, ScrollResult, SnapshotDescription, AliasDescription (#4714)
* example for CollectionsResponse

* points_example for ScrollResult

* example for SnapshotDescription

* fix

* example for AliasDescription

* fix: Style nit: add newline

* fix time and id

* fix order_value

* upd openapi

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-08-09 18:11:31 +02:00
xzfc
ddfb5d4c23 Bump prost and tonic (#4737)
* Bump tonic to 0.10.2 and prost to 0.12.6, keep old prost for raft

* from_i32 -> try_from
2024-08-09 18:11:20 +02:00
Luis Cossío
f64432686e universal-query: Expose random sampling query (#4657)
* expose random sampling query

* fix random query rescoring

* only ignore offset when there are no prefetches

* fix offset and with_payload/with_vector

* gen grpc docs

* make tests less flaky

* gen openapi schema

* Remove suffixed spaces

---------

Co-authored-by: timvisee <tim@visee.me>
2024-08-09 18:10:37 +02:00
xzfc
07c278ad51 Enable some of the pedantic clippy lints (#4715)
* Use workspace lints

* Enable lint: manual_let_else

* Enable lint: enum_glob_use

* Enable lint: filter_map_next

* Enable lint: ref_as_ptr

* Enable lint: ref_option_ref

* Enable lint: manual_is_variant_and

* Enable lint: flat_map_option

* Enable lint: inefficient_to_string

* Enable lint: implicit_clone

* Enable lint: inconsistent_struct_constructor

* Enable lint: unnecessary_wraps

* Enable lint: needless_continue

* Enable lint: unused_self

* Enable lint: from_iter_instead_of_collect

* Enable lint: uninlined_format_args

* Enable lint: doc_link_with_quotes

* Enable lint: needless_raw_string_hashes

* Enable lint: used_underscore_binding

* Enable lint: ptr_as_ptr

* Enable lint: explicit_into_iter_loop

* Enable lint: cast_lossless
2024-08-09 18:10:10 +02:00
Arnaud Gourlay
6a672d3aec universal-search: Query group API should support lookup_from (#4706)
* universal-search: Query group API should support lookup_from

* sync docs
2024-08-09 18:09:51 +02:00
Jojii
38522784b7 Basic defragmentation (#4610)
* sorting

* migrate tests and move logic into SegmentBuilder

* add test and improve implementation

* improve code

* review

* code review improvements

* add index building to test

* Do not clone ranges

* Resolve clippy warnings due to recent PR on dev

* review suggestions

* Defragmentation in api (#4684)

* add tenant config to api

* deduplicate used defragmentation keys

* rename is_tenant to is_primary

* use all values to defrag key

* rename is_primary -> is_tenant

* update schema

---------

Co-authored-by: generall <andrey@vasnetsov.com>
Co-authored-by: timvisee <tim@visee.me>
2024-08-09 18:08:52 +02:00
Luis Cossío
602935ee32 universal-query: Distribution-Based Score Fusion (#4614)
* refactor fusion into method

* expose distribution-based score fusion

* gen openapi and docs

* Better rest description

* add basic integration test
2024-08-09 18:06:59 +02:00
Kartik Gupta
08f4d4f78d Fix examples for scored point (#4659)
* Revert "Merge pull request #4560"

This reverts commit 5b0536df39.

* point id examples

* payload example

* VectorStruct example

* fmt

* ShardKey example

* OrderValue example

* fix

* example for SeqNumberType, ScoreType
2024-08-09 18:06:41 +02:00
Arnaud Gourlay
445a70f42c universal-query: gRPC group API (#4656)
* universal-query: gRPC group API

* fix jwt test

* resolve default values for CollectionQueryGroupsRequest
2024-08-09 18:06:24 +02:00
Tim Visée
4aac02315b Bump version to 1.10.1 (#4650) 2024-07-11 15:30:07 +02:00
xzfc
4fdf7152f0 Drop JsonPathString (#4621)
* drop some code

* Drop JsonPathString

* Fix test_remove_key

Drop failing tests:
- Deleting array indices is not idempotent, so we don't support it.
- Empty JSONPath is not supported.

* Make json_path::path() non-generic

* Remove references to JsonPathV2

* Drop JsonPathInterface

* Move json_path::v2 code into json_path

* Drop validate_not_empty

* Drop JsonPath::head() as being unused

* Replace path() with JsonPath::new()

* Restore comments

* Move tests to json_path

* Use json() consistently in tests

* Replace many into calls with Into trait

---------

Co-authored-by: timvisee <tim@visee.me>
2024-07-11 14:49:40 +02:00