statement and, when embedding is given, cosine similarity over the stored vectors. The two lists are fused with reciprocal rank fusion. Candidates are then expanded along edges of the chosen families up to depth hops. The as_of and valid_at filters apply to every hop, not only to the candidates.
Request
string
required
Full-text query. Language-agnostic tokens.
timestamp or date
required
string
Scope to one space. Omit for the whole tenant.
timestamp
integer
default:"2"
Expansion hops.
string[]
default:"[\"causal\", \"temporal\"]"
Edge families to expand along. See edge types.
integer
default:"20"
Caps the candidates, not the expanded hits.
string
Narrows the candidates to one topic label. Expansion hops are not filtered: a causal chain may cross topics, and cutting it at a topic boundary would hide the cause.
number[]
The query vector. Must come from the same model as the vectors stored on nodes. When absent, only full-text candidates are used.
Response
Hit[]
Each hit:
node (NodeRow), score, depth, path (node ids from the candidate to this node), via (the edge type that reached it; null for a candidate), superseded_by (the id of the block that superseded it as of as_of, or null).
score is the candidate’s fused rank score multiplied by 0.5 per hop.object or null
object