diff --git a/docs/core_docs/docs/integrations/vectorstores/prisma.mdx b/docs/core_docs/docs/integrations/vectorstores/prisma.mdx index 6907cd6f8fb9..27612f150002 100644 --- a/docs/core_docs/docs/integrations/vectorstores/prisma.mdx +++ b/docs/core_docs/docs/integrations/vectorstores/prisma.mdx @@ -82,7 +82,7 @@ import Schema from "@examples/indexes/vector_stores/prisma_vectorstore/prisma/sc {Example} -The following SQL operators are available as filters: `equals`, `in`, `lt`, `lte`, `gt`, `gte`, `not`. +The following SQL operators are available as filters: `equals`, `in`, `isNull`, `isNotNull`, `like`, `lt`, `lte`, `gt`, `gte`, `not`. The samples above uses the following schema: diff --git a/langchain/src/vectorstores/prisma.ts b/langchain/src/vectorstores/prisma.ts index 06d2c022c786..15fbf82868dc 100644 --- a/langchain/src/vectorstores/prisma.ts +++ b/langchain/src/vectorstores/prisma.ts @@ -62,6 +62,9 @@ export type PrismaSqlFilter> = { [K in keyof TModel]?: { equals?: TModel[K]; in?: TModel[K][]; + isNull?: TModel[K]; + isNotNull?: TModel[K]; + like?: TModel[K]; lt?: TModel[K]; lte?: TModel[K]; gt?: TModel[K]; @@ -73,6 +76,9 @@ export type PrismaSqlFilter> = { const OpMap = { equals: "=", in: "IN", + isNull: "IS NULL", + isNotNull: "IS NOT NULL", + like: "LIKE", lt: "<", lte: "<=", gt: ">", @@ -432,6 +438,9 @@ export class PrismaVectorStore< } return this.Prisma.sql`${colRaw} ${opRaw} (${value.join(",")})`; } + case OpMap.isNull: + case OpMap.isNotNull: + return this.Prisma.sql`${colRaw} ${opRaw}`; default: return this.Prisma.sql`${colRaw} ${opRaw} ${value}`; }