UNPKG

@leolee9086/hnsw

Version:

JavaScript HNSW (Hierarchical Navigable Small World) 向量索引库,支持动态操作和泛型搜索

58 lines (54 loc) 1.48 kB
interface HNSWConfig$1<T> { M: number; efConstruction: number; distanceFunction: (a: T, b: T) => number; distanceToQuery?: (query: T, target: T) => number; } interface Neighbor$1 { idx: number; distance: number; } interface HNSWIndex$1<T> { insertNode: (vector: T) => void; search: (queryVector: T, k: number, efSearch?: number) => Neighbor$1[]; deleteNode: (nodeIdx: number) => boolean; getStats: () => { nodeCount: number; activeNodeCount: number; deletedNodeCount: number; entryPoint: { idx: number; level: number; }; }; } declare function createHNSWIndex$1<T>(config: HNSWConfig$1<T>): HNSWIndex$1<T>; interface HNSWConfig { M: number; efConstruction: number; metricType: 'cosine' | 'l2'; } interface Neighbor { idx: number; distance: number; } interface HNSWIndex { insertNode: (vector: number[]) => void; search: (queryVector: number[], k: number, efSearch?: number) => Neighbor[]; deleteNode: (nodeIdx: number) => boolean; getStats: () => { nodeCount: number; activeNodeCount: number; deletedNodeCount: number; entryPoint: { idx: number; level: number; }; }; } declare function createHNSWIndex(config: HNSWConfig): HNSWIndex; declare const hnsw: { createIndex: typeof createHNSWIndex; createIndexGeneric: typeof createHNSWIndex$1; }; export { hnsw };