From 648f8123ca3056c7564aa81edb3d5a1f4a72ccae Mon Sep 17 00:00:00 2001 From: gsilvestrin Date: Thu, 11 May 2023 09:12:06 -0700 Subject: [PATCH] Exposing limit parameter (#73) --- node/package-lock.json | 5 ++--- node/package.json | 2 +- node/src/index.ts | 12 ++++++++++-- node/src/test/test.ts | 9 +++++++++ 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/node/package-lock.json b/node/package-lock.json index 0c6767d4..64a3207f 100644 --- a/node/package-lock.json +++ b/node/package-lock.json @@ -1,13 +1,12 @@ { "name": "vectordb", - "version": "0.0.1", + "version": "0.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "vectordb", - "version": "0.0.1", - "hasInstallScript": true, + "version": "0.0.6", "license": "Apache-2.0", "dependencies": { "@apache-arrow/ts": "^12.0.0", diff --git a/node/package.json b/node/package.json index 54f9c521..bf542ceb 100644 --- a/node/package.json +++ b/node/package.json @@ -1,6 +1,6 @@ { "name": "vectordb", - "version": "0.0.5", + "version": "0.0.6", "description": " Serverless, low-latency vector database for AI applications", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/node/src/index.ts b/node/src/index.ts index 20eab7a2..b1644cb7 100644 --- a/node/src/index.ts +++ b/node/src/index.ts @@ -78,7 +78,7 @@ export class Table { * Create a search query to find the nearest neighbors of the given query vector. * @param queryVector The query vector. */ - search(queryVector: number[]): Query { + search (queryVector: number[]): Query { return new Query(this._tbl, queryVector) } } @@ -89,7 +89,7 @@ export class Table { export class Query { private readonly _tbl: any private readonly _query_vector: number[] - private readonly _limit: number + private _limit: number private readonly _refine_factor?: number private readonly _nprobes: number private readonly _columns?: string[] @@ -106,6 +106,14 @@ export class Query { this._where = undefined } + set limit (value: number) { + this._limit = value + } + + get limit (): number { + return this._limit + } + /** * Execute the query and return the results as an Array of Objects */ diff --git a/node/src/test/test.ts b/node/src/test/test.ts index 452d4ccb..80153aa6 100644 --- a/node/src/test/test.ts +++ b/node/src/test/test.ts @@ -66,6 +66,15 @@ describe('LanceDB client', function () { assert.approximately(results[0].vector[0], 3.1, 0.1) assert.approximately(results[0].vector[1], 4.1, 0.1) }) + + it('limits # of results', async function () { + const table = await tablePromise + const builder = table.search([0.1, 0.3]) + builder.limit = 1 + const results = await builder.execute() as MyResult[] + + assert.equal(results.length, 1) + }) }) }) })