Description
tl;dr
feature flag: opensearch
The vector-store is rooted in a use the Usearch library. We want to support also Opensearch as an indexing service. This issue should implement support for this.
Design
The architecture of the service is based on the actor framework. The Usearch index functionality is implemented in the index actor. The Opensearch functionality should be implemented in a separate actor. API for both should be same, only a backend should be different. There should be only one running actor, there should be an environment value to choose which index functionality should be used. All additional parameters for Opensearch should be provided by environment values. For integration tests use a mockup of Opensearch. Real integration tests should be done in a scylladb repository.
PRs
- Add
opensearch
flag feature - Refactor the Usearch index actor. Copy a backend from index.rs into index/usearch.rs.
- Create empty backend for the Opensearch. Create backend in index/opensearch.rs.
- Implement Index::Add for the Opensearch.
- Implement Index::Ann for the Opensearch.
- Create integration tests with mockup
- Remove
opensearch
flag feature