Functions and filtering
Nodes are filtered based on functions applied to the node’s outgoing edges.
So far the queries have only applied a filter to the top level nodes, but filters can be applied to any node in the query.
Note the syntax difference between filtering at the root of a query and filtering on internal blocks.
There are many functions for filtering, some of them are
allOfTerms(edge_name, "term1 ... termN"): matches nodes with an outgoing
edge_namewhere the string contains all listed terms.
anyOfTerms(edge_name, "term1 ... termN"): As with
allOfTerms, but matches at least one term.
The equalities and inequalities can be applied to edges of types:
eq(edge_name, value): equal to
ge(edge_name, value): greater than or equal to
le(edge_name, value): less than or equal to
gt(edge_name, value): greater than
lt(edge_name, value): less than
There’s also regular expressions, full text search and geo search, but those are bigger topics that’ll have their own section in the tutorial
Functions can only be applied to predicates that have been indexed except
the case when comparison functions (
lt) are used in filter -
that’s part of the lesson about schema.