search module provides server-side access to Sublay’s search and AI capabilities. Use it to build search APIs, power recommendation engines, or answer natural-language questions about your content.
searchContent
Searches entities by full-text query, optionally scoped to a space.The search query string.
Which content types to search: any of
"entity", "comment", "message".Scope the search to a specific space.
Only applies with
spaceId. When true, the search also covers every space nested under it — the whole subtree at any depth — not just the named space. Ignored without spaceId.Scope the search to a specific conversation.
Maximum number of results to return.
Promise<PaginatedResponse<Entity>>
searchUsers
Searches for users by name or username.The search query string.
Maximum number of results to return.
Promise<PaginatedResponse<User>>
searchSpaces
Searches for spaces by name or description.The search query string.
Maximum number of results to return.
Promise<PaginatedResponse<Space>>
askContent
Asks a natural-language question about your content and returns an AI-generated answer with source references.This feature requires semantic search to be enabled for your project. See the Semantic Search & AI guide for setup instructions.
The natural-language question to answer.
Which content types to draw from: any of
"entity", "comment", "message".Scope the search to content within a specific space.
Only applies with
spaceId. When true, the context lookup also covers every space nested under it — the whole subtree at any depth — so you can ask across a community and all of its channels at once. Ignored without spaceId.Scope the search to a specific conversation.
Maximum number of sources to draw from.
Promise<{ answer: string; sources?: Array<{ entityId: string; title: string | null }> }>
matchUsers
Matches people by activity-derived interest facets, inpassive mode (against a given user’s own facets) or directed mode (against a free-text topic). See the Interest Matching guide for setup and the model.
Requires a paid plan, the
ai-search and interest-matching bundles, and interestMatching.enabled on the project."passive" or "directed".The topic to match against. Required in
directed mode; rejected in passive mode.Maximum number of matched users. Maximum
50.Restrict candidates to users active in this space.
With
spaceId, also include users active in the space’s subtree.Request illustrative sample content per matched facet. Only honored when the project has
interestMatching.exposeSampleContent on; otherwise returns 403 match/sample-content-disabled.Exclude the asker from results.
Promise<{ results: UserMatchResult[] }> (the { results } envelope, ordered by descending score).
