/** * Reciprocal Rank Fusion (RRF) 기반 하이브리드 검색 * * FTS, Vector, Recency 결과를 통합하여 최적의 검색 결과 제공. * C-6: 카테고리/티어 부스트, ACT-R recency decay, 가중치 설정 지원. */ import type { Memory, MemorySearchResult } from '../types/index.js'; export interface RankedResult { memory: Memory; score: number; sources: Array<{ type: 'fts' | 'vector' | 'recency' | 'expand'; rank: number; }>; parentId?: string; } export interface RankerWeights { fts: number; vector: number; recency: number; } export interface RankerOptions { k?: number; weights?: Partial; categoryBoost?: boolean; tierBoost?: boolean; recencyDecay?: boolean; } /** * RRF (Reciprocal Rank Fusion) 기반 하이브리드 랭커 * * RRF 공식: score = sum(weight_i / (k + rank_i)) for each source * - k: RRF 파라미터 (기본: 60) - 낮을수록 상위 순위에 더 높은 가중치 * - rank: 각 소스에서의 순위 (1부터 시작) */ export declare class HybridRanker { private k; private weights; private categoryBoost; private tierBoost; private recencyDecay; constructor(kOrOptions?: number | RankerOptions); /** * FTS + Vector + Recency 결과를 RRF로 통합 */ rank(ftsResults: MemorySearchResult[], vectorResults: MemorySearchResult[], recencyResults?: Memory[]): RankedResult[]; private addScore; private getHoursAgo; } /** * Compute LSH hash for embedding pre-filtering (C-4) * SimHash-like: pseudo-random hyperplane signs -> hex string * * WARNING: Hash collision 가능성 있음 — 동일 hash라도 실제 유사도 검증 필수. * bits=32 기준 collision 확률 ~1/2^32이나, 대규모 corpus(1M+)에서는 false-positive 발생 가능. * 따라서 이 함수는 pre-filter 목적으로만 사용하고, 최종 결과는 cosineSimilarity로 재검증. */ export declare function computeEmbeddingHash(embedding: number[], bits?: number): string; //# sourceMappingURL=ranker.d.ts.map