@azure/cosmos
Version:
Microsoft Azure Cosmos DB Service Node.js SDK for NOSQL API
61 lines • 2.46 kB
TypeScript
import type { ClientContext } from "../ClientContext.js";
import type { DiagnosticNodeInternal } from "../diagnostics/DiagnosticNodeInternal.js";
import type { FeedOptions, PartitionedQueryExecutionInfo, QueryRange, Response } from "../request/index.js";
import type { ExecutionContext } from "./ExecutionContext.js";
import { SqlQuerySpec } from "./SqlQuerySpec.js";
/** @hidden */
export declare enum HybridQueryExecutionContextBaseStates {
uninitialized = "uninitialized",
initialized = "initialized",
draining = "draining",
done = "done"
}
export declare class HybridQueryExecutionContext implements ExecutionContext {
private clientContext;
private collectionLink;
private query;
private options;
private partitionedQueryExecutionInfo;
private correlatedActivityId;
private allPartitionsRanges;
private globalStatisticsExecutionContext;
private componentsExecutionContext;
private pageSize;
private state;
private globalStatisticsAggregator;
private emitRawOrderByPayload;
private buffer;
private DEFAULT_PAGE_SIZE;
private TOTAL_WORD_COUNT_PLACEHOLDER;
private HIT_COUNTS_ARRAY_PLACEHOLDER;
private TOTAL_DOCUMENT_COUNT_PLACEHOLDER;
private RRF_CONSTANT;
private logger;
private hybridSearchResult;
private uniqueItems;
private isSingleComponent;
constructor(clientContext: ClientContext, collectionLink: string, query: string | SqlQuerySpec, options: FeedOptions, partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo, correlatedActivityId: string, allPartitionsRanges: QueryRange[]);
nextItem(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>>;
hasMoreResults(): boolean;
fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>>;
private fetchMoreInternal;
private initialize;
private executeComponentQueries;
private processUniqueItems;
private applySkipAndTakeToBuffer;
private drain;
private drainOne;
private done;
private sortHybridSearchResultByRRFScore;
private drainSingleComponent;
private createComponentExecutionContexts;
private processComponentQueries;
private replacePlaceholdersWorkaroud;
private computeRRFScore;
private extractComponentWeights;
}
export interface ComponentWeight {
weight: number;
comparator: (x: number, y: number) => number;
}
//# sourceMappingURL=hybridQueryExecutionContext.d.ts.map