Open source vector database with HNSW indexing, graph relationships, and metadata facets. Features CLI with professional augmentation registry integration for discovering extensions and capabilities.
97 lines
2.8 KiB
TypeScript
97 lines
2.8 KiB
TypeScript
/**
|
|
* Optimized HNSW Index for Large-Scale Vector Search
|
|
* Implements dynamic parameter tuning and performance optimizations
|
|
*/
|
|
import { DistanceFunction, HNSWConfig, Vector, VectorDocument } from '../coreTypes.js';
|
|
import { HNSWIndex } from './hnswIndex.js';
|
|
export interface OptimizedHNSWConfig extends HNSWConfig {
|
|
dynamicParameterTuning?: boolean;
|
|
targetSearchLatency?: number;
|
|
targetRecall?: number;
|
|
maxNodes?: number;
|
|
memoryBudget?: number;
|
|
diskCacheEnabled?: boolean;
|
|
compressionEnabled?: boolean;
|
|
performanceTracking?: boolean;
|
|
adaptiveEfSearch?: boolean;
|
|
levelMultiplier?: number;
|
|
seedConnections?: number;
|
|
pruningStrategy?: 'simple' | 'diverse' | 'hybrid';
|
|
}
|
|
interface PerformanceMetrics {
|
|
averageSearchTime: number;
|
|
averageRecall: number;
|
|
memoryUsage: number;
|
|
indexSize: number;
|
|
apiCalls: number;
|
|
cacheHitRate: number;
|
|
}
|
|
interface DynamicParameters {
|
|
efSearch: number;
|
|
efConstruction: number;
|
|
M: number;
|
|
ml: number;
|
|
}
|
|
/**
|
|
* Optimized HNSW Index with dynamic parameter tuning for large datasets
|
|
*/
|
|
export declare class OptimizedHNSWIndex extends HNSWIndex {
|
|
private optimizedConfig;
|
|
private performanceMetrics;
|
|
private dynamicParams;
|
|
private searchHistory;
|
|
private parameterTuningInterval?;
|
|
constructor(config?: Partial<OptimizedHNSWConfig>, distanceFunction?: DistanceFunction);
|
|
/**
|
|
* Optimized search with dynamic parameter adjustment
|
|
*/
|
|
search(queryVector: Vector, k?: number, filter?: (id: string) => Promise<boolean>): Promise<Array<[string, number]>>;
|
|
/**
|
|
* Dynamically adjust efSearch based on performance requirements
|
|
*/
|
|
private adjustEfSearch;
|
|
/**
|
|
* Record search performance metrics
|
|
*/
|
|
private recordSearchMetrics;
|
|
/**
|
|
* Check memory usage and trigger optimizations
|
|
*/
|
|
private checkMemoryUsage;
|
|
/**
|
|
* Compress index to reduce memory usage (placeholder)
|
|
*/
|
|
private compressIndex;
|
|
/**
|
|
* Start automatic parameter tuning
|
|
*/
|
|
private startParameterTuning;
|
|
/**
|
|
* Automatic parameter tuning based on performance metrics
|
|
*/
|
|
private tuneParameters;
|
|
/**
|
|
* Get optimized configuration recommendations for current dataset size
|
|
*/
|
|
getOptimizedConfig(): OptimizedHNSWConfig;
|
|
/**
|
|
* Get current performance metrics
|
|
*/
|
|
getPerformanceMetrics(): PerformanceMetrics & {
|
|
currentParams: DynamicParameters;
|
|
searchHistorySize: number;
|
|
};
|
|
/**
|
|
* Apply optimized bulk insertion strategy
|
|
*/
|
|
bulkInsert(items: VectorDocument[]): Promise<string[]>;
|
|
/**
|
|
* Optimize insertion order to improve index quality
|
|
*/
|
|
private optimizeInsertionOrder;
|
|
/**
|
|
* Cleanup resources
|
|
*/
|
|
destroy(): void;
|
|
}
|
|
export {};
|