Skip to content

Commit

Permalink
support $vectorSearch
Browse files Browse the repository at this point in the history
  • Loading branch information
baileympearson committed Oct 6, 2023
1 parent 1a1c75d commit 43dd522
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 14 deletions.
22 changes: 9 additions & 13 deletions langchain/src/vectorstores/mongodb_atlas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,12 +102,6 @@ export class MongoDBAtlasVectorSearch extends VectorStore {
k: number,
filter?: MongoDBAtlasFilter
): Promise<[Document, number][]> {
const knnBeta: MongoDBDocument = {
vector: query,
path: this.embeddingKey,
k,
};

let preFilter: MongoDBDocument | undefined;
let postFilterPipeline: MongoDBDocument[] | undefined;
let includeEmbeddings: boolean | undefined;
Expand All @@ -121,19 +115,21 @@ export class MongoDBAtlasVectorSearch extends VectorStore {
includeEmbeddings = filter.includeEmbeddings || false;
} else preFilter = filter;

if (preFilter) {
knnBeta.filter = preFilter;
}

const pipeline: MongoDBDocument[] = [
{
$search: {
$vectorSearch: {
queryVector: query,
index: this.indexName,
knnBeta,
},
path: this.embeddingKey,
limit: k,
numCandidates: 10 * k,
...(preFilter && { filter: preFilter })
}
},
{
$set: {
score: { $meta: "searchScore" },
score: { $meta: "vectorSearchScore" },
},
},
];
Expand Down
3 changes: 2 additions & 1 deletion langchain/src/vectorstores/tests/mongodb_atlas.int.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { OpenAIEmbeddings } from "../../embeddings/openai.js";
{
"mappings": {
"fields": {
"e": { "type": "number" },
"embedding": {
"dimensions": 1536,
"similarity": "euclidean",
Expand Down Expand Up @@ -67,7 +68,7 @@ test("MongoDBAtlasVectorSearch with external ids", async () => {

// we can pre filter the search
const preFilter = {
range: { lte: 1, path: "e" },
e: { $lte: 1 },
};

const filteredResults = await vectorStore.similaritySearch(
Expand Down

0 comments on commit 43dd522

Please sign in to comment.