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 whenEnableTextIndexByDefaultis on (§12.1).SemanticIndexdoes 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.TextIndexBoostadds 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();