Curiosity
Wireframe of a search-results UI with filters and result rows on a light background.

Facets and filters

Facets let users narrow results without changing their query. Three kinds, used for different things.


Property facets — values of a scalar field on the node:

  • Status (Open, Closed, Pending)
  • Priority (High, Medium, Low)
  • Region, Category, Language

Best for low-cardinality, normalised values. Don't use for fields with millions of distinct values.


Graph-derived (related) facets — constrain by edge to a related entity:

  • "Only tickets for product X" → filter by ForProduct edge
  • "Only documents owned by team Y" → filter by OwnedBy edge

These facets are richer than property facets because they follow the graph. Use them instead of denormalising entity names into properties.


Time facets — a global time filter applied to any [Timestamp] field:

  • Last 7 days, last 30 days, last quarter, custom range

Performance tip: pre-compute multi-hop facets during ingestion (materialise the relationship onto the source node as a property) if live traversal is too slow at query time.

Filters and facets