/** * CyborgDB Service * REST API for CyborgDB: The Confidential Vector Database * * The version of the OpenAPI document: 0.17.1.dev16 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ /** * Request model for performing a similarity search in the encrypted index. * * Inherits: * IndexOperationRequest: Includes `index_name` and `index_key`. * HybridQueryParams: `text` and the fusion knobs that turn this into a * hybrid (BM25 + vector) query. A query vector is still required * even when `text` is set. * * Attributes: * query_vectors (Optional[List[float]]): The vector used for the similarity search. * query_contents (Optional[str]): Text-based content used for semantic search. * top_k (Optional[int]): Number of nearest neighbors to return for each query. Defaults to 100. * n_probes (Optional[int]): Number of lists to probe during the query. Defaults to auto. * greedy (Optional[bool]): Whether to use greedy search. Defaults to False. * rerank_mult (Optional[int]): Multiplier for stage 1 retrieval in reranking indexes. Defaults to 10. * filters (Optional[Dict[str, Any]]): Metadata filters as a JSON-like * dictionary (see `FILTERS_DESCRIPTION` for the operator set). * Defaults to {}. * include (List[str]): List of additional fields to include in the response. Defaults to `[]` (only IDs are returned). * @export * @interface QueryRequest */ export interface QueryRequest { /** * Query text for a BM25 full-text leg. Requires an index with at least one full_text field. Omitted/empty leaves the query text-free. * @type {string} * @memberof QueryRequest */ text?: string | null; /** * full_text fields the text leg searches; omitted means all of them. Naming a non-full_text field raises. * @type {Array} * @memberof QueryRequest */ textFields?: Array | null; /** * Per-field weights on the summed per-field BM25 scores, parallel to the searched fields. Omitted means 1.0 each. * @type {Array} * @memberof QueryRequest */ textFieldWeights?: Array | null; /** * Require every query term to match (AND) instead of any (OR, the default). * @type {boolean} * @memberof QueryRequest */ requireAllTerms?: boolean | null; /** * Leg blend in [0, 1]: 0 = pure BM25, 1 = pure vector; omitted means 0.5. An exact endpoint skips the dead leg's retrieval. * @type {number} * @memberof QueryRequest */ alpha?: number | null; /** * RRF rank-smoothing constant (> 0; omitted means 60). Higher rewards agreement further down each leg's list. * @type {number} * @memberof QueryRequest */ rrfK?: number | null; /** * Per-leg candidate depth as a multiple of top_k (>= 1; omitted means 3), so each leg looks deeper than the final cut. * @type {number} * @memberof QueryRequest */ windowMult?: number | null; /** * ID name * @type {string} * @memberof QueryRequest */ indexName: string; /** * 32-byte encryption key as hex string. Required for SDK-supplied indexes; must be omitted for KMS-backed indexes (the service resolves the KEK via the index's KMSBlob). * @type {string} * @memberof QueryRequest */ indexKey?: string | null; /** * * @type {Array} * @memberof QueryRequest */ queryVectors?: Array | null; /** * * @type {string} * @memberof QueryRequest */ queryContents?: string | null; /** * * @type {number} * @memberof QueryRequest */ topK?: number | null; /** * * @type {number} * @memberof QueryRequest */ nProbes?: number | null; /** * * @type {number} * @memberof QueryRequest */ rerankMult?: number | null; /** * * @type {boolean} * @memberof QueryRequest */ greedy?: boolean | null; /** * Metadata filters as a JSON object. Operators: `$eq`, `$ne`, `$in`, `$nin`, `$exists`, `$gt`, `$gte`, `$lt`, `$lte`, `$regex`, `$contains`, combined with `$and` / `$or` / `$nor` / `$not`. Filtering works on any metadata field; the index's `metadata_schema` only decides how a filter is resolved — fields marked `filterable` (the default) are answered from the inverted index, and `$regex` / `$contains` are answered from the regex dictionary on `pattern` fields. Anything else falls back to a post-filter over the decrypted metadata, which is correct but slower. Dates have no native type: store and filter them as epoch milliseconds. * @type {{ [key: string]: any; }} * @memberof QueryRequest */ filters?: { [key: string]: any; } | null; /** * * @type {Array} * @memberof QueryRequest */ include?: Array; } /** * Check if a given object implements the QueryRequest interface. */ export declare function instanceOfQueryRequest(value: object): value is QueryRequest; export declare function QueryRequestFromJSON(json: any): QueryRequest; export declare function QueryRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): QueryRequest; export declare function QueryRequestToJSON(json: any): QueryRequest; export declare function QueryRequestToJSONTyped(value?: QueryRequest | null, ignoreDiscriminator?: boolean): any;