Luis Cossío and Andrey Vasnetsov
56712b5cc7
Lookup: expose feature to REST and gRPC interfaces ( #2011 )
...
* rename `Lookup` -> `RetrievedLookup`
* feat: expose lookup in groups
- make `with_vectors` and `with_payload` optional
- include in grpc
- move GroupId to inside of PointGroup message
- include `WithLookup` inside of `GroupRequest`, doesn't make sense to keep them separated
* chore: remove allow(dead_code) from builder
* feat: introduce `WithLookupInterface` to allow specifying only the name of the lookup collection
* fix: WithLookupInterface with collection name only brings all payload and vectors
* fix: update grpc docs
* add tests and set better defaults
* remove `RetrievedLookup` from proto
* short-circuit `fill_search_result_with_payload` when it's not needed
* cargo fmt
* proto: revert putting `GroupId` inside `PointGroup`
* update grpc docs
* Remove WithLookupInterface sugar from grpc
- set with_vectors of lookup default to false
- set with_payload of lookup default to true
* update integration tests
* use singular lookup
---------
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2023-06-07 18:50:09 +02:00
Luis Cossío and Andrey Vasnetsov
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