Relatude Help

What actually gets searched

WhereSearch and Search look in each node's text index:

  • A node type is in it when it has [Node(TextIndex = BoolValue.True)], or every type is when EnableTextIndexByDefault is on (§12.1). SemanticIndex does the same for the vector index. Subtypes inherit the setting.
  • Every property goes in except those with ExcludeFromTextIndex = true. Dates, booleans, ids and coordinates are out by default. TextIndexBoost adds a property's text that many extra times.
  • [RelationProperty(TextIndexRelatedDisplayName = true)] adds the related nodes' display names, so a venue can be found by the names of its events.

IndexedByWords and IndexedBySemantic give one string property an index of its own. Search that property alone with MatchesSearch. It is an ordinary predicate, so it combines with || and !:

db.Query<IEvent>().Where(e => e.Title.MatchesSearch("jazz") || e.Price == 0).Execute();