INNER CODE UNIT · TypeScript
knnSearch
margelo/react-native-nitro-sqlite · packages/react-native-nitro-sqlite-vec/src/index.ts:94
export function knnSearch(
db: NitroSQLiteConnection,
table: string,
query: string | number[],
k: number,
options?: KnnSearchOptions,
): KnnMatch[] {
const column = options?.column ?? 'embedding'
const vector = typeof query === 'string' ? query : JSON.stringify(query)
const result = db.execute(
`SELECT rowid, distance FROM ${table} WHERE ${column} MATCH ? AND k = ? ORDER BY distance`,
[vector, k],
)
return (result.rows?._array ?? []) as unknown as KnnMatch[]
}