Commit Graph

29 Commits

Author SHA1 Message Date
Arnaud Gourlay
21bffea66c Fix id exclusion when recommending from a different collection (#4551)
* Fix id exclusion when recommanding from a different collection

* add line at eof
2024-06-25 13:34:49 +02:00
Arnaud Gourlay
cf85af00cb universal-query: Add validations to query input (#4536)
* universal-query: Add validations to query input

* update openapi spec

* use raw request to by-pass local validations

* add validation for order_by and factorize
2024-06-25 13:33:32 +02:00
Luis Cossío
2c651b1147 order_by: Begin migration to order_value in Record [v1.10] (#4526)
* begin migration to order_value

* gen openapi and grpc docs

* cargo clippy --fix

* fixup
2024-06-25 13:33:09 +02:00
Andrey Vasnetsov
eba2c6be61 Api consistency update (#4533)
* rename search_params -> params

* rename multivector_config + generate schema

* upd tests
2024-06-25 13:32:31 +02:00
Luis Cossío
70c7c4c847 Add layer of response structure specific to query (#4498) 2024-06-21 23:41:47 +02:00
Andrey Vasnetsov
49a9d05e7c Fix multivector for unnamed vectors (#4482)
* minor conversion improvement

* use NamedVectors in update_vectors

* remove merge from VectorStruct

* rename Multi -> Named in vector struct

* add multi-dense vectors option into VectorStruct

* generate openapi

* rename VectorStruct -> VectorStructInternal

* add conversion for anonymous multivec in grpc

* renames for BatchVectorStruct

* implement multi-dense for batch

* allow multi-dense in batch upserts

* test and fixes
2024-06-21 23:41:12 +02:00
Luis Cossío
7189f98158 use get instead of indexing (#4496) 2024-06-21 23:40:13 +02:00
Luis Cossío
1c7044d46a Skip serializing null fields in Record and ScoredPoint (REST) (#4394)
* skip serializing null fields in Record and ScoredPoint

* update tests

* fix consensus tests
2024-06-21 23:40:00 +02:00
Arnaud Gourlay
0570ba667e universal-query: API testing with multi named vectors (#4463)
* universal-query: API testing with multi named vectors

* more filtering tests

* test rff with filter

* inner filter equivalence

* add more test cases
2024-06-21 23:35:07 +02:00
Andrey Vasnetsov
df3aa29654 Fix inplace updates for sparse index (#4375)
* include old vector into update function and clean posting lists accordingly

* add integration test

* fix counter

* also remove old vector if the insertion is empty

* clippy

* borrow once

* fix max_next_weight correcton on delete + test

* vector index responsible for updating vector storage

* review fixes

* add debug assert
2024-06-21 23:34:02 +02:00
Luis Cossío
ce398a345f universal-query: Basic integration tests (#4409)
Adds basic comparison to current existing endpoints
2024-06-11 13:17:34 +02:00
Arnaud Gourlay
88c8ad8523 Allow basic multivec search on legacy API (#4203)
* Allow multivec search on legacy REST API

* show that it works for gRPC as well

* better error message

* update error assertion

* show validation on REST as well

* remove unecessary test

* fix conversion - dim is not vec count

* fmt

* Use TypedMultiDenseVectorRef everywhere (#4224)

* Use TypedMultiDenseVectorRef everywhere

* remove obsolete test

* fix codespell

* fix build

* test single dense vector expansion on upsert

---------

Co-authored-by: Ivan Pleshkov <pleshkov.ivan@gmail.com>
2024-05-26 12:31:08 +02:00
AMIR
5a6cd1c2aa Simplify REST API nesting (#3323) (#3414)
* Simplify REST api nesting (#3323)

* tiny clarity refactor for test

* simpler generated openapi

* fix tests

* wrap deserializer functions into a struct impl

* fix null case

---------

Co-authored-by: Luis Cossío <luis.cossio@outlook.com>
2024-05-26 12:30:14 +02:00
Luis Cossío
c0c55af1d4 setup for faster openapi snapshot tests (#4219) 2024-05-26 12:27:42 +02:00
Arnaud Gourlay
9d4acc0d81 Test Multivector storage mmap and uint8 (#4197) 2024-05-09 14:28:24 +02:00
Arnaud Gourlay
28a31bd5b0 Simplify MaxSim configuration (#4171)
* Simplify MaxSim configuration

* enable extension of multivectorconfig

* rename multi_vec_config to multivec_config
2024-05-09 14:26:03 +02:00
Arnaud Gourlay
f50adc272a REST API multivector for write and retrieve (#4117)
* REST API multivector for write and retrieve

* add test showing search is not supported

* use helper

* debug asserts

* better naming

* iterator style

* better naming

* add validation test for checking all inner vectors have the same size
2024-05-09 14:24:11 +02:00
Andrey Vasnetsov
896cfe109d Sparse idf dot (#4126)
* introduce QueryContext, which accumulates runtime info needed for executing search

* fmt

* propagate query context into segment internals

* [WIP] prepare idf stats for search query context

* Split SparseVector and RemmapedSparseVector to guarantee we will not mix them up on the type level

* implement filling of the query context with IDF statistics

* implement re-weighting of the sparse query with idf

* fmt

* update idf param only if explicitly specified (more consistent with diff param update

* replace idf bool with modifier enum, improve further extensibility

* test and fixes

* Update lib/collection/src/operations/types.rs

Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>

* review fixes

* fmt

---------

Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>
2024-05-02 19:16:26 +02:00
Andrey Vasnetsov
419877a7a7 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-22 10:34:21 +02:00
Tim Visée
e367bd164e Extend shard snapshot security tests (#3867)
* Fix incorrect snapshot security test path

* Explicitly check if snapshot files exist

* Change shard snapshot invalid name error type to not found

That makes it consistent with behavior of our other snapshot APIs.

* Extend snapshot API security tests, also test collection and shard API
2024-03-19 13:32:20 +01:00
Tim Visée
3ab5172e9c Fix arbitrary path traversal vulnerability in full snapshot REST API (#3856)
* Improve function to get collection snapshot path

* Fix arbitrary path traversal in full snapshot path function

* Add integration test to assert arbitrary path traversal is blocked
2024-03-19 13:31:45 +01:00
xzfc
19e2fc7e28 Allow paths starting with numbers (#3788)
* Allow paths starting with numbers

* add test

* fix test

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-03-07 16:30:17 +01:00
xzfc
5c446c6d16 Fix batch_requests (#3745) 2024-03-05 17:16:28 +01:00
xzfc
e1241c7e0c Switch to JsonPathV2 (#3709) 2024-03-05 17:15:52 +01:00
Tim Visée
cdb5df8d87 Fix flaky invalid URI snapshot test (#3704)
* Give file system some time clean up temporary snapshot files

* Be more careful with test_snapshot_operations_non_wait test

* Remove sleep
2024-03-05 17:12:59 +01:00
xzfc
4e3903e4c5 Test payload index overwrite (#3655) 2024-03-05 17:10:09 +01:00
shylock
87b541bb41 Feat/set payload by key (#3548)
* Support set by key in low level.

* Rename key field.

* Format.

* Pass key.

* Format.

* Test.

* Clippy.

* Fix ci lint.

* Check grpc consistency.

* Update openapi.

* Fix empty key test case.

* Support array index.

* Format.

* Add test for non exists key.

* Clippy fix.

* Add idempotence test.

* Update index by updated payload.

* Add ut for utils.

* Add ut for 1 level key.

* Fix ut.

* Support no exits key.

* Fix test result.

* Fix after rebase

* handle wildcart insertion into non-existing array

* avoid double read of payload during update

* fix missing removing data from index in case if set_payload removes indexed field

---------

Co-authored-by: Shylock Hg <shylock@DESKTOP-40I855A>
Co-authored-by: Albert Safin <xzfcpw@gmail.com>
Co-authored-by: generall <andrey@vasnetsov.com>
2024-03-05 17:08:07 +01:00
Luis Cossío
b0fbf299ba Datetime parser: Parse decimals without timezone (#3622)
* fix default opeapi file path

* better capture of process id in integration-tests.sh

* add pycache to gitignore

* add extra case for order_by test

* parse dates without timezone but with decimals correctly

* update payload_indexing test

* add extra test for space-separated date
2024-03-05 17:07:51 +01:00
Kumar Shivendu
f514b29641 refactor: OpenAPI tests (#3606)
* test: Restructure OpenAPI tests

* fix: Remove cache dirs

* fix: Remove cache dirs from helpers

* fix: Path of openapi.json

* fix: Update path of openapi tests everywhere
2024-03-05 17:07:42 +01:00