UNPKG

solrkit

Version:

![Build Status](https://travis-ci.org/garysieling/solrkit.svg?branch=master) ![Dependencies](https://david-dm.org/garysieling/solrkit/status.svg)

221 lines (220 loc) 7.76 kB
import { SolrResponse } from './Data'; import { FacetValue } from '../component/facet/FacetTypes'; declare enum UrlParams { ID = "id", QUERY = "query", FQ = "fq", START = "start", TYPE = "type", HL = "highlight", } interface SavedSearch { type?: 'QUERY' | 'MLT' | 'DETAILS'; query?: string; boost?: string; sort?: string[]; facets?: { [key: string]: string[]; }; } interface SearchParams extends SavedSearch { start?: number; } declare type QueryParam = string | number; declare type NamespacedUrlParam = [UrlParams, QueryParam]; declare type UrlFragment = [UrlParams | NamespacedUrlParam, QueryParam | [string, QueryParam[]]] | null; declare class QueryBeingBuilt { solrUrlFragment: string; appUrlFragment: UrlFragment; constructor(solrUrlFragment: string, appUrlFragment: UrlFragment); } declare class SolrQueryBuilder<T> { searchResponse?: SolrResponse<T>; previous?: SolrQueryBuilder<T>; op: () => QueryBeingBuilt; constructor(op: () => QueryBeingBuilt, previous?: SolrQueryBuilder<T>); get(id: QueryParam): SolrQueryBuilder<T>; select(): SolrQueryBuilder<T>; moreLikeThis(handler: string, col: string, id: QueryParam, props: MoreLikeThisProps): SolrQueryBuilder<T>; start(start: number): SolrQueryBuilder<T>; jsonp(callback: string): SolrQueryBuilder<T>; export(): SolrQueryBuilder<T>; qt(qt: string): SolrQueryBuilder<T>; q(searchFields: string[], value: QueryParam): SolrQueryBuilder<T>; bq(query: string): SolrQueryBuilder<T>; fq(field: string, values: QueryParam[]): SolrQueryBuilder<T>; highlight(query: HighlightQuery): SolrQueryBuilder<T> | null; fl(fields: QueryParam[]): SolrQueryBuilder<T>; requestFacet(field: string): SolrQueryBuilder<T>; rows(rows: number): SolrQueryBuilder<T>; sort(fields: string[]): SolrQueryBuilder<T>; schema(): SolrQueryBuilder<T>; construct(): [string, Array<UrlFragment>]; buildCurrentParameters(): SearchParams; buildSolrUrl(): string; } interface PaginationData { numFound: number; start: number; pageSize: number; } declare type QueryEvent<T> = (object: T[], paging: PaginationData) => void; declare type FacetEvent = (object: FacetValue[]) => void; declare type ErrorEvent = (error: object) => void; declare type GetEvent<T> = (object: T) => void; declare type MoreLikeThisEvent<T> = (object: T[]) => void; interface SolrGet<T> { doGet: (id: string | number) => void; onGet: (cb: GetEvent<T>) => void; } interface SolrUpdate { doUpdate: (id: string | number, attr: string, value: string) => void; } interface SolrQuery<T> { doQuery: (q: GenericSolrQuery) => void; doExport: (q: GenericSolrQuery) => void; onQuery: (cb: QueryEvent<T>) => void; registerFacet: (facet: string[]) => (cb: FacetEvent) => void; refine: (q: GenericSolrQuery) => SolrQuery<T>; } interface SolrHighlight<T> { onHighlight: (cb: QueryEvent<T>) => void; } interface SolrMoreLikeThis<T> { doMoreLikeThis: (id: string | number, props: MoreLikeThisProps) => void; onMoreLikeThis: (cb: MoreLikeThisEvent<T>) => void; } interface SolrTransitions { clearEvents: () => void; getCoreConfig: () => SolrConfig; getNamespace: () => string; getCurrentParameters: () => SearchParams; stateTransition: (v: SearchParams) => void; } declare type SolrSchemaFieldDefinition = { type: string; schema: string; dynamicBase: string; docs: number; }; declare type SolrSchemaDefinition = { responseHeader: { status: number; QTime: number; }; index: { numDocs: number; maxDoc: number; deletedDocs: number; indexHeapUsageBytes: number; version: number; segmentCount: number; current: boolean; hasDeletions: boolean; directory: string; segmentsFile: string; segmentsFileSizeInBytes: number; userData: { commitTimeMSec: string; commitCommandVer: string; }; lastModified: string; }; fields: { [key: string]: SolrSchemaFieldDefinition; }; info: object; }; interface SolrSchema { getSchema: () => SolrSchemaDefinition; } interface GenericSolrQuery { query: string; boost?: string; sort?: string[]; rows?: number; } interface HighlightQuery { method?: 'unified' | 'original' | 'fastVector' | 'postings'; fields: string[]; query?: string; qparser?: string; requireFieldMatch?: boolean; usePhraseHighlighter?: boolean; highlightMultiTerm?: boolean; snippets?: number; fragsize?: number; pre?: string; post?: string; encoder?: string; maxAnalyzedChars?: number; } interface SolrConfig { url: string; core: string; primaryKey: string; defaultSearchFields: string[]; fields: string[]; pageSize: number; prefix: string; fq?: [string, string]; qt?: string; } interface MoreLikeThisProps { fl: string[]; mintf: number; mindf: number; maxdf: number; minwl: number; maxwl: number; maxqt: number; maxntp: number; boost: number; qf: string[]; } declare class SolrCore<T> implements SolrTransitions { solrConfig: SolrConfig; private events; private currentParameters; private query?; private getCache; private mltCache; private refinements; constructor(solrConfig: SolrConfig); clearEvents(): void; getCoreConfig(): SolrConfig; onQuery(op: QueryEvent<T>): void; refine(query: GenericSolrQuery): SolrCore<T>; registerFacet(facetNames: string[]): (cb: FacetEvent) => void; onError(op: ErrorEvent): void; doMoreLikeThis(id: string | number, mltProps: MoreLikeThisProps): void; getNamespace(): string; prefetchMoreLikeThis(id: string | number, mltProps: MoreLikeThisProps, prefetch: boolean): void; onMoreLikeThis(op: (v: T[]) => void): void; onGet(op: GetEvent<T>): void; doGet(id: string | number): void; doQuery(desiredQuery: GenericSolrQuery, cb?: (qb: SolrQueryBuilder<{}>) => SolrQueryBuilder<{}>): void; doUpdate(id: string | number, attr: string, value: string): void; doExport(): void; next(op: (event: SolrQueryBuilder<T>) => SolrQueryBuilder<T>): void; stateTransition(newState: SearchParams): void; getCurrentParameters(): SearchParams; } declare class DataStore { cores: { [keys: string]: SolrCore<object>; }; clearEvents(): void; registerCore<T extends object>(config: SolrConfig): SolrCore<T>; } declare class AutoConfiguredDataStore extends DataStore { private core; private facets; private fields; getCore(): SolrCore<object> & SolrGet<object> & SolrQuery<object>; getFacets(): string[]; getFields(): string[]; autoconfigure<T extends object>(config: SolrConfig, complete: () => void, useFacet: (facet: string) => boolean): void; } declare type SingleComponent<T> = (data: T, index?: number) => object | null | undefined; export { MoreLikeThisProps, ErrorEvent, UrlParams, QueryParam, HighlightQuery, NamespacedUrlParam, UrlFragment, PaginationData, SavedSearch, SearchParams, QueryBeingBuilt, SolrQueryBuilder, SingleComponent, MoreLikeThisEvent, GetEvent, GenericSolrQuery, QueryEvent, FacetEvent, SolrConfig, SolrGet, SolrUpdate, SolrMoreLikeThis, SolrQuery, SolrHighlight, SolrTransitions, SolrCore, SolrSchemaFieldDefinition, SolrSchemaDefinition, SolrSchema, DataStore, AutoConfiguredDataStore };