dependabot[bot]
03642f4c2e
Bump uuid from 1.4.1 to 1.5.0 ( #2993 )
...
Bumps [uuid](https://github.com/uuid-rs/uuid ) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/uuid-rs/uuid/releases )
- [Commits](https://github.com/uuid-rs/uuid/compare/1.4.1...1.5.0 )
---
updated-dependencies:
- dependency-name: uuid
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-14 10:04:49 +01:00
dependabot[bot]
629e71c08d
Bump memmap2 from 0.7.1 to 0.9.0 ( #2999 )
...
Bumps [memmap2](https://github.com/RazrFalcon/memmap2-rs ) from 0.7.1 to 0.9.0.
- [Changelog](https://github.com/RazrFalcon/memmap2-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/RazrFalcon/memmap2-rs/compare/v0.7.1...v0.9.0 )
---
updated-dependencies:
- dependency-name: memmap2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-14 08:59:46 +01:00
dependabot[bot]
7331952054
Bump tempfile from 3.8.0 to 3.8.1 ( #2996 )
...
Bumps [tempfile](https://github.com/Stebalien/tempfile ) from 3.8.0 to 3.8.1.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/commits )
---
updated-dependencies:
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-14 07:19:29 +01:00
Ivan Pleshkov
7f065d4a0a
Integrate vector into NamedVectors struct ( #2966 )
...
* Integrate vector into NamedVectors struct
* revert into_default_vector
* remove unnecessary functions
* remove unnecessary functions
* remove unneccesary function
* remove unnecessary match
* remove matches
* revert preprocess signature
* remove unnecessary functions
2023-11-11 17:29:49 +01:00
Arnaud Gourlay
bc5d0976a1
Sparse vector validation ( #2965 )
...
* Sparse vector validation
* cheaper indices uniqueness validation and tests
2023-11-10 16:42:10 +01:00
Tim Visée
9394fc1757
Some micro optimizations in reserve/resize usage ( #2967 )
...
* In HNSW graph layer building, infer right capacity on collect
* Resize with empty vector, use constant function rather than clone
* Use resize_with in other places as well
2023-11-10 09:42:14 +01:00
Andrey Vasnetsov
c95b2448d9
Shard key routing for update requests ( #2909 )
...
* add shard_key into output data structures for points
* fmt
* add shard selector for point update operations
* fix creating index without sharding
* Merge serde attributes
* Code review changes
* review fixes
* upd openapi
---------
Co-authored-by: timvisee <tim@visee.me >
2023-11-09 15:06:02 +01:00
Arnaud Gourlay
c492ab5c54
Share filter results for plain search in HNSW ( #2958 )
2023-11-09 13:36:51 +01:00
Tim Visée
dbb10e456d
Fix try_set_capacity functions ( #2960 )
...
* Fix `try_set_capacity` functions, add unit tests
* Skip setting capacity if already grown
* Improve chunked vectors insertion function
* Remove if capacity is zero
2023-11-09 13:35:49 +01:00
Arnaud Gourlay
1ae1f483d4
Benchmark sparse filter plain search ( #2947 )
...
* Sparse filter plain search
* code review
2023-11-09 09:57:43 +01: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
Arnaud Gourlay
6d5fa056b9
Sparse vector search benchmarks ( #2944 )
2023-11-08 13:07:33 +01:00
Arnaud Gourlay
b3aea28426
Extra tests for Sparse Vector Index ( #2925 )
2023-11-07 15:03:37 +01:00
Tim Visée
7d7cf61f16
Fix divide by zero panic, fall back to 0 ( #2933 )
...
* Fix divide by zero panic, if rhs is zero default to 0
* Add unit test
Co-authored-by: Ivan Pleshkov <pleshkov.ivan@gmail.com >
---------
Co-authored-by: Ivan Pleshkov <pleshkov.ivan@gmail.com >
2023-11-06 14:30:55 +01:00
Arnaud Gourlay
ce0a9c0bb0
Improve sizing in GraohLayersBuilder ( #2932 )
2023-11-06 11:15:30 +01:00
Andrey Vasnetsov
8b05c4a388
Int indexing ( #2927 )
...
* remove point from index if value was replaced with incompatible
* fmt
2023-11-06 09:43:06 +01:00
Arnaud Gourlay
ec2dc36719
SparseVectorIndex implements VectorIndex ( #2900 )
...
* SparseVector implements VectorIndex
* dedicated telemetry
* conflict
* easy code reviews
* simplify tracking indexed points count
* move telemetry conversion to sparse file
* move max_result_count out of inverted index trait
* unify sparse vector fixtures
* simpler conversion
* add todo regarding OOM potential
* reuse check deleted from raw scorer with TODO
* change new to open to handle mmap index
2023-11-03 16:23:05 +01:00
Luis Cossío
80bfd414ba
update RawScorer composition diagram ( #2916 )
2023-11-03 08:52:28 -04:00
Luis Cossío
50f3ef1757
Fix recommend best_score formula ( #2904 )
...
* fix recommend best score formula
* fix integration test
* review fixes
* rebase and fix conflicts
* correct proptest comment
2023-11-02 13:30:44 -04:00
Arnaud Gourlay
8a05462c6d
Raw scorer for sparse vectors ( #2915 )
...
* Raw scorer for sparse vectors
* sparse vector storage trait
* use get sparse vector fn
* remove dedicated types
---------
Co-authored-by: Ivan Pleshkov <pleshkov.ivan@gmail.com >
2023-11-02 14:59:18 +01:00
Ivan Pleshkov
9b88a225ac
Remove temporary conversion to dense vector ( #2906 )
2023-11-01 18:46:59 +01:00
Luis Cossío
3a772b7b8c
Add DiscoveryRequest and preprocessing ( #2867 )
...
* add `DiscoverRequest` and batch preprocessing logic
* Add description for DiscoverRequest, use serde(default) on offset
* review fixes
2023-11-01 11:30:08 -04:00
Ivan Pleshkov
cb917ea0db
raw scorer with operation result ( #2897 )
2023-10-31 23:44:20 +01:00
Luis Cossío
7dd2efa6e0
increase ef to get better precision on tests ( #2894 )
2023-10-30 22:33:11 +01:00
Ivan Pleshkov
3e2698c5fb
Return visited list by drop ( #2801 )
...
* return visited list by drop
* review remarks
2023-10-30 18:02:52 +01:00
Arnaud Gourlay
97ffee476e
Simple sparse vector storage ( #2806 )
...
* Simple sparse vector storage
* better todo
2023-10-30 11:27:36 +01:00
Luis Cossío
3b17deb259
Discovery search handler at hnsw level ( #2836 )
...
* add discovery_search_with_graph handler
* add precision test
* rename `DiscoveryPair` -> `ContextPair`
* review fixes
* renames + comments
---------
Co-authored-by: generall <andrey@vasnetsov.com >
2023-10-26 19:36:15 -04:00
Ivan Pleshkov
95d240cb44
mutable geo index ( #2768 )
2023-10-26 15:50:20 +02:00
Ivan Pleshkov
dd5e2d9d98
vector index update function ( #2877 )
2023-10-26 15:43:01 +02:00
Ivan Pleshkov
f3cd93379c
propagate vector type into QueryVector ( #2878 )
2023-10-26 15:40:28 +02:00
Andrey Vasnetsov
8b9df28f83
Hnsw parallel build accuracy ( #2869 )
...
* fixes for parallel HNSW graph building
* mft
* fix the bug by introducing ready_list, do not use unready point in parallel building
* fmt
* rm debug code
* clippy fix
* fix test
* fmt
* review fixes
* clippy fix
* fix filtered hnsw build
2023-10-25 16:12:36 +02:00
Apostolos Matsagkas
327c78678c
Fix overeager marking of visited points during search ( #2864 )
2023-10-25 11:56:18 +02:00
Arnaud Gourlay
87c9e79cb1
Sparse vector in QueryVector ( #2854 )
...
* Sparse vector in QueryVector
* remove experimental sparse raw scorer
* code review
* code review
2023-10-20 17:07:02 +02:00
Arnaud Gourlay
d135fbb441
Fix cargo test doc ( #2856 )
...
* fix cargo test doc
* run doc test on CI
* try re-ordering tests execution to check if it takes less time
2023-10-20 16:45:37 +02:00
Luis Cossío
9e70494990
Add discovery context scorer ( #2820 )
...
* add discovery context query
* add tests
* small optimization for loss_by
* fix async raw scorer
* ditch micro-optimization
* remove sigmoid, rename `iter_all` -> `flat_iter`
* fix tests, add more cases
2023-10-19 15:29:37 -03:00
Ivan Pleshkov
e610ab202d
Use enum vector type in vector storage ( #2841 )
...
* use enum vector type in vector storage
* add to_vec_ref
2023-10-19 14:49:31 +02:00
Luis Cossío
f54d769b97
Allow selecting custom entry points at segment level ( #2834 )
...
* allow selecting custom entry points at segment level
* empty commit
* fix ci build
* restrict refactor up to search_with_graph
2023-10-18 09:14:32 -03:00
Arnaud Gourlay
ecaff66f4c
Sparse vector index integration ( #2835 )
...
* inverted index as trait
* introduce sparse vector index integration
* sparse vectors search cancellation
* clippy
* expose helper for search sparse
* code review
2023-10-18 12:03:04 +02:00
Tim Visée
24cbe77d79
Update ordered float to 4.1.1 ( #2823 )
...
* Bump ordered-float to 3.9.2 and 2.10.1
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com >
* Bump ordered-float to 4.1.1
---------
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com >
2023-10-16 13:28:33 +02:00
Luis Cossío
7207cb442a
Add QueryVector::Discovery ( #2809 )
...
* - add DiscoveryQuery to QueryVector
- merge reco_query_scorer and discovery_query_scorer into custom_query_scorer
- reuse reco_query_scorer equivalency tests for discovery scorer
* self review
* empty commit
2023-10-15 18:52:02 -03:00
Ivan Pleshkov
8e4acce59f
dense vector storage ( #2817 )
2023-10-13 22:30:49 +02:00
Andrey Vasnetsov
fa3aebe660
optimize usage of the match-any filter in case it is empty ( #2803 )
...
* optimize usage of the match-any filter in case it is empty
* fix outdated tests
2023-10-12 15:45:32 +02:00
Luis Cossío
66fe2026a7
Add discovery query scorer ( #2791 )
...
* add DiscoveryQuery
* refactor and add tests
* add discovery query scorer
* add quantized discovery query scorer
2023-10-12 09:52:05 -03:00
Ivan Pleshkov
8cdeda26d8
Quantization storage as separate entity ( #2797 )
...
* quantization storage as separate entity
* simplify max threads calculation
2023-10-12 11:21:34 +02:00
Ivan Pleshkov
baf7e5fc82
fix rescoring for small cardinality case ( #2789 )
...
* fix rescoring for small cardinality case
* remove obsolete comment
* review fix
2023-10-11 13:57:29 +02:00
Arnaud Gourlay
27be199f5a
Allow JsonPath for PayloadSelector ( #2756 )
...
* Allow JsonPath for PayloadSelector
* code review
* mention Entry API in performance note
* pre-process exclude list to avoid incorrect side-effects
* remove support for array paths
* review refactoring
* add test for implicit/explicit array notation
* [skip ci] panic -> unreachable
---------
Co-authored-by: generall <andrey@vasnetsov.com >
2023-10-06 12:27:30 +02:00
Arnaud Gourlay
8b2373c7f4
Fix Clippy 1.73 for consistent Ord impl in NumericIndex ( #2767 )
2023-10-05 18:51:45 +02:00
Arnaud Gourlay
3bff12dba6
Make GeoPolygon interiors optional ( #2766 )
2023-10-05 18:34:39 +02:00
Ivan Pleshkov
d83806703e
Stack allocated geohash ( #2764 )
...
* stack allocated geohash
* Update lib/segment/src/index/field_index/geo_hash.rs
Co-authored-by: Tim Visée <tim+github@visee.me >
* Update lib/segment/src/index/field_index/geo_hash.rs
Co-authored-by: Tim Visée <tim+github@visee.me >
---------
Co-authored-by: Tim Visée <tim+github@visee.me >
2023-10-05 15:54:55 +02:00
Ivan Pleshkov
b916617713
Immutable numeric index ( #2666 )
...
* immutable numeric index
* avoid Vec<u8> encoding
* test inf float
* rename test
* fix nan case for float payload index
* are you happy fmt
* set of numeric pair as separate struct
* fix build
* are you happy clippy
* more tests
* remove from histogram
* review fixes
2023-10-05 14:12:23 +02:00