UNPKG

odata-sqlite-search

Version:

OData v4 $search functionality for SQLite - Full-text search with FTS5 and TDD

50 lines 3.44 kB
export interface SearchResult { sql: string; parameters: any[]; } export interface FTSIndexResult { sql: string; parameters: any[]; } export interface SearchConfig { table: string; ftsTable: string; columns: string[]; } export interface MultiTableSearchResult { queries: SearchResult[]; } export interface RankingWeights { [column: string]: number; } export interface ISearchProvider { createFTSIndex(table: string, indexName: string, columns: string[]): FTSIndexResult; buildSearchQuery(searchTerm: string, ftsTable: string, searchableColumns: string[]): SearchResult; buildSearchQueryWithRanking(searchTerm: string, ftsTable: string, searchableColumns: string[]): SearchResult; buildSearchQueryWithCustomRanking(searchTerm: string, ftsTable: string, searchableColumns: string[], weights: RankingWeights): SearchResult; buildSearchQueryWithThreshold(searchTerm: string, ftsTable: string, searchableColumns: string[], minRelevance: number): SearchResult; buildSearchWithFilter(searchTerm: string, ftsTable: string, searchableColumns: string[], existingFilter: string): SearchResult; buildMultiTableSearch(searchTerm: string, searchConfig: SearchConfig[]): MultiTableSearchResult; buildUnifiedSearch(searchTerm: string, searchConfig: SearchConfig[]): SearchResult; buildOptimizedSearchQuery(searchTerm: string, ftsTable: string, searchableColumns: string[]): SearchResult; } export declare class SearchProvider implements ISearchProvider { createFTSIndex(table: string, indexName: string, columns: string[]): FTSIndexResult; buildSearchQuery(searchTerm: string, ftsTable: string, searchableColumns: string[]): SearchResult; buildSearchQueryWithRanking(searchTerm: string, ftsTable: string, searchableColumns: string[]): SearchResult; buildSearchQueryWithCustomRanking(searchTerm: string, ftsTable: string, searchableColumns: string[], weights: RankingWeights): SearchResult; buildSearchQueryWithThreshold(searchTerm: string, ftsTable: string, searchableColumns: string[], minRelevance: number): SearchResult; buildSearchWithFilter(searchTerm: string, ftsTable: string, searchableColumns: string[], existingFilter: string): SearchResult; buildMultiTableSearch(searchTerm: string, searchConfig: SearchConfig[]): MultiTableSearchResult; buildUnifiedSearch(searchTerm: string, searchConfig: SearchConfig[]): SearchResult; buildOptimizedSearchQuery(searchTerm: string, ftsTable: string, searchableColumns: string[]): SearchResult; private validateSearchInputs; buildPhraseSearch(phrase: string, ftsTable: string, searchableColumns: string[]): SearchResult; buildWildcardSearch(term: string, ftsTable: string, searchableColumns: string[]): SearchResult; buildBooleanSearch(expression: string, ftsTable: string, searchableColumns: string[]): SearchResult; buildProximitySearch(term1: string, term2: string, distance: number, ftsTable: string, searchableColumns: string[]): SearchResult; buildSearchWithLimit(searchTerm: string, ftsTable: string, searchableColumns: string[], limit: number): SearchResult; buildSearchWithOffset(searchTerm: string, ftsTable: string, searchableColumns: string[], offset: number): SearchResult; buildSearchWithPagination(searchTerm: string, ftsTable: string, searchableColumns: string[], limit: number, offset: number): SearchResult; } //# sourceMappingURL=search-provider.d.ts.map