Interface GenericFindAndRerankOptions

Overview

The options for a generic findAndRerank command performed on the Data API.

Example

const results = await collection.findAndRerank({
category: 'books',
}, {
sort: { $hybrid: { $vectorize: 'fantasy novels', $lexical: 'dragons' } },
limit: 5,
timeout: 10000,
});

Builder methods

You can also use fluent builder methods on the cursor:

Example

const cursor = collection.findAndRerank({ category: 'books' })
.sort({ $hybrid: { $vectorize: 'fantasy novels', $lexical: 'dragons' } })
.limit(5)
.includeScores(true);

const results = await cursor.toArray();

See

  • CollectionFindAndRerankOptions
  • TableFindAndRerankOptions
interface GenericFindAndRerankOptions {
    hybridLimits?: number | Record<string, number>;
    includeScores?: boolean;
    includeSortVector?: boolean;
    limit?: number;
    maxTimeMS?: "ERROR: The `maxTimeMS` option is no longer available; the timeouts system has been overhauled, and timeouts should now be set using `timeout`";
    projection?: Projection;
    rerankOn?: string;
    rerankQuery?: string;
    sort?: HybridSort;
    timeout?: number | Pick<Partial<TimeoutDescriptor>, "requestTimeoutMs" | "generalMethodTimeoutMs">;
}

Hierarchy (view full)

  • CommandOptions<{
        timeout: "generalMethodTimeoutMs";
    }>
    • GenericFindAndRerankOptions

Properties

hybridLimits?: number | Record<string, number>

The maximum number of records to retrieve in total or from each source during hybrid search.

See FindAndRerankCursor.hybridLimits for more details and examples.

includeScores?: boolean

If true, include the scores in the results via RerankedResult.scores.

See FindAndRerankCursor.includeScores for more details and examples.

includeSortVector?: boolean

If true, the sort vector will be available through await cursor.getSortVector() and await cursor.fetchNextPage().

See FindAndRerankCursor.includeSortVector for more details and examples.

limit?: number

The maximum number of records to return in the lifetime of the cursor.

See FindAndRerankCursor.limit for more details and examples.

maxTimeMS?: "ERROR: The `maxTimeMS` option is no longer available; the timeouts system has been overhauled, and timeouts should now be set using `timeout`"

This temporary error-ing property exists for migration convenience, and will be removed in a future version.

Deprecated

  • The maxTimeMS option is no longer available; the timeouts system has been overhauled, and timeouts should now be set using timeout, and defaults in timeoutDefaults. You may generally Ctrl+R replace maxTimeMS with timeout to retain the same behavior.
projection?: Projection

The projection to apply to the returned records, to specify only a select set of fields to return.

See FindAndRerankCursor.project for more details and examples.

rerankOn?: string

Specifies the document field to use for the reranking step.

See FindAndRerankCursor.rerankOn for more details and examples.

rerankQuery?: string

TSpecifies the query text to use for the reranking step.

See FindAndRerankCursor.rerankQuery for more details and examples.

sort?: HybridSort

The order in which to apply the update if the filter selects multiple records.

See FindAndRerankCursor.sort for more details and examples.

timeout?: number | Pick<Partial<TimeoutDescriptor>, "requestTimeoutMs" | "generalMethodTimeoutMs">
Overview

Lets you specify timeouts for individual methods, in two different formats:

  • A subtype of TimeoutDescriptor, which lets you specify the timeout for specific categories.
  • A number, which specifies the "happy path" timeout for the method.
    • In single-call methods, this sets both the request & overall method timeouts.
    • In multi-call methods, this sets the overall method timeout (request timeouts are kept as default).

Example

// Both `requestTimeoutMs` and `generalMethodTimeoutMs` are set to 1000ms.
await coll.insertOne({ ... }, { timeout: 1000 });

// `requestTimeoutMs` is left as default, `generalMethodTimeoutMs` is set to 2000ms.
await coll.insertOne({ ... }, { timeout: { generalMethodTimeoutMs: 2000 } });

// Both `requestTimeoutMs` and `generalMethodTimeoutMs` are set to 2000ms.
await coll.insertMany([...], {
timeout: { requestTimeoutMs: 2000, generalMethodTimeoutMs: 2000 },
});

Example

// `requestTimeoutMs` is left as default, `generalMethodTimeoutMs` is set to 2000ms.
await coll.insertMany([...], { timeout: 2000 });

// `requestTimeoutMs` is left as default, `generalMethodTimeoutMs` is set to 2000ms.
await coll.insertMany([...], { timeout: { generalMethodTimeoutMs: 2000 } });

// Both `requestTimeoutMs` and `generalMethodTimeoutMs` are set to 2000ms.
await coll.insertMany([...], {
timeout: { requestTimeoutMs: 2000, generalMethodTimeoutMs: 2000 },
});

See TimeoutDescriptor for much more information.

See

TimeoutDescriptor