Previously, Vector Indexes were an abstraction that made use of an additional Backend class to implement their storage behaviour.
As discussed in #63, this adds a bit too much of a mental overhead to understanding the structure of indexes.
This MR simplifies Vector Indexes by:
Moving everything index related to the 'storage' module
A VectorIndex now handles the retrieval of content, storage of content and querying of content.
This is handled by Storage Provider specific mixins which can be added to the VectorIndex base class to add their provider-specific behaviour.
e.g. adding a PgvectorIndexMixin to a VectorIndex will allow content to be stored in a pgvector index (if an appropriate storage provider is configured)
Vector Backends are now renamed to Storage Providers (#55)
Previously, Vector Indexes were an abstraction that made use of an additional Backend class to implement their storage behaviour.
As discussed in #63, this adds a bit too much of a mental overhead to understanding the structure of indexes.
This MR simplifies Vector Indexes by: