annoy-node
Version:
Annoy Indexing binidings for node.js
36 lines (32 loc) • 922 B
text/typescript
const addon = require("bindings")("annoy-node.node");
export enum Metric {
ANGULAR = 1,
EUCLIDEAN,
MANHATTAN,
DOTPRODUCT,
}
export interface AnnoyIndex {
new (vectorSize: number, metric: Metric): AnnoyIndex;
/**
*
* @param item interger number
* @param data Float64Array to be added in annoy index
*/
addItem(item: Number, data: Float32Array): void;
build(treeSize: Number, threads?: Number): void;
save(path: string): void;
load(path: string): void;
unload(): void;
get_nns_by_item(
item: Number,
n: Number,
includeDistances: boolean
): { neighbours: Array<Int32Array>; distances?: Array<Int32Array> };
get_nns_by_vector(
item: Float32Array,
n: Number,
includeDistances: boolean
): { neighbours: Array<Int32Array>; distances?: Array<Int32Array> };
}
const annoy: AnnoyIndex = addon.AnnoyIndex;
export default annoy;