You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/ROOT/pages/functions/predicate.adoc
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -110,7 +110,9 @@ RETURN all(i in emptyList WHERE true) as allTrue, all(i in emptyList WHERE false
110
110
|===
111
111
| *Syntax* 3+| `allReduce(accumulator = initial, stepVariable IN list \| reductionFunction, predicate)`
112
112
| *Description* 3+| Returns true if, during the stepwise evaluation of a value across the elements in a given `LIST<ANY>`, the accumulated result satisfies a specified predicate at every step.
113
-
Where that list is a xref:patterns/variable-length-patterns.adoc#group-variables[group variable] defined in a xref:patterns/variable-length-patterns.adoc#quantified-path-patterns[quantified path pattern] (not within a xref:patterns/shortest-paths.adoc[shortest path pattern]), it allows for the early pruning of paths that do not satisfy the predicate.
113
+
Where that list is a xref:patterns/variable-length-patterns.adoc#group-variables[group variable] defined in a xref:patterns/variable-length-patterns.adoc#quantified-path-patterns[quantified path pattern], it allows for the early pruning of paths that do not satisfy the predicate.
114
+
115
+
*Note*: AllReduce should not be used for a group variable within a xref:patterns/shortest-paths.adoc[shortest path pattern].
Copy file name to clipboardExpand all lines: modules/ROOT/pages/patterns/variable-length-patterns.adoc
+3-4Lines changed: 3 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -380,7 +380,7 @@ For example, all relationships in the path must be of type `EMPLOYED_BY`.
380
380
* Nodes or relationships must have properties satisfying some condition.
381
381
For example, all relationships must have the property `distance > 10`.
382
382
383
-
* For every iteration of the QPP, an aggregated value over the constructed path so far should satisfy a predicate.
383
+
* For every iteration of the quantified path pattern, an aggregated value over the constructed path so far should satisfy a predicate.
384
384
For example, the sum of the property `distance` of the relationships in the path must be less than 50 for every step in the construction of the path.
385
385
See xref::functions/predicate.adoc#functions-allreduce[allReduce] for more information about this predicate.
386
386
@@ -562,9 +562,8 @@ This query avoids having to find all possible paths and then imposing a `LIMIT 1
562
562
It also shows that there is only one path to solving the query (a number that remains constant even if the data from the rest of the UK railway network was included).
563
563
Using inline predicates or making quantified path patterns more specific where possible can thus greatly improve query performance.
564
564
565
-
An alternative is to use the information that we want to find paths with a total distance less than `6.05`.
566
-
From the `ALL SHORTEST` query, we know that there exists a path with a total distance of `6.04`.
567
-
Once the path exceeds this limit, we can prune it and continue searching other paths.
565
+
An alternative is to use an upper bound for the total distance, for example `6.05`.
566
+
Once a path exceeds this upper bound, we can prune it and continue searching other paths.
568
567
The xref::functions/predicate.adoc#functions-allreduce[allReduce] predicate function expresses this as follows:
0 commit comments