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.

The settings pages describe themselves

Each tab under the Search, Facets and Synonyms hubs shows a description of what that page configures above its content, and every individual setting carries a hover (?) tooltip saying what it controls — units included, and which direction raising or lowering it moves the result. That covers the search pipeline options as well as the index options behind them: the full-text and file-content indexes, the text / time / numeric property-facet indexes, the sentence and raw embedding indexes behind vector search, the graph-similarity index, and the word-similarity model behind AI synonyms.

Two settings on the Search Parameters page are wired up but read by nothing, and their tooltips say so rather than describing behaviour that does not exist: DisableContactsAndOrganizationFilters and InnerMatchPenalizationFactor. Changing either has no effect.

Engine, in one diagram

flowchart LR Query[Search query text] --> Syn[Synonym<br/>expansion] Syn --> 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
Query-term expansion Synonyms
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

Full text search

Pick fields, set the "searchable" toggle, tune boosts.

Synonyms

Domain vocabulary, abbreviations, blocked terms.

Ranking and boosting

BM25 field weights, graph-driven scoring.

Filters and facets

Property facets, related-node facets, time filter scoping.

AI search

Embedding selection, chunking, similarity cutoffs.

Relevance tuning

Iterative tuning playbook.

Search execution scopes

Variables and methods in custom index code.

Search from the AI assistant

Which data types and filters the built-in search tool exposes to an assistant.

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> { N.SupportCase.Type };
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.

© 2026 Curiosity. All rights reserved.