MemoryVectorStore class
Vector store that stores vectors in memory.
By default, it uses cosine similarity to compare vectors.
It iterates over all vectors in the store to find the most similar vectors. This is not efficient for large vector stores as it has a time complexity of O(vector_dimensionality * num_vectors).
This class is useful for testing and prototyping, but it is not recommended for production use cases. See other vector store integrations for production use cases.
Filtering
You can filter the search space before running the similarity search by providing a VectorStoreSearchType.filter that will be matched against the metadata of the documents in the vector store.
Example:
final vs = MemoryVectorStore(...);
final res = await store.similaritySearch(
query: 'Test query',
config: const VectorStoreSimilaritySearch(
filter: {'type': 'foo'},
),
);
This query will only consider documents that have a metadata field type
with value foo
.
- Inheritance
-
- Object
- VectorStore
- MemoryVectorStore
Constructors
-
MemoryVectorStore({required Embeddings embeddings, double similarityFunction(List<
double> a, List<double> b) = cosineSimilarity, List<MemoryVector> ? initialMemoryVectors}) - Main constructor for MemoryVectorStore.
Properties
- embeddings → Embeddings
-
The embeddings model used to embed documents.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
-
memoryVectors
→ List<
MemoryVector> -
Vectors stored in memory.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
similarityFunction
→ double Function(List<
double> a, List<double> b) -
Similarity function to use when comparing vectors.
final
Methods
-
addDocuments(
{required List< Document> documents}) → Future<List< String> > -
Runs more documents through the embeddings and add to the vector store.
inherited
-
addVectors(
{required List< List< vectors, required List<double> >Document> documents}) → Future<List< String> > -
Runs more texts through the embeddings and add to the vector store.
override
-
asRetriever(
{VectorStoreRetrieverOptions defaultOptions = const VectorStoreRetrieverOptions()}) → VectorStoreRetriever< VectorStore> -
Returns a VectorStoreRetriever that uses this vector store.
inherited
-
delete(
{required List< String> ids}) → Future<void> -
Delete by vector ID.
override
-
maxMarginalRelevanceSearch(
{required String query, VectorStoreMMRSearch config = const VectorStoreMMRSearch()}) → Future< List< Document> > -
Returns docs selected using the maximal marginal relevance algorithm (MMR)
for the given query.
inherited
-
maxMarginalRelevanceSearchByVector(
{required List< double> embedding, VectorStoreMMRSearch config = const VectorStoreMMRSearch()}) → List<Document> -
Returns docs selected using the maximal marginal relevance algorithm (MMR)
for the given embedding vector.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
search(
{required String query, required VectorStoreSearchType searchType}) → Future< List< Document> > -
Returns docs most similar to query using specified search type.
inherited
-
similaritySearch(
{required String query, VectorStoreSimilaritySearch config = const VectorStoreSimilaritySearch()}) → Future< List< Document> > -
Returns docs most similar to query using similarity.
inherited
-
similaritySearchByVector(
{required List< double> embedding, VectorStoreSimilaritySearch config = const VectorStoreSimilaritySearch()}) → Future<List< Document> > -
Returns docs most similar to embedding vector using similarity.
inherited
-
similaritySearchByVectorWithScores(
{required List< double> embedding, VectorStoreSimilaritySearch config = const VectorStoreSimilaritySearch()}) → Future<List< (Document, double)> > -
Returns docs and relevance scores in the range
[0, 1]
, 0 is dissimilar, 1 is most similar.override -
similaritySearchWithScores(
{required String query, VectorStoreSimilaritySearch config = const VectorStoreSimilaritySearch()}) → Future< List< (Document, double)> > -
Returns docs and relevance scores in the range
[0, 1]
. 0 is dissimilar, 1 is most similar.inherited -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
fromDocuments(
{required List< Document> documents, required Embeddings embeddings}) → Future<MemoryVectorStore> - Creates a vector store from a list of documents.
-
fromText(
{List< String> ? ids, required List<String> texts, List<Map< ? metadatas, required Embeddings embeddings}) → Future<String, dynamic> >MemoryVectorStore> - Creates a vector store from a list of texts.