UNPKG

abt-universal-search

Version:

Enterprise-grade Universal Search System with cross-platform compatibility, performance optimization, and security hardening

76 lines 2.58 kB
import { IInResultSearch, SearchWithinConfig, SearchIndex, SearchResult, SearchHighlight } from '../types/Virtualization'; export interface SearchIndexConfig { fields: string[]; caseSensitive: boolean; stemming: boolean; stopWords: string[]; minLength: number; maxResults: number; } export interface SearchPerformanceMetrics { totalSearches: number; averageSearchTime: number; indexSize: number; cacheHitRate: number; lastRebuildTime: number; } export interface InResultSearchEvents<T = any> { onSearchStart?: (query: string) => void; onSearchComplete?: (query: string, results: SearchResult<T>[], timeMs: number) => void; onIndexUpdate?: (itemCount: number) => void; onHighlight?: (text: string, highlights: SearchHighlight[]) => void; } export declare class FastSearchIndex<T = any> implements SearchIndex<T> { private items; private invertedIndex; private fieldCache; private config; constructor(config?: Partial<SearchIndexConfig>); add(item: T, index: number): void; remove(index: number): void; update(item: T, index: number): void; search(query: string): SearchResult<T>[]; private calculateDetailedScore; private scoreFieldMatch; private findTokenMatches; private calculateTokenScore; private extractTextFromField; private indexText; private tokenize; private stem; clear(): void; getSize(): number; getIndexStats(): { itemCount: number; indexSize: number; averageTermsPerItem: number; memoryEstimate: number; }; private estimateMemoryUsage; } export declare class InResultSearch<T = any> implements IInResultSearch<T> { private config; private index; private events; private performanceMetrics; private searchCache; constructor(config?: Partial<SearchWithinConfig>, events?: InResultSearchEvents<T>); search(query: string, items: T[]): SearchResult<T>[]; private getCacheKey; private shouldRebuildIndex; private fallbackSearch; private scoreItemMatch; private extractFieldText; private extractHighlights; private updatePerformanceMetrics; private trimCache; highlight(text: string, query: string): string; setConfig(config: SearchWithinConfig): void; getIndex(): SearchIndex<T> | null; updateIndex(items: T[]): void; clearIndex(): void; getPerformanceMetrics(): SearchPerformanceMetrics; preWarmCache(queries: string[], items: T[]): void; dispose(): void; } //# sourceMappingURL=InResultSearch.d.ts.map