Vector Search Fundamentals / Perform a Vector Search
Code Summary: Create a Search Query Using Vector Search
Embedding Model: The embedding model used in the examples below is the voyage-3.5-lite. The voyage-3.5-lite model from Voyage AI is a state-of-the-art embedding model designed for efficient and high-quality text retrieval. It supports multiple embedding dimensions—2048, 1024, 512, and 256—and offers various quantization options, including int8 and binary. Voyage-3.5-lite is suitable for a wide range of domains, such as technical documentation, code, law, finance, web reviews, long documents, and conversations.
To get started with Voyage AI, check out the Voyage AI documentation.
Create a Vector Search Query
The following code uses the $vectorSearch aggregation stage to perform a vector search.
pipeline = [
{
"$vectorSearch": {
"index": "vectorPlotIndex",
"path": "plot_embedding",
"queryVector": embedding,
"numCandidates": 100,
"limit": 10
}
},
{
"$project": {
"title": 1,
"plot": 1,
"score": {"$meta": "vectorSearchScore"}
}
}
]
x = collection.aggregate(pipeline)
Create a Vector Search Query with a Filter
The following code uses $vectorSearch with a filter on the year field to pre-filter the data before performing a vector search.
pipeline = [
{
"$vectorSearch": {
"index": "vectorPlotIndex",
"path": "plot_embedding",
"queryVector": embedding,
"numCandidates": 100,
"filter": {"year": {"$gt": 2010}},
"limit": 10
}
},
{
"$project": {
"title": 1,
"plot": 1,
"year": 1,
"score": {"$meta": "vectorSearchScore"}
}
}
]
x = collection.aggregate(pipeline)