Skip to content

Commit 45ee98d

Browse files
All except genai integrations
1 parent 3b77b69 commit 45ee98d

File tree

11 files changed

+319
-289
lines changed

11 files changed

+319
-289
lines changed

modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc

Lines changed: 101 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,93 @@ Cypher 25 was introduced in Neo4j 2025.06 and can only be used on Neo4j 2025.06+
2222
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.
2323
For more information, see xref:queries/select-version.adoc[].
2424

25+
26+
[[cypher-deprecations-additions-removals-2025.10]]
27+
== Neo4j 2025.10
28+
29+
=== New in Cypher 25
30+
31+
[cols="2", options="header"]
32+
|===
33+
| Feature
34+
| Details
35+
36+
a|
37+
label:functionality[]
38+
label:new[]
39+
[source, cypher, role="noheader"]
40+
----
41+
VECTOR([1.05, 0.123, 5], 3, FLOAT32 NOT NULL)
42+
----
43+
44+
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.
67+
68+
a|
69+
label:functionality[]
70+
label:new[]
71+
[source, cypher, role="noheader"]
72+
----
73+
RETURN vector_distance(vector([1, 2, 3], 3, INT), vector([1, 2, 4], 3, INT), COSINE) AS distance
74+
----
75+
76+
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`.
87+
88+
|===
89+
90+
=== Updated in Cypher 25
91+
92+
[cols="2", options="header"]
93+
|===
94+
| Feature
95+
| Details
96+
97+
a|
98+
label:functionality[]
99+
label:updated[]
100+
[source, cypher, role="noheader"]
101+
----
102+
RETURN toFloatList(Vector([1, 2, 3], 3, INTEGER64)),
103+
toIntegerList(Vector([1, 2, 3], 3, INTEGER8)),
104+
vector.similarity.cosine(vector([3, 5, 7], 3, INT), vector([-1, -2, -3], 3, INT)),
105+
vector.similarity.euclidean(vector([3, 5, 7], 3, INT), vector([-1, -2, -3], 3, INT))
106+
----
107+
108+
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.
109+
|===
110+
111+
25112
[[cypher-deprecations-additions-removals-2025.09]]
26113
== Neo4j 2025.09
27114

@@ -43,7 +130,7 @@ RETURN format(dt, "MM/dd/yyyy") AS US, format(dt, "dd/MM/yyyy") AS EU
43130

44131
| Cypher's new xref:functions/temporal/format.adoc[`format()`] function can create dynamically formatted string representations of temporal instance and duration types.
45132

46-
a|
133+
a|
47134
label:functionality[]
48135
label:new[]
49136

@@ -94,7 +181,7 @@ label:functionality[]
94181
label:updated[]
95182
[source, cypher]
96183
----
97-
PROFILE
184+
PROFILE
98185
WITH "Person" AS label
99186
MATCH (people:$(label))
100187
RETURN people.name
@@ -118,7 +205,7 @@ label:new[]
118205
----
119206
MATCH (()-->(n))+
120207
WHERE allReduce(acc = 0, node IN n \| acc + node.x, 6 < acc < 30)
121-
RETURN [i IN n \| i.x] AS sequence
208+
RETURN [i IN n \| i.x] AS sequence
122209
ORDER BY head(n).x, size(n)
123210
----
124211

@@ -152,91 +239,6 @@ RETURN n:$(<expr3>)
152239
|===
153240

154241

155-
[[cypher-deprecations-additions-removals-2025.xx]]
156-
== Neo4j 2025.xx
157-
158-
=== New in Cypher 25
159-
160-
[cols="2", options="header"]
161-
|===
162-
| Feature
163-
| Details
164-
165-
a|
166-
label:functionality[]
167-
label:new[]
168-
[source, cypher, role="noheader"]
169-
----
170-
VECTOR([1.05, 0.123, 5], 3, FLOAT32 NOT NULL)
171-
----
172-
173-
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.
196-
197-
a|
198-
label:functionality[]
199-
label:new[]
200-
[source, cypher, role="noheader"]
201-
----
202-
RETURN vector_distance(vector([1, 2, 3], 3, INT), vector([1, 2, 4], 3, INT), COSINE) AS distance
203-
----
204-
205-
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`.
216-
217-
|===
218-
219-
=== Updated in Cypher 25
220-
221-
[cols="2", options="header"]
222-
|===
223-
| Feature
224-
| Details
225-
226-
a|
227-
label:functionality[]
228-
label:updated[]
229-
[source, cypher, role="noheader"]
230-
----
231-
RETURN toFloatList(Vector([1, 2, 3], 3, INTEGER64)),
232-
toIntegerList(Vector([1, 2, 3], 3, INTEGER8)),
233-
vector.similarity.cosine(vector([3, 5, 7], 3, INT), vector([-1, -2, -3], 3, INT)),
234-
vector.similarity.euclidean(vector([3, 5, 7], 3, INT), vector([-1, -2, -3], 3, INT))
235-
----
236-
237-
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.
238-
|===
239-
240242
[[cypher-deprecations-additions-removals-2025.06]]
241243
== Neo4j 2025.06
242244

@@ -577,10 +579,10 @@ label:new[]
577579
----
578580
CREATE ALIAS `remote-with-default-language`
579581
FOR DATABASE `northwind-graph-2020`
580-
AT "neo4j+s://location:7687"
581-
USER alice
582-
PASSWORD 'example_secret'
583-
DEFAULT LANGUAGE CYPHER 25
582+
AT "neo4j+s://location:7687"
583+
USER alice
584+
PASSWORD 'example_secret'
585+
DEFAULT LANGUAGE CYPHER 25
584586
----
585587

586588
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
10021004
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.
10031005
To continue using variables with this name, use backticks to quote the variable name:
10041006

1005-
* Additions: `CASE x ... WHEN ++`contains`++ + 1 THEN ... END`
1007+
* Additions: `CASE x ... WHEN ++`contains`++ + 1 THEN ... END`
10061008
* Subtractions: `CASE x ... WHEN ++`contains`++ - 1 THEN ... END`
10071009

10081010
a|
@@ -1017,8 +1019,8 @@ CASE x ... WHEN in["abc"] THEN ... END
10171019
----
10181020
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.
10191021
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`
10221024
* `CASE x ... WHEN ++`in`++["abc"] THEN ... END`
10231025

10241026

@@ -1217,7 +1219,7 @@ label:functionality[]
12171219
label:updated[]
12181220
[source, cypher, role="noheader"]
12191221
----
1220-
CREATE (n:Label {property: 'name'}),
1222+
CREATE (n:Label {property: 'name'}),
12211223
()-[r:REL_TYPE]->()
12221224
----
12231225
| 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
12681270

12691271
[source, cypher, role="noheader"]
12701272
----
1271-
OPTIONAL CALL db.labels() YIELD label
1273+
OPTIONAL CALL db.labels() YIELD label
12721274
RETURN label
12731275
----
12741276

@@ -1619,7 +1621,7 @@ MATCH SHORTEST 2 GROUPS (:A)-[:R]->{0,10}(:B)
16191621

16201622
a| Introduced new graph pattern matching keywords to find variations of the xref:patterns/shortest-paths.adoc[shortest paths] between nodes.
16211623

1622-
a|
1624+
a|
16231625
label:functionality[]
16241626
label:new[]
16251627

@@ -4817,4 +4819,4 @@ MATCH (n:N {prop1: 42} WHERE n.prop2 > 42)
48174819
a|
48184820
New syntax that enables inlining of `WHERE` clauses inside node patterns.
48194821

4820-
|===
4822+
|===

modules/ROOT/pages/expressions/predicates/type-predicate-expressions.adoc

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,30 @@ RETURN val, val IS :: INTEGER AS isInteger
3838
2+d|Rows: 4
3939
|===
4040

41-
[role=label--new-Neo4j-2025.xx label--cypher-25-only]
41+
[role=label--new-Neo4j-2025.10 label--cypher-25-only]
4242
[[type-predicate-vector]]
43-
=== Vector values
43+
=== Vector values and supertypes
4444

45-
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.
4646

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
52+
----
53+
54+
.Result
55+
[role="queryresult",options="header,footer",cols="1*<m"]
56+
|===
57+
| isVector
58+
59+
| true
60+
61+
1+d|Rows: 1
62+
|===
63+
64+
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.
4865

4966
.Verify a `VECTOR<TYPE>(DIMENSION)` value against the `VECTOR` supertype
5067
[source, cypher]
@@ -136,23 +153,6 @@ RETURN vector IS :: VECTOR<INTEGER16> AS isInteger16Vector
136153
1+d|Rows: 1
137154
|===
138155

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
144-
----
145-
146-
.Result
147-
[role="queryresult",options="header,footer",cols="1*<m"]
148-
|===
149-
| isVector
150-
151-
| true
152-
153-
1+d|Rows: 1
154-
|===
155-
156156

157157
[[type-predicate-not]]
158158
== Type predicate expressions with NOT

0 commit comments

Comments
 (0)