Class MongoDbEmbeddingStore
java.lang.Object
dev.langchain4j.store.embedding.mongodb.MongoDbEmbeddingStore
- All Implemented Interfaces:
dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
public class MongoDbEmbeddingStore
extends Object
implements dev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
Represents a MongoDB index as an embedding store.
More info to set up MongoDb as vectorDatabase.
tutorial how to use a knn-vector in MongoDB Atlas (great starting point).
If you are using a free tier, #createIndex = true might not be supported,
so you will need to create an index manually.
In your Atlas web console go to: DEPLOYMENT -> Database -> {your cluster} -> Atlas Search -> Create Index Search
-> "JSON Editor" under "Atlas Search" -> Next -> Select your database in the left pane
-> Insert the following JSON into the right pane (set "dimensions" and "metadata"->"fields" to desired values)
{
"mappings": {
"dynamic": false,
"fields": {
"embedding": {
"dimensions": 384,
"similarity": "cosine",
"type": "knnVector"
},
"metadata": {
"dynamic": false,
"fields": {
"test-key": {
"type": "token"
}
},
"type": "document"
}
}
}
}
-> Next -> Create Search Index-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionMongoDbEmbeddingStore(com.mongodb.client.MongoClient mongoClient, String databaseName, String collectionName, String indexName, Long maxResultRatio, com.mongodb.client.model.CreateCollectionOptions createCollectionOptions, org.bson.conversions.Bson filter, IndexMapping indexMapping, Boolean createIndex) -
Method Summary
Modifier and TypeMethodDescriptionadd(dev.langchain4j.data.embedding.Embedding embedding) add(dev.langchain4j.data.embedding.Embedding embedding, dev.langchain4j.data.segment.TextSegment textSegment) voidaddAll(List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded) builder()List<dev.langchain4j.store.embedding.EmbeddingMatch<dev.langchain4j.data.segment.TextSegment>> findRelevant(dev.langchain4j.data.embedding.Embedding referenceEmbedding, int maxResults, double minScore) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface dev.langchain4j.store.embedding.EmbeddingStore
findRelevant, findRelevant, findRelevant, remove, removeAll, removeAll, removeAll, search
-
Constructor Details
-
MongoDbEmbeddingStore
public MongoDbEmbeddingStore(com.mongodb.client.MongoClient mongoClient, String databaseName, String collectionName, String indexName, Long maxResultRatio, com.mongodb.client.model.CreateCollectionOptions createCollectionOptions, org.bson.conversions.Bson filter, IndexMapping indexMapping, Boolean createIndex)
-
-
Method Details
-
builder
-
add
- Specified by:
addin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
add
- Specified by:
addin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
add
public String add(dev.langchain4j.data.embedding.Embedding embedding, dev.langchain4j.data.segment.TextSegment textSegment) - Specified by:
addin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
addAll
- Specified by:
addAllin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
addAll
public List<String> addAll(List<dev.langchain4j.data.embedding.Embedding> embeddings, List<dev.langchain4j.data.segment.TextSegment> embedded) - Specified by:
addAllin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-
findRelevant
public List<dev.langchain4j.store.embedding.EmbeddingMatch<dev.langchain4j.data.segment.TextSegment>> findRelevant(dev.langchain4j.data.embedding.Embedding referenceEmbedding, int maxResults, double minScore) - Specified by:
findRelevantin interfacedev.langchain4j.store.embedding.EmbeddingStore<dev.langchain4j.data.segment.TextSegment>
-