Skip to content

searchServer

Search documents in a collection with optional pagination and total count.

Pass paginationOpts: { ..., totalDocs: true } to also count matching search results on the first page (cursor: null) only — same take(countLimit + 1) cap and totalDocs/totalDocsCapped contract as find (Design Decision 35); see its own JSDoc for the full explanation.

args

Search arguments including query, filters, pagination, and count options

// With pagination and a first-page count
const result = await search({
ctx,
collection: "posts",
query: "react hooks",
searchIndexName: "search_posts",
searchField: "title",
paginationOpts: { numItems: 100, cursor: null, totalDocs: true },
});
// result: { page: [...], continueCursor: "...", isDone: false, totalDocs: 42, totalDocsCapped: false }

searchServer<DataModel, TCollectionSlug, TPopulate, D>(args): Promise<DocReturnItem<TCollectionSlug, TPopulate, D>[]>

Defined in: packages/core/src/collections/api/search/server.ts:124

DataModel extends GenericDataModel

TCollectionSlug extends string

TPopulate extends PopulateShape<TCollectionSlug> = Record<string, never>

D extends number = 0

SearchServerArgs<DataModel, TCollectionSlug, TPopulate, D> & object

Promise<DocReturnItem<TCollectionSlug, TPopulate, D>[]>

searchServer<DataModel, TCollectionSlug, TPopulate, D>(args): Promise<PaginationResult<DocReturnItem<TCollectionSlug, TPopulate, D>>>

Defined in: packages/core/src/collections/api/search/server.ts:138

DataModel extends GenericDataModel

TCollectionSlug extends string

TPopulate extends PopulateShape<TCollectionSlug> = Record<string, never>

D extends number = 0

SearchServerArgs<DataModel, TCollectionSlug, TPopulate, D> & object

Promise<PaginationResult<DocReturnItem<TCollectionSlug, TPopulate, D>>>