Basic Usage
This guide covers adding documents to your Endee vector store and performing similarity searches with LangChain.
Creating Sample Documents
Create texts with metadata for indexing:
# Sample texts
texts = [
"Python is a high-level, interpreted programming language known for its readability and simplicity.",
"JavaScript is a scripting language that enables interactive web pages and is an essential part of web applications.",
"Machine learning is a subset of artificial intelligence that provides systems the ability to automatically learn and improve from experience.",
"Deep learning is part of a broader family of machine learning methods based on artificial neural networks with representation learning.",
"Vector databases are specialized database systems designed to store and query high-dimensional vectors for similarity search.",
"Endee is the world's fastest vector database that provides faster vector search capabilities."
]
# Add metadata
metadatas = [
{"category": "programming", "language": "python", "difficulty": "beginner", "doc_id": "doc1"},
{"category": "programming", "language": "javascript", "difficulty": "intermediate", "doc_id": "doc2"},
{"category": "ai", "field": "machine_learning", "difficulty": "advanced", "doc_id": "doc3"},
{"category": "ai", "field": "deep_learning", "difficulty": "advanced", "doc_id": "doc4"},
{"category": "database", "type": "vector", "difficulty": "intermediate", "doc_id": "doc5"},
{"category": "database", "type": "vector", "product": "endee", "difficulty": "intermediate", "doc_id": "doc6"}
]
print(f"Created {len(texts)} sample documents")Adding Documents to the Vector Store
Add your documents to Endee:
# Add texts to the vector store
ids = vector_store.add_texts(texts=texts, metadatas=metadatas)
print(f"Added {len(ids)} documents with the following IDs:")
for i, doc_id in enumerate(ids):
print(f"Document {i+1}: {doc_id}")Basic Similarity Search
Perform a semantic similarity search:
# Perform a basic similarity search
query = "What is Python?"
results = vector_store.similarity_search(query, k=2)
print(f"Query: '{query}'")
print(f"\nFound {len(results)} similar documents:")
for i, doc in enumerate(results):
print(f"\nResult {i+1}:")
print(f"Content: {doc.page_content}")
print(f"Metadata: {doc.metadata}")Similarity Search with Scores
Get similarity scores along with results:
# Search with scores
query = "Tell me about vector databases"
results_with_scores = vector_store.similarity_search_with_score(query, k=2)
print(f"Query: '{query}'")
print(f"\nFound {len(results_with_scores)} similar documents:")
for i, (doc, score) in enumerate(results_with_scores):
print(f"\nResult {i+1}:")
print(f"Content: {doc.page_content}")
print(f"Metadata: {doc.metadata}")
print(f"Similarity Score: {score:.4f}")Creating a Retriever
Create a LangChain retriever from your vector store:
# Create a retriever from the vector store
retriever = vector_store.as_retriever(search_kwargs={"k": 2})
# Use the retriever
retrieved_docs = retriever.invoke("What is machine learning?")
print(f"Retrieved {len(retrieved_docs)} documents:")
for i, doc in enumerate(retrieved_docs):
print(f"\nDocument {i+1}:")
print(f"Content: {doc.page_content}")
print(f"Metadata: {doc.metadata}")Search Methods Reference
| Method | Description |
|---|---|
similarity_search(query, k) | Basic similarity search returning documents |
similarity_search_with_score(query, k) | Search with similarity scores |
as_retriever(search_kwargs) | Create a LangChain retriever |
add_texts(texts, metadatas) | Add documents to the vector store |