If a P-predicate is created for Match.ANY (and the others) then, when the TraversalStrategy that folds has()-steps into BlazeGraphStep, it can do what it needs with the P-predicate and thus, the following would work:
g = graph.traversal()
g.V().has("key",matches.any("hell*")).count()
The reason that reg-ex (and stuff like geo) are NOT in TinkerPop is that various backends have different semantics for such predicates. Thus, we recommend that graph providers simply create respective P-predicates and GraphStep rules for handling the HasContainers.
I noticed this in the documentation.
If a
P
-predicate is created forMatch.ANY
(and the others) then, when theTraversalStrategy
that foldshas()
-steps intoBlazeGraphStep
, it can do what it needs with theP
-predicate and thus, the following would work:The reason that reg-ex (and stuff like geo) are NOT in TinkerPop is that various backends have different semantics for such predicates. Thus, we recommend that graph providers simply create respective
P
-predicates andGraphStep
rules for handling theHasContainers
.P
-predicates are easy to implement.https://github.com/apache/incubator-tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
has()
-steps.https://github.com/apache/incubator-tinkerpop/blob/master/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/traversal/strategy/optimization/TinkerGraphStepStrategy.java
GraphStep
implementation.https://github.com/apache/incubator-tinkerpop/blob/master/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/process/traversal/step/sideEffect/TinkerGraphStep.java