[MEVD] Add Batch Search
I am authoring a high-performance library for AI applications and would like to introduce MEVD as the baseline abstraction for integration with vector searches.
However, most AI applications perform batch operations, and some vector stores have batch capabilities or at least the ability to submit multiple requests in a single round trip.
The current MVDE search abstraction only enables a single query at a time, limiting my ability to harness when possible the batch capabilities of the underlying storage.
Can we add a new abstraction that the different vector stores can optionally implement for batch operations?
Then I can do a capability test in my code:
if (vectorStore is IBatchSearchableVectorStore)
{
var groupedResult = await vectorStore.BatchQueryAsync(batch, ...);
// use results
}
If we can also have adapters for a vector store that will perform serial / parallel queries that would be cool, but that is easy to add in our code once the interface exists.
All names (interface, methods, ...) are TBD.
[MEVD] Add Batch Search
I am authoring a high-performance library for AI applications and would like to introduce MEVD as the baseline abstraction for integration with vector searches.
However, most AI applications perform batch operations, and some vector stores have batch capabilities or at least the ability to submit multiple requests in a single round trip.
The current MVDE search abstraction only enables a single query at a time, limiting my ability to harness when possible the batch capabilities of the underlying storage.
Can we add a new abstraction that the different vector stores can optionally implement for batch operations?
Then I can do a capability test in my code:
If we can also have adapters for a vector store that will perform serial / parallel queries that would be cool, but that is easy to add in our code once the interface exists.
All names (interface, methods, ...) are TBD.