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
@@ -22,6 +22,93 @@ Cypher 25 was introduced in Neo4j 2025.06 and can only be used on Neo4j 2025.06+
22
22
Features removed in Cypher 25 are still available on Neo4j 2025.06+ databases either by prepending a query with `CYPHER 5` or by having Cypher 5 as the default language for the database.
23
23
For more information, see xref:queries/select-version.adoc[].
a| Introduced a `VECTOR` value type that can be stored as xref:indexes/semantic-indexes/vector-indexes.adoc#embeddings[embedding] properties on nodes and relationships and utilized for efficient semantic retrieval using Neo4j's xref:indexes/semantic-indexes/vector-indexes.adoc[vector indexes] and xref:genai-integrations.adoc[GenAI plugin].
45
+
For more information, see xref:values-and-types/vector.adoc[Values and types -> Vectors].
46
+
47
+
a|
48
+
label:functionality[]
49
+
label:new[]
50
+
[source, cypher, role="noheader"]
51
+
----
52
+
WITH vector([1, 2, 3], 3, INTEGER) AS vector
53
+
RETURN vector, valueType(vector) AS vectorType
54
+
----
55
+
56
+
a| New xref:functions/vector.adoc#functions-vector[`vector()`] function for the construction of xref:values-and-types/vector.adoc[`VECTOR`] values.
57
+
58
+
a|
59
+
label:functionality[]
60
+
label:new[]
61
+
[source, cypher, role="noheader"]
62
+
----
63
+
RETURN vector_dimension_count(vector([1, 2, 3], 3, INTEGER)) AS size
64
+
----
65
+
66
+
a| New xref:functions/vector.adoc#functions-vector_dimension_count[`vector_dimension_count()`] function, which returns the dimension of a xref:values-and-types/vector.adoc[`VECTOR`] value.
a| New xref:functions/vector.adoc#functions-vector_distance[`vector_distance()`] function, which returns the distance between two xref:values-and-types/vector.adoc[`VECTOR`] values based on the selected `vectorDistanceMetric` algorithm.
77
+
78
+
a|
79
+
label:functionality[]
80
+
label:new[]
81
+
[source, cypher, role="noheader"]
82
+
----
83
+
RETURN vector_norm(vector([1.0, 5.0, 3.0, 6.7], 4, FLOAT), EUCLIDEAN) AS norm
84
+
----
85
+
86
+
a| New xref:functions/vector.adoc#functions-vector_norm[`vector_norm()`] function, which returns the distance between the given vector and an origin vector, which is a vector with the same dimension with all coordinates set to zero, calculated using the specified `vectorDistanceMetric`.
a| The xref:functions/list.adoc#functions-tofloatlist[`toFloatList()`], xref:functions/list.adoc#functions-tointegerlist[`toIntegerList()`], xref:functions/vector.adoc#functions-similarity-cosine[`vector.similarity.cosine()`], and xref:functions/vector.adoc#functions-similarity-euclidean[`vector.similarity.euclidean()`] functions now accept `VECTOR` values as input arguments.
@@ -43,7 +130,7 @@ RETURN format(dt, "MM/dd/yyyy") AS US, format(dt, "dd/MM/yyyy") AS EU
43
130
44
131
| Cypher's new xref:functions/temporal/format.adoc[`format()`] function can create dynamically formatted string representations of temporal instance and duration types.
45
132
46
-
a|
133
+
a|
47
134
label:functionality[]
48
135
label:new[]
49
136
@@ -94,7 +181,7 @@ label:functionality[]
94
181
label:updated[]
95
182
[source, cypher]
96
183
----
97
-
PROFILE
184
+
PROFILE
98
185
WITH "Person" AS label
99
186
MATCH (people:$(label))
100
187
RETURN people.name
@@ -118,7 +205,7 @@ label:new[]
118
205
----
119
206
MATCH (()-->(n))+
120
207
WHERE allReduce(acc = 0, node IN n \| acc + node.x, 6 < acc < 30)
a| Introduced a `VECTOR` value type that can be stored as xref:indexes/semantic-indexes/vector-indexes.adoc#embeddings[embedding] properties on nodes and relationships and utilized for efficient semantic retrieval using Neo4j's xref:indexes/semantic-indexes/vector-indexes.adoc[vector indexes] and xref:genai-integrations.adoc[GenAI plugin].
174
-
For more information, see xref:values-and-types/vector.adoc[Values and types -> Vectors].
175
-
176
-
a|
177
-
label:functionality[]
178
-
label:new[]
179
-
[source, cypher, role="noheader"]
180
-
----
181
-
WITH vector([1, 2, 3], 3, INTEGER) AS vector
182
-
RETURN vector, valueType(vector) AS vectorType
183
-
----
184
-
185
-
a| New xref:functions/vector.adoc#functions-vector[`vector()`] function for the construction of xref:values-and-types/vector.adoc[`VECTOR`] values.
186
-
187
-
a|
188
-
label:functionality[]
189
-
label:new[]
190
-
[source, cypher, role="noheader"]
191
-
----
192
-
RETURN vector_dimension_count(vector([1, 2, 3], 3, INTEGER)) AS size
193
-
----
194
-
195
-
a| New xref:functions/vector.adoc#functions-vector_dimension_count[`vector_dimension_count()`] function, which returns the dimension of a xref:values-and-types/vector.adoc[`VECTOR`] value.
a| New xref:functions/vector.adoc#functions-vector_distance[`vector_distance()`] function, which returns the distance between two xref:values-and-types/vector.adoc[`VECTOR`] values based on the selected `vectorDistanceMetric` algorithm.
206
-
207
-
a|
208
-
label:functionality[]
209
-
label:new[]
210
-
[source, cypher, role="noheader"]
211
-
----
212
-
RETURN vector_norm(vector([1.0, 5.0, 3.0, 6.7], 4, FLOAT), EUCLIDEAN) AS norm
213
-
----
214
-
215
-
a| New xref:functions/vector.adoc#functions-vector_norm[`vector_norm()`] function, which returns the distance between the given vector and an origin vector, which is a vector with the same dimension with all coordinates set to zero, calculated using the specified `vectorDistanceMetric`.
a| The xref:functions/list.adoc#functions-tofloatlist[`toFloatList()`], xref:functions/list.adoc#functions-tointegerlist[`toIntegerList()`], xref:functions/vector.adoc#functions-similarity-cosine[`vector.similarity.cosine()`], and xref:functions/vector.adoc#functions-similarity-euclidean[`vector.similarity.euclidean()`] functions now accept `VECTOR` values as input arguments.
a| Set the default Cypher version for a remote database alias when creating it.
@@ -1002,7 +1004,7 @@ CASE x ... WHEN contains - 1 THEN ... END
1002
1004
a| Using a variable named `contains` (or any casing variant, like `CONTAINS`) in addition or subtraction operations within a `WHEN` operand of a xref:expressions/conditional-expressions.adoc#case-simple[simple `CASE`] expression is deprecated.
1003
1005
To continue using variables with this name, use backticks to quote the variable name:
1004
1006
1005
-
* Additions: `CASE x ... WHEN ++`contains`++ + 1 THEN ... END`
1007
+
* Additions: `CASE x ... WHEN ++`contains`++ + 1 THEN ... END`
1006
1008
* Subtractions: `CASE x ... WHEN ++`contains`++ - 1 THEN ... END`
1007
1009
1008
1010
a|
@@ -1017,8 +1019,8 @@ CASE x ... WHEN in["abc"] THEN ... END
1017
1019
----
1018
1020
a| Using the `[]` operator on a variable named `in` (or any casing variant, like `IN`) within a `WHEN` operand of a xref:expressions/conditional-expressions.adoc#case-simple[simple `CASE`] expression is deprecated.
1019
1021
To continue using variables with this name, use backticks to quote the variable name:
1020
-
1021
-
* `CASE x ... WHEN ++`in`++[1] THEN ... END`
1022
+
1023
+
* `CASE x ... WHEN ++`in`++[1] THEN ... END`
1022
1024
* `CASE x ... WHEN ++`in`++["abc"] THEN ... END`
1023
1025
1024
1026
@@ -1217,7 +1219,7 @@ label:functionality[]
1217
1219
label:updated[]
1218
1220
[source, cypher, role="noheader"]
1219
1221
----
1220
-
CREATE (n:Label {property: 'name'}),
1222
+
CREATE (n:Label {property: 'name'}),
1221
1223
()-[r:REL_TYPE]->()
1222
1224
----
1223
1225
| Neo4j's link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/store-formats/#store-format-overview[block format] now implements xref:appendix/gql-conformance/index.adoc[GQL's] limit on the maximum length of identifiers.
@@ -1268,7 +1270,7 @@ RETURN t AS team, players
1268
1270
1269
1271
[source, cypher, role="noheader"]
1270
1272
----
1271
-
OPTIONAL CALL db.labels() YIELD label
1273
+
OPTIONAL CALL db.labels() YIELD label
1272
1274
RETURN label
1273
1275
----
1274
1276
@@ -1619,7 +1621,7 @@ MATCH SHORTEST 2 GROUPS (:A)-[:R]->{0,10}(:B)
1619
1621
1620
1622
a| Introduced new graph pattern matching keywords to find variations of the xref:patterns/shortest-paths.adoc[shortest paths] between nodes.
1621
1623
1622
-
a|
1624
+
a|
1623
1625
label:functionality[]
1624
1626
label:new[]
1625
1627
@@ -4817,4 +4819,4 @@ MATCH (n:N {prop1: 42} WHERE n.prop2 > 42)
4817
4819
a|
4818
4820
New syntax that enables inlining of `WHERE` clauses inside node patterns.
Whilst it is not possible to store a xref:values-and-types/vector.adoc[`VECTOR`] value without a coordinate type and dimension, it is possible to use the `VECTOR` supertype (encompassing all combinations of `VECTOR<TYPE>(DIMENSION)`) in type predicate expressions.
45
+
The following examples use `VECTOR` values (constructed using the xref:functions/vector.adoc#functions-vector[`vector()` function]) with `3` dimensions and `INTEGER8` coordinate type.
46
46
47
-
The following examples uses a `VECTOR` (constructed using the xref:functions/vector.adoc#functions-vector[`vector()` function]) with `3` dimensions and `INTEGER8` coordinate type.
47
+
.Verify a `VECTOR<TYPE>(DIMENSION)` value against a `VECTOR` the same coordinate type and dimension
48
+
[source, cypher]
49
+
----
50
+
WITH vector([1, 2, 3], 3, INTEGER8) AS vector
51
+
RETURN vector IS :: VECTOR<INTEGER8>(3) AS isVector
Although it is not possible to store a xref:values-and-types/vector.adoc[`VECTOR`] value without a coordinate type and dimension, it is possible to use the `VECTOR` supertype (encompassing all combinations of `VECTOR<TYPE>(DIMENSION)`) in type predicate expressions.
48
65
49
66
.Verify a `VECTOR<TYPE>(DIMENSION)` value against the `VECTOR` supertype
50
67
[source, cypher]
@@ -136,23 +153,6 @@ RETURN vector IS :: VECTOR<INTEGER16> AS isInteger16Vector
136
153
1+d|Rows: 1
137
154
|===
138
155
139
-
.Verify a `VECTOR<TYPE>(DIMENSION)` value against a `VECTOR` the same coordinate type and dimension
140
-
[source, cypher]
141
-
----
142
-
WITH vector([1, 2, 3], 3, INTEGER8) AS vector
143
-
RETURN vector IS :: VECTOR<INTEGER8>(3) AS isVector
0 commit comments