Curiosity

Search Configuration

The workspace ships one unified search engine that runs full-text and vector retrieval over the same nodes, with graph relationships available as facets and constraints. This section is the operator-facing reference for tuning that engine — which fields are searchable, how they rank, where embeddings apply, what facets users see.

The page-by-page UI walkthrough lives inside the workspace itself; this section concentrates on what each lever does so you can pick the right one.

Engine, in one diagram

flowchart LR Query[Search query text] --> BM25[BM25 over<br/>indexed fields] Query --> Embed[Embedding<br/>lookup] Filter[Facets / TargetUIDs] --> Combine[Hybrid combine<br/>+ filter] BM25 --> Combine Embed --> Combine Combine --> Rank[Optional<br/>semantic rerank] Rank --> ACL[ACL filter<br/>per caller] ACL --> Results[(Ranked results)]

Each arrow corresponds to a setting you control:

Arrow Configured under
Indexed fields Full text search
Field weights / ranking Ranking and boosting
Facets and time filters Filters and facets
Embeddings + chunking AI search
Semantic rerank AI search
Caller ACL Permission-aware search
Custom index code Search execution scopes

In this section

Programmatic counterparts

The settings here map 1:1 to fields on SearchRequest, which custom endpoints use to drive search:

var req = SearchRequest.For("battery drain");
req.BeforeTypesFacet = new HashSet<string> { "SupportCase" };
req.TargetUIDs       = devicesUIDs;
req.HybridSearch     = true;

var query = await Graph.CreateSearchAsUserAsync(req, CurrentUser, CancellationToken);
return query.Take(20).Emit();

See Custom endpoint from scratch for the full request shape and Permission-aware search for the ACL half.

Referenced by

© 2026 Curiosity. All rights reserved.