hikma-engine
Version:
Code Knowledge Graph Indexer - A sophisticated TypeScript-based indexer that transforms Git repositories into multi-dimensional knowledge stores for AI agents
104 lines • 3.24 kB
TypeScript
/**
* @file Enhanced search functionality specifically designed for the embedding_nodes table.
* Provides semantic vector search and metadata-based queries using the unified embedding storage.
*/
import { ConfigManager } from '../config';
/**
* Enhanced search result interface for embedding_nodes table.
*/
export interface EmbeddingSearchResult {
node: {
id: string;
nodeId: string;
nodeType: string;
filePath: string;
sourceText: string;
embedding?: number[];
};
similarity: number;
rank: number;
}
/**
* Search options for embedding-based search.
*/
export interface EmbeddingSearchOptions {
limit?: number;
nodeTypes?: string[];
minSimilarity?: number;
filePaths?: string[];
includeEmbedding?: boolean;
}
/**
* Metadata filters for embedding nodes.
*/
export interface EmbeddingMetadataFilters {
nodeType?: string;
filePath?: string;
fileExtension?: string;
sourceTextContains?: string;
}
/**
* Enhanced search service specifically for embedding_nodes table.
*/
export declare class EnhancedSearchService {
private embeddingService;
private sqliteClient;
private config;
private logger;
private isInitialized;
constructor(config: ConfigManager);
/**
* Initializes the enhanced search service.
*/
initialize(): Promise<void>;
/**
* Performs semantic search using vector embeddings on embedding_nodes table.
*/
semanticSearch(query: string, options?: EmbeddingSearchOptions): Promise<EmbeddingSearchResult[]>;
/**
* Performs text-based search when vector search is not available.
*/
textBasedSearch(query: string, options?: EmbeddingSearchOptions): Promise<EmbeddingSearchResult[]>;
/**
* Performs metadata-based search on embedding_nodes.
*/
metadataSearch(filters: EmbeddingMetadataFilters, options?: EmbeddingSearchOptions): Promise<EmbeddingSearchResult[]>;
/**
* Performs hybrid search combining semantic and metadata filters.
*/
hybridSearch(query: string, filters?: EmbeddingMetadataFilters, options?: EmbeddingSearchOptions): Promise<EmbeddingSearchResult[]>;
/**
* Gets statistics about the embedding_nodes table.
*/
getEmbeddingStats(): Promise<{
totalNodes: number;
nodeTypeBreakdown: Record<string, number>;
filePathBreakdown: Record<string, number>;
embeddingCoverage: number;
}>;
/**
* Finds similar nodes to a given node ID.
*/
findSimilarNodes(nodeId: string, options?: EmbeddingSearchOptions): Promise<EmbeddingSearchResult[]>;
/**
* Performs vector search with a given embedding.
*/
private vectorSearchWithEmbedding;
/**
* Verifies that the embedding_nodes table exists and has the expected structure.
*/
private verifyEmbeddingTable;
/**
* Deserializes embedding from database blob format.
*/
private deserializeEmbedding;
/**
* Filter out test files from search results
*/
private filterOutTestFiles;
/**
* Disconnects from the database.
*/
disconnect(): Promise<void>;
}
//# sourceMappingURL=enhanced-search-service.d.ts.map