From 27ed6ceae2ee7795e37775d40731e3963b67076e Mon Sep 17 00:00:00 2001 From: Louise Berglund Date: Wed, 14 Jan 2026 14:57:21 +0100 Subject: [PATCH 01/17] Document new error codes for vector search filtering. --- modules/ROOT/content-nav.adoc | 4 ++ .../ROOT/pages/errors/gql-errors/22ND3.adoc | 61 ++++++++++++++++ .../ROOT/pages/errors/gql-errors/42I73.adoc | 70 +++++++++++++++++++ .../ROOT/pages/errors/gql-errors/42I74.adoc | 45 ++++++++++++ .../ROOT/pages/errors/gql-errors/42I75.adoc | 66 +++++++++++++++++ 5 files changed, 246 insertions(+) create mode 100644 modules/ROOT/pages/errors/gql-errors/22ND3.adoc create mode 100644 modules/ROOT/pages/errors/gql-errors/42I73.adoc create mode 100644 modules/ROOT/pages/errors/gql-errors/42I74.adoc create mode 100644 modules/ROOT/pages/errors/gql-errors/42I75.adoc diff --git a/modules/ROOT/content-nav.adoc b/modules/ROOT/content-nav.adoc index 4791c401..5d5a6f0b 100644 --- a/modules/ROOT/content-nav.adoc +++ b/modules/ROOT/content-nav.adoc @@ -180,6 +180,7 @@ **** xref:errors/gql-errors/22NCF.adoc[] **** xref:errors/gql-errors/22ND1.adoc[] **** xref:errors/gql-errors/22ND2.adoc[] +**** xref:errors/gql-errors/22ND3.adoc[] *** xref:errors/gql-errors/index.adoc#invalid-transaction-state[Invalid transaction state] **** xref:errors/gql-errors/25G02.adoc[] **** xref:errors/gql-errors/25N01.adoc[] @@ -293,6 +294,9 @@ **** xref:errors/gql-errors/42I71.adoc[] **** xref:errors/gql-errors/42I72.adoc[] **** xref:errors/gql-errors/42I76.adoc[] +**** xref:errors/gql-errors/42I73.adoc[] +**** xref:errors/gql-errors/42I74.adoc[] +**** xref:errors/gql-errors/42I75.adoc[] **** xref:errors/gql-errors/42N00.adoc[] **** xref:errors/gql-errors/42N01.adoc[] **** xref:errors/gql-errors/42N02.adoc[] diff --git a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc new file mode 100644 index 00000000..2733e72d --- /dev/null +++ b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc @@ -0,0 +1,61 @@ += 22ND3 + +== Status description +error: data exception - wrong property for vector search filtering. The property `{ <> }` has not been added as an additional property for the vector index `{ <> }`. + +== Example scenario +For example, assuming that you have a vector index created by + +[source,cypher] +---- +CYPHER 25 +CREATE VECTOR INDEX moviePlots +FOR (m:Movie) ON m.embedding +WITH [m.rating] +---- + +When using another property key than `rating` in a vector search filter: + +[source,cypher] +---- +CYPHER 25 +MATCH (movie:Movie) + SEARCH movie IN ( + VECTOR INDEX moviePlots + FOR [1, 2, 3] + WHERE movie.votes > 1000 + LIMIT 5 + ) +RETURN movie.title AS title +---- + +You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001] with a cause with GQLSTATUS 22ND3 and status description: + +[source] +---- +error: data exception - wrong property for vector search filtering. The property `votes` has not been added as an additional property for the vector index 'moviePlots'. +---- + +== Possible solution +If you want to use the property `votes` for vector search filtering, it must be an additional property of the vector index. +This can be achieved by dropping and re-creating the vector index like this: + +[source,cypher] +---- +DROP INDEX moviePlots +---- + +[source,cypher] +---- +CYPHER 25 +CREATE VECTOR INDEX moviePlots +FOR (m:Movie) ON m.embedding +WITH [m.rating, m.votes] +---- + +ifndef::backend-pdf[] +[discrete.glossary] +== Glossary + +include::partial$glossary.adoc[] +endif::[] \ No newline at end of file diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc new file mode 100644 index 00000000..0d25b293 --- /dev/null +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -0,0 +1,70 @@ += 42I73 + +== Status description +error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. x.prop = 1), an open range (e.g. x.prop >= 1), or a between range (e.g. x.prop > 1 AND x.prop < 100). `{ <> }` does not fulfill this. + +== Example scenarios +For example, assuming that you have a vector index created by: + +[source,cypher] +---- +CYPHER 25 +CREATE VECTOR INDEX moviePlots +FOR (m:Movie) ON m.embedding +WITH [m.rating] +---- + +When trying to use `NOT` inside a vector search filter: + +[source,cypher] +---- +CYPHER 25 +MATCH (movie:Movie) + SEARCH movie IN ( + VECTOR INDEX moviePlots + FOR [1, 2, 3] + WHERE NOT movie.rating = 8 + LIMIT 5 + ) +RETURN movie.title AS title, movie.rating AS rating +---- + +You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001] with a cause with GQLSTATUS 42I73 and status description: + +[source] +---- +error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. x.prop = 1), an open range (e.g. x.prop >= 1), or a between range (e.g. x.prop > 1 AND x.prop < 100). `NOT movie.rating = 8` does not fulfill this. +---- + +When trying to use multiple open ranges on the same property inside a vector search filter: + +[source,cypher] +---- +CYPHER 25 +MATCH (movie:Movie) + SEARCH movie IN ( + VECTOR INDEX moviePlots + FOR [1, 2, 3] + WHERE NOT movie.rating > 6 AND movie.rating > 8 + LIMIT 5 + ) +RETURN movie.title AS title, movie.rating AS rating +---- + +You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001] with a cause with GQLSTATUS 42I73 and status description: + +[source] +---- +error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. x.prop = 1), an open range (e.g. x.prop >= 1), or a between range (e.g. x.prop > 1 AND x.prop < 100). `movie.rating > 6 AND movie.rating > 8` does not fulfill this. +---- + +== Possible solution +Certain predicates are possible to rewrite so they adhere to the rules of vector search filtering. +E.g. the predicate `NOT movie.rating < 7` can be rewritten to `movie.rating >= 7`, while the predicate `movie.rating > 6 AND movie.rating > 8` can be rewritten to `movie.rating > 6`. + +ifndef::backend-pdf[] +[discrete.glossary] +== Glossary + +include::partial$glossary.adoc[] +endif::[] \ No newline at end of file diff --git a/modules/ROOT/pages/errors/gql-errors/42I74.adoc b/modules/ROOT/pages/errors/gql-errors/42I74.adoc new file mode 100644 index 00000000..d2985895 --- /dev/null +++ b/modules/ROOT/pages/errors/gql-errors/42I74.adoc @@ -0,0 +1,45 @@ += 42I74 + +== Status description +error: syntax error or access rule violation - wrong variable for vector search filtering. The variable `{ <>1 }` in a vector search filter property predicate must be the same as the search clause binding variable `{ <>2 }`. + +== Example scenario +For example, assuming that you have a vector index created by: + +[source,cypher] +---- +CYPHER 25 +CREATE VECTOR INDEX moviePlots +FOR (m:Movie) ON m.embedding +WITH [m.rating] +---- + +When trying to use another variable than `movie` in the vector search filter in the following query: + +[source,cypher] +---- +CYPHER 25 +MATCH (m:Movie {title:'Matrix, The'}) +MATCH (movie:Movie) + SEARCH movie IN ( + VECTOR INDEX moviePlots + FOR m.embedding + WHERE m.rating >= 8 + LIMIT 5 + ) +RETURN movie.title AS title, movie.rating AS rating +---- + +You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001] with a cause with GQLSTATUS 42I74 and status description: + +[source] +---- +error: syntax error or access rule violation - wrong variable for vector search filtering. The variable `m` in a vector search filter property predicate must be the same as the search clause binding variable `movie`. +---- + +ifndef::backend-pdf[] +[discrete.glossary] +== Glossary + +include::partial$glossary.adoc[] +endif::[] \ No newline at end of file diff --git a/modules/ROOT/pages/errors/gql-errors/42I75.adoc b/modules/ROOT/pages/errors/gql-errors/42I75.adoc new file mode 100644 index 00000000..6b3a33cb --- /dev/null +++ b/modules/ROOT/pages/errors/gql-errors/42I75.adoc @@ -0,0 +1,66 @@ += 42I75 + +== Status description +error: syntax error or access rule violation - self-referencing in vector search. The expression `{ <> }` in the search clause may not depend on the search clause binding variable `{ <> }`. + +== Example scenarios +For example, assuming that you have a vector index created by: + +[source,cypher] +---- +CYPHER 25 +CREATE VECTOR INDEX moviePlots +FOR (m:Movie) ON m.embedding +WITH [m.rating] +---- + +When trying to use the search binding variable `movie` in the `FOR` subclause in the following query: + +[source,cypher] +---- +CYPHER 25 +MATCH (movie:Movie) + SEARCH movie IN ( + VECTOR INDEX moviePlots + FOR movie.embedding + LIMIT 5 + ) +RETURN movie.title AS title, movie.rating AS rating +---- + +You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001] with a cause with GQLSTATUS 42I75 and status description: + +[source] +---- +error: syntax error or access rule violation - self-referencing in vector search. The expression `movie.embedding` in the search clause may not depend on the search clause binding variable `movie`. +---- + +When trying to use the search binding variable `movie` in the RHS of the predicate in the `WHERE` subclause in the following query: + +[source,cypher] +---- +CYPHER 25 +MATCH (m:Movie {title:'Matrix, The'}) +MATCH (movie:Movie) + SEARCH movie IN ( + VECTOR INDEX moviePlots + FOR m.embedding + WHERE move.rating = movie.year + LIMIT 5 + ) +RETURN movie.title AS title, movie.rating AS rating +---- + +You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001] with a cause with GQLSTATUS 42I75 and status description: + +[source] +---- +error: syntax error or access rule violation - self-referencing in vector search. The expression `movie.year` in the search clause may not depend on the search clause binding variable `movie`. +---- + +ifndef::backend-pdf[] +[discrete.glossary] +== Glossary + +include::partial$glossary.adoc[] +endif::[] \ No newline at end of file From f6573e2d32c64dcbedf05d8d08f6101705bc7317 Mon Sep 17 00:00:00 2001 From: Louise Berglund Date: Thu, 15 Jan 2026 09:06:43 +0100 Subject: [PATCH 02/17] Fix copy-paste misstake --- modules/ROOT/pages/errors/gql-errors/22ND3.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc index 2733e72d..ed7897c4 100644 --- a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc +++ b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc @@ -29,7 +29,7 @@ MATCH (movie:Movie) RETURN movie.title AS title ---- -You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001] with a cause with GQLSTATUS 22ND3 and status description: +You will receive an error with GQLSTATUS 22ND3 and status description: [source] ---- From 44c96fe7ba589e23b2c996ae48be50d3f019f83f Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Thu, 15 Jan 2026 10:22:26 +0000 Subject: [PATCH 03/17] generate the index file and editorial updates --- modules/ROOT/pages/errors/gql-errors/22ND3.adoc | 9 +++++---- modules/ROOT/pages/errors/gql-errors/42I73.adoc | 15 +++++++++++---- modules/ROOT/pages/errors/gql-errors/42I74.adoc | 4 ++-- modules/ROOT/pages/errors/gql-errors/42I75.adoc | 8 +++++++- modules/ROOT/pages/errors/gql-errors/index.adoc | 15 +++++++++++++++ 5 files changed, 40 insertions(+), 11 deletions(-) diff --git a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc index ed7897c4..b8950fee 100644 --- a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc +++ b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc @@ -1,10 +1,10 @@ = 22ND3 == Status description -error: data exception - wrong property for vector search filtering. The property `{ <> }` has not been added as an additional property for the vector index `{ <> }`. +error: data exception - wrong property for vector search filtering. The property `{ <> }` has not been added as an additional property to the vector index `{ <> }`. == Example scenario -For example, assuming that you have a vector index created by +For example, assuming that you have a vector index created by the following command: [source,cypher] ---- @@ -14,7 +14,7 @@ FOR (m:Movie) ON m.embedding WITH [m.rating] ---- -When using another property key than `rating` in a vector search filter: +When using a property key other than `rating` in a vector search filter: [source,cypher] ---- @@ -33,10 +33,11 @@ You will receive an error with GQLSTATUS 22ND3 and status description: [source] ---- -error: data exception - wrong property for vector search filtering. The property `votes` has not been added as an additional property for the vector index 'moviePlots'. +error: data exception - wrong property for vector search filtering. The property `votes` has not been added as an additional property to the vector index 'moviePlots'. ---- == Possible solution + If you want to use the property `votes` for vector search filtering, it must be an additional property of the vector index. This can be achieved by dropping and re-creating the vector index like this: diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc index 0d25b293..930fe6e5 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I73.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -1,10 +1,10 @@ = 42I73 == Status description -error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. x.prop = 1), an open range (e.g. x.prop >= 1), or a between range (e.g. x.prop > 1 AND x.prop < 100). `{ <> }` does not fulfill this. +error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), an open range (e.g. `x.prop >= 1`), or a between range (e.g. `x.prop > 1 AND x.prop < 100`). `{ <> }` does not fulfill this. == Example scenarios -For example, assuming that you have a vector index created by: +For example, assuming that you have a vector index created by the following command: [source,cypher] ---- @@ -14,6 +14,9 @@ FOR (m:Movie) ON m.embedding WITH [m.rating] ---- + +.Using `NOT` inside a vector search filter +===== When trying to use `NOT` inside a vector search filter: [source,cypher] @@ -33,9 +36,12 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 [source] ---- -error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. x.prop = 1), an open range (e.g. x.prop >= 1), or a between range (e.g. x.prop > 1 AND x.prop < 100). `NOT movie.rating = 8` does not fulfill this. +error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), an open range (e.g. `x.prop >= 1`), or a between range (e.g. `x.prop > 1 AND x.prop < 100`). `NOT movie.rating = 8` does not fulfill this. ---- +===== +.Using multiple open ranges on the same property inside a vector search filter +===== When trying to use multiple open ranges on the same property inside a vector search filter: [source,cypher] @@ -55,8 +61,9 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 [source] ---- -error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. x.prop = 1), an open range (e.g. x.prop >= 1), or a between range (e.g. x.prop > 1 AND x.prop < 100). `movie.rating > 6 AND movie.rating > 8` does not fulfill this. +error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), an open range (e.g. `x.prop >= 1`), or a between range (e.g. `x.prop > 1 AND x.prop < 100`). `movie.rating > 6 AND movie.rating > 8` does not fulfill this. ---- +===== == Possible solution Certain predicates are possible to rewrite so they adhere to the rules of vector search filtering. diff --git a/modules/ROOT/pages/errors/gql-errors/42I74.adoc b/modules/ROOT/pages/errors/gql-errors/42I74.adoc index d2985895..cd9d4715 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I74.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I74.adoc @@ -4,7 +4,7 @@ error: syntax error or access rule violation - wrong variable for vector search filtering. The variable `{ <>1 }` in a vector search filter property predicate must be the same as the search clause binding variable `{ <>2 }`. == Example scenario -For example, assuming that you have a vector index created by: +For example, assuming that you have a vector index created by the following command: [source,cypher] ---- @@ -14,7 +14,7 @@ FOR (m:Movie) ON m.embedding WITH [m.rating] ---- -When trying to use another variable than `movie` in the vector search filter in the following query: +When trying to use a variable other than `movie` in the vector search filter in the following query: [source,cypher] ---- diff --git a/modules/ROOT/pages/errors/gql-errors/42I75.adoc b/modules/ROOT/pages/errors/gql-errors/42I75.adoc index 6b3a33cb..9065b4e7 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I75.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I75.adoc @@ -4,7 +4,7 @@ error: syntax error or access rule violation - self-referencing in vector search. The expression `{ <> }` in the search clause may not depend on the search clause binding variable `{ <> }`. == Example scenarios -For example, assuming that you have a vector index created by: +For example, assuming that you have a vector index created by the following command: [source,cypher] ---- @@ -14,6 +14,8 @@ FOR (m:Movie) ON m.embedding WITH [m.rating] ---- +.Using the search binding variable in the `FOR` subclause of a vector search +===== When trying to use the search binding variable `movie` in the `FOR` subclause in the following query: [source,cypher] @@ -34,7 +36,10 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 ---- error: syntax error or access rule violation - self-referencing in vector search. The expression `movie.embedding` in the search clause may not depend on the search clause binding variable `movie`. ---- +===== +.Using the search binding variable in the `WHERE` subclause of a vector search +===== When trying to use the search binding variable `movie` in the RHS of the predicate in the `WHERE` subclause in the following query: [source,cypher] @@ -57,6 +62,7 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 ---- error: syntax error or access rule violation - self-referencing in vector search. The expression `movie.year` in the search clause may not depend on the search clause binding variable `movie`. ---- +===== ifndef::backend-pdf[] [discrete.glossary] diff --git a/modules/ROOT/pages/errors/gql-errors/index.adoc b/modules/ROOT/pages/errors/gql-errors/index.adoc index 4822131e..62191e37 100644 --- a/modules/ROOT/pages/errors/gql-errors/index.adoc +++ b/modules/ROOT/pages/errors/gql-errors/index.adoc @@ -726,6 +726,10 @@ Status description:: error: data exception - operation not allowed for roles tha Status description:: error: data exception - operation not allowed for roles with `DENY` privileges. Invalid input: `'{ <> }'` is not allowed for roles with `DENY` privileges. +=== xref:errors/gql-errors/22ND3.adoc[22ND3] + +Status description:: error: data exception - wrong property for vector search filtering. The property `{ <> }` has not been added as an additional property to the vector index `{ <> }`. + [[invalid-transaction-state]] == Invalid transaction state @@ -1182,6 +1186,17 @@ Status description:: error: syntax error or access rule violation - search claus === xref:errors/gql-errors/42I72.adoc[42I72] Status description:: error: syntax error or access rule violation - search clause with too complex pattern. In order to have a search clause, a `MATCH` statement can only have a single node or relationship pattern and no selectors. +=== xref:errors/gql-errors/42I73.adoc[42I73] + +Status description:: error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), an open range (e.g. `x.prop >= 1`), or a between range (e.g. `x.prop > 1 AND x.prop < 100`). `{ <> }` does not fulfill this. + +=== xref:errors/gql-errors/42I74.adoc[42I74] + +Status description:: error: syntax error or access rule violation - wrong variable for vector search filtering. The variable `{ <>1 }` in a vector search filter property predicate must be the same as the search clause binding variable `{ <>2 }`. + +=== xref:errors/gql-errors/42I75.adoc[42I75] + +Status description:: error: syntax error or access rule violation - self-referencing in vector search. The expression `{ <> }` in the search clause may not depend on the search clause binding variable `{ <> }`. === xref:errors/gql-errors/42I76.adoc[42I76] From 62c968b6f8847516f00ddb8894320e0dc10b82b9 Mon Sep 17 00:00:00 2001 From: Louise Berglund Date: Mon, 19 Jan 2026 09:27:09 +0100 Subject: [PATCH 04/17] Fix review comments --- modules/ROOT/pages/errors/gql-errors/22ND3.adoc | 12 ++++++++---- modules/ROOT/pages/errors/gql-errors/42I73.adoc | 2 +- modules/ROOT/pages/errors/gql-errors/42I75.adoc | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc index b8950fee..983af130 100644 --- a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc +++ b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc @@ -1,7 +1,7 @@ = 22ND3 == Status description -error: data exception - wrong property for vector search filtering. The property `{ <> }` has not been added as an additional property to the vector index `{ <> }`. +error: data exception - wrong property for vector search filtering. The property `{ <> }` is not an additional property of the vector index `{ <> }`. == Example scenario For example, assuming that you have a vector index created by the following command: @@ -33,19 +33,23 @@ You will receive an error with GQLSTATUS 22ND3 and status description: [source] ---- -error: data exception - wrong property for vector search filtering. The property `votes` has not been added as an additional property to the vector index 'moviePlots'. +error: data exception - wrong property for vector search filtering. The property `votes` is not an additional property of the vector index 'moviePlots'. ---- == Possible solution -If you want to use the property `votes` for vector search filtering, it must be an additional property of the vector index. -This can be achieved by dropping and re-creating the vector index like this: +If you want to use the property `votes` for vector search filtering, it must be added as an additional property to the vector index. +For example: + +. Drop the index you want to add the property to: [source,cypher] ---- DROP INDEX moviePlots ---- +. Recreate the index by adding the new property to the index: + [source,cypher] ---- CYPHER 25 diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc index 930fe6e5..00f449e6 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I73.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -67,7 +67,7 @@ error: syntax error or access rule violation - invalid predicate for vector sear == Possible solution Certain predicates are possible to rewrite so they adhere to the rules of vector search filtering. -E.g. the predicate `NOT movie.rating < 7` can be rewritten to `movie.rating >= 7`, while the predicate `movie.rating > 6 AND movie.rating > 8` can be rewritten to `movie.rating > 6`. +For example, the predicate `NOT movie.rating < 7` can be rewritten to `movie.rating >= 7`, while the predicate `movie.rating > 6 AND movie.rating > 8` can be rewritten to `movie.rating > 8`. ifndef::backend-pdf[] [discrete.glossary] diff --git a/modules/ROOT/pages/errors/gql-errors/42I75.adoc b/modules/ROOT/pages/errors/gql-errors/42I75.adoc index 9065b4e7..a0acb432 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I75.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I75.adoc @@ -50,7 +50,7 @@ MATCH (movie:Movie) SEARCH movie IN ( VECTOR INDEX moviePlots FOR m.embedding - WHERE move.rating = movie.year + WHERE movie.rating = movie.year LIMIT 5 ) RETURN movie.title AS title, movie.rating AS rating From a1e3abf2acf4c702d2483ba437a06bf65eb5195a Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Mon, 19 Jan 2026 12:23:38 +0000 Subject: [PATCH 05/17] fix the rendering and regenerate the index file --- modules/ROOT/pages/errors/gql-errors/22ND3.adoc | 4 ++-- modules/ROOT/pages/errors/gql-errors/index.adoc | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc index 983af130..38122d85 100644 --- a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc +++ b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc @@ -42,14 +42,14 @@ If you want to use the property `votes` for vector search filtering, it must be For example: . Drop the index you want to add the property to: - ++ [source,cypher] ---- DROP INDEX moviePlots ---- . Recreate the index by adding the new property to the index: - ++ [source,cypher] ---- CYPHER 25 diff --git a/modules/ROOT/pages/errors/gql-errors/index.adoc b/modules/ROOT/pages/errors/gql-errors/index.adoc index 62191e37..330d7937 100644 --- a/modules/ROOT/pages/errors/gql-errors/index.adoc +++ b/modules/ROOT/pages/errors/gql-errors/index.adoc @@ -728,7 +728,7 @@ Status description:: error: data exception - operation not allowed for roles wit === xref:errors/gql-errors/22ND3.adoc[22ND3] -Status description:: error: data exception - wrong property for vector search filtering. The property `{ <> }` has not been added as an additional property to the vector index `{ <> }`. +Status description:: error: data exception - wrong property for vector search filtering. The property `{ <> }` is not an additional property of the vector index `{ <> }`. [[invalid-transaction-state]] @@ -1186,6 +1186,7 @@ Status description:: error: syntax error or access rule violation - search claus === xref:errors/gql-errors/42I72.adoc[42I72] Status description:: error: syntax error or access rule violation - search clause with too complex pattern. In order to have a search clause, a `MATCH` statement can only have a single node or relationship pattern and no selectors. + === xref:errors/gql-errors/42I73.adoc[42I73] Status description:: error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), an open range (e.g. `x.prop >= 1`), or a between range (e.g. `x.prop > 1 AND x.prop < 100`). `{ <> }` does not fulfill this. From baadb59e7146ef1b2a0b6caba7ef8c4fe76e4d83 Mon Sep 17 00:00:00 2001 From: Louise Berglund Date: Tue, 20 Jan 2026 09:15:02 +0100 Subject: [PATCH 06/17] Document 22NCG --- modules/ROOT/content-nav.adoc | 1 + .../ROOT/pages/errors/gql-errors/22NCG.adoc | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 modules/ROOT/pages/errors/gql-errors/22NCG.adoc diff --git a/modules/ROOT/content-nav.adoc b/modules/ROOT/content-nav.adoc index 5d5a6f0b..326f9fc7 100644 --- a/modules/ROOT/content-nav.adoc +++ b/modules/ROOT/content-nav.adoc @@ -178,6 +178,7 @@ **** xref:errors/gql-errors/22NCD.adoc[] **** xref:errors/gql-errors/22NCE.adoc[] **** xref:errors/gql-errors/22NCF.adoc[] +**** xref:errors/gql-errors/22NCG.adoc[] **** xref:errors/gql-errors/22ND1.adoc[] **** xref:errors/gql-errors/22ND2.adoc[] **** xref:errors/gql-errors/22ND3.adoc[] diff --git a/modules/ROOT/pages/errors/gql-errors/22NCG.adoc b/modules/ROOT/pages/errors/gql-errors/22NCG.adoc new file mode 100644 index 00000000..f9f9c202 --- /dev/null +++ b/modules/ROOT/pages/errors/gql-errors/22NCG.adoc @@ -0,0 +1,33 @@ += 22NCG + +== Status description +error: data exception - wrong index type. Expected the index `{ <> }` to be a `{ <>1 }` index but was a `{ <>2 }` index. + +== Example scenario +For example, assuming that you have a range index called `rangeIdx`, when trying to use it in a search clause: + +[source,cypher] +---- +CYPHER 25 +MATCH (movie:Movie) + SEARCH movie IN ( + VECTOR INDEX rangeIdx + FOR [1, 2, 3] + LIMIT 5 + ) +RETURN movie.title AS title +---- + +You will receive an error with GQLSTATUS 22NCG and status description: + +[source] +---- +error: data exception - wrong index type. Expected the index `rangeIdx` to be a vector index but was a range index. +---- + +ifndef::backend-pdf[] +[discrete.glossary] +== Glossary + +include::partial$glossary.adoc[] +endif::[] \ No newline at end of file From 247c340de14829f99db7f312afb798ed721872b3 Mon Sep 17 00:00:00 2001 From: Louise Berglund Date: Tue, 20 Jan 2026 09:19:31 +0100 Subject: [PATCH 07/17] Update status description of 42I73 --- modules/ROOT/pages/errors/gql-errors/42I73.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc index 00f449e6..20d032ab 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I73.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -1,7 +1,7 @@ = 42I73 == Status description -error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), an open range (e.g. `x.prop >= 1`), or a between range (e.g. `x.prop > 1 AND x.prop < 100`). `{ <> }` does not fulfill this. +error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). `{ <> }` does not fulfill this. == Example scenarios For example, assuming that you have a vector index created by the following command: @@ -42,7 +42,7 @@ error: syntax error or access rule violation - invalid predicate for vector sear .Using multiple open ranges on the same property inside a vector search filter ===== -When trying to use multiple open ranges on the same property inside a vector search filter: +When trying to use multiple half-bounded ranges on the same property inside a vector search filter: [source,cypher] ---- @@ -51,7 +51,7 @@ MATCH (movie:Movie) SEARCH movie IN ( VECTOR INDEX moviePlots FOR [1, 2, 3] - WHERE NOT movie.rating > 6 AND movie.rating > 8 + WHERE movie.rating > 6 AND movie.rating > 8 LIMIT 5 ) RETURN movie.title AS title, movie.rating AS rating @@ -61,7 +61,7 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 [source] ---- -error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), an open range (e.g. `x.prop >= 1`), or a between range (e.g. `x.prop > 1 AND x.prop < 100`). `movie.rating > 6 AND movie.rating > 8` does not fulfill this. +error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). `movie.rating > 6 AND movie.rating > 8` does not fulfill this. ---- ===== From 38be86ca4a64b00f40f265fe9cbb4d83196eb950 Mon Sep 17 00:00:00 2001 From: Louise Berglund Date: Tue, 20 Jan 2026 09:51:14 +0100 Subject: [PATCH 08/17] Update modules/ROOT/pages/errors/gql-errors/42I73.adoc Co-authored-by: Arne Fischereit <79841228+arnefischereit@users.noreply.github.com> --- modules/ROOT/pages/errors/gql-errors/42I73.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc index 20d032ab..d81c64a0 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I73.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -40,7 +40,7 @@ error: syntax error or access rule violation - invalid predicate for vector sear ---- ===== -.Using multiple open ranges on the same property inside a vector search filter +.Using multiple half-bounded ranges on the same property inside a vector search filter ===== When trying to use multiple half-bounded ranges on the same property inside a vector search filter: From e5ddd3941cd4b947009aa3be75aa0edf7970ee9c Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Tue, 27 Jan 2026 10:15:57 +0000 Subject: [PATCH 09/17] regenerate the index file --- modules/ROOT/pages/errors/gql-errors/index.adoc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/errors/gql-errors/index.adoc b/modules/ROOT/pages/errors/gql-errors/index.adoc index 330d7937..ed918042 100644 --- a/modules/ROOT/pages/errors/gql-errors/index.adoc +++ b/modules/ROOT/pages/errors/gql-errors/index.adoc @@ -718,6 +718,10 @@ Status description:: error: data exception - node element type in use. The node Status description:: error: data exception - graph type constraint not supported. Graph type constraint definitions are not supported in the `{ <> }` operation. +=== xref:errors/gql-errors/22NCG.adoc[22NCG] + +Status description:: error: data exception - wrong index type. Expected the index `{ <> }` to be a `{ <>1 }` index but was a `{ <>2 }` index. + === xref:errors/gql-errors/22ND1.adoc[22ND1] Status description:: error: data exception - operation not allowed for roles that are granted to an `AUTH RULE`. Invalid input: `'{ <> }'` is not allowed for roles that are granted to an `AUTH RULE`. @@ -1189,7 +1193,7 @@ Status description:: error: syntax error or access rule violation - search claus === xref:errors/gql-errors/42I73.adoc[42I73] -Status description:: error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), an open range (e.g. `x.prop >= 1`), or a between range (e.g. `x.prop > 1 AND x.prop < 100`). `{ <> }` does not fulfill this. +Status description:: error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). `{ <> }` does not fulfill this. === xref:errors/gql-errors/42I74.adoc[42I74] From 6d3ba03a6b19e8b02aea9323fa8f51662dc7c14d Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Tue, 27 Jan 2026 12:09:57 +0000 Subject: [PATCH 10/17] Apply suggestion from @renetapopova --- modules/ROOT/pages/errors/gql-errors/42I73.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc index d81c64a0..7828b2cf 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I73.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -36,7 +36,7 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 [source] ---- -error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), an open range (e.g. `x.prop >= 1`), or a between range (e.g. `x.prop > 1 AND x.prop < 100`). `NOT movie.rating = 8` does not fulfill this. +error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). `NOT movie.rating = 8` does not fulfill this. ---- ===== From 9320ff4a9d33e0c09220776922d07f9bb6d6b14d Mon Sep 17 00:00:00 2001 From: Louise Berglund Date: Thu, 5 Feb 2026 09:49:24 +0100 Subject: [PATCH 11/17] Apply suggestions from code review Co-authored-by: Reneta Popova --- modules/ROOT/pages/errors/gql-errors/42I73.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc index 7828b2cf..f7cf739a 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I73.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -1,7 +1,7 @@ = 42I73 == Status description -error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). `{ <> }` does not fulfill this. +error: syntax error or access rule violation - invalid predicate for vector search filtering. The vector search filter predicate `{ <> }` must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). == Example scenarios For example, assuming that you have a vector index created by the following command: @@ -36,7 +36,7 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 [source] ---- -error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). `NOT movie.rating = 8` does not fulfill this. +error: syntax error or access rule violation - invalid predicate for vector search filtering. The vector search filter predicate `NOT movie.rating = 8` must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). ---- ===== @@ -61,7 +61,7 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 [source] ---- -error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). `movie.rating > 6 AND movie.rating > 8` does not fulfill this. +error: syntax error or access rule violation - invalid predicate for vector search filtering. The vector search filter predicate `movie.rating > 6 AND movie.rating > 8` must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). ---- ===== From 50f2703757fecc094eeee163c8a71bde0d2d3fa5 Mon Sep 17 00:00:00 2001 From: Louise Berglund Date: Thu, 5 Feb 2026 14:45:43 +0100 Subject: [PATCH 12/17] Align terminology with Cypher manual --- modules/ROOT/pages/errors/gql-errors/22NCG.adoc | 2 +- modules/ROOT/pages/errors/gql-errors/22ND3.adoc | 8 ++++---- modules/ROOT/pages/errors/gql-errors/42I73.adoc | 16 ++++++++-------- modules/ROOT/pages/errors/gql-errors/42I74.adoc | 6 +++--- modules/ROOT/pages/errors/gql-errors/42I75.adoc | 4 ++-- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/ROOT/pages/errors/gql-errors/22NCG.adoc b/modules/ROOT/pages/errors/gql-errors/22NCG.adoc index f9f9c202..6f2796de 100644 --- a/modules/ROOT/pages/errors/gql-errors/22NCG.adoc +++ b/modules/ROOT/pages/errors/gql-errors/22NCG.adoc @@ -4,7 +4,7 @@ error: data exception - wrong index type. Expected the index `{ <> }` to be a `{ <>1 }` index but was a `{ <>2 }` index. == Example scenario -For example, assuming that you have a range index called `rangeIdx`, when trying to use it in a search clause: +For example, assuming that you have a range index called `rangeIdx`, when trying to use it in a `SEARCH` clause: [source,cypher] ---- diff --git a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc index 38122d85..624e6f5b 100644 --- a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc +++ b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc @@ -1,7 +1,7 @@ = 22ND3 == Status description -error: data exception - wrong property for vector search filtering. The property `{ <> }` is not an additional property of the vector index `{ <> }`. +error: data exception - wrong property for vector search with filters. The property `{ <> }` is not an additional property of the vector index `{ <> }` for vector search with filters. == Example scenario For example, assuming that you have a vector index created by the following command: @@ -14,7 +14,7 @@ FOR (m:Movie) ON m.embedding WITH [m.rating] ---- -When using a property key other than `rating` in a vector search filter: +When using a property key other than `rating` in the `WHERE` clause property predicate in a `SEARCH` clause: [source,cypher] ---- @@ -33,12 +33,12 @@ You will receive an error with GQLSTATUS 22ND3 and status description: [source] ---- -error: data exception - wrong property for vector search filtering. The property `votes` is not an additional property of the vector index 'moviePlots'. +error: data exception - wrong property for vector search with filters. The property `votes` is not an additional property of the vector index 'moviePlots' for vector search with filters. ---- == Possible solution -If you want to use the property `votes` for vector search filtering, it must be added as an additional property to the vector index. +If you want to use the property `votes` for vector search with filters, it must be added as an additional property to the vector index. For example: . Drop the index you want to add the property to: diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc index f7cf739a..a5424206 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I73.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -1,7 +1,7 @@ = 42I73 == Status description -error: syntax error or access rule violation - invalid predicate for vector search filtering. The vector search filter predicate `{ <> }` must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). +error: syntax error or access rule violation - invalid predicate for vector search with filters. The vector search filter predicate `{ <> }` must consist of one or more property predicates joined by `AND`, and the combined property predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). == Example scenarios For example, assuming that you have a vector index created by the following command: @@ -15,9 +15,9 @@ WITH [m.rating] ---- -.Using `NOT` inside a vector search filter +.Using `NOT` inside the `WHERE` subclause predicate in a `SEARCH` clause ===== -When trying to use `NOT` inside a vector search filter: +When trying to use `NOT` inside the `WHERE` subclause predicate in a `SEARCH` clause: [source,cypher] ---- @@ -36,13 +36,13 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 [source] ---- -error: syntax error or access rule violation - invalid predicate for vector search filtering. The vector search filter predicate `NOT movie.rating = 8` must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). +error: syntax error or access rule violation - invalid predicate for vector search with filters. The vector search filter predicate `NOT movie.rating = 8` must consist of one or more property predicates joined by AND, and the combined property predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). ---- ===== -.Using multiple half-bounded ranges on the same property inside a vector search filter +.Using multiple half-bounded ranges on the same property inside the `WHERE` subclause predicate in a `SEARCH` clause ===== -When trying to use multiple half-bounded ranges on the same property inside a vector search filter: +When trying to use multiple half-bounded ranges on the same property inside the `WHERE` subclause predicate in a `SEARCH` clause: [source,cypher] ---- @@ -61,12 +61,12 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 [source] ---- -error: syntax error or access rule violation - invalid predicate for vector search filtering. The vector search filter predicate `movie.rating > 6 AND movie.rating > 8` must consist of one or more predicates joined by AND, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). +error: syntax error or access rule violation - invalid predicate for vector search with filters. The vector search filter predicate `movie.rating > 6 AND movie.rating > 8` must consist of one or more property predicates joined by AND, and the combined property predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). ---- ===== == Possible solution -Certain predicates are possible to rewrite so they adhere to the rules of vector search filtering. +Certain predicates are possible to rewrite so they adhere to the rules of vector search with filters. For example, the predicate `NOT movie.rating < 7` can be rewritten to `movie.rating >= 7`, while the predicate `movie.rating > 6 AND movie.rating > 8` can be rewritten to `movie.rating > 8`. ifndef::backend-pdf[] diff --git a/modules/ROOT/pages/errors/gql-errors/42I74.adoc b/modules/ROOT/pages/errors/gql-errors/42I74.adoc index cd9d4715..899eac9b 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I74.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I74.adoc @@ -1,7 +1,7 @@ = 42I74 == Status description -error: syntax error or access rule violation - wrong variable for vector search filtering. The variable `{ <>1 }` in a vector search filter property predicate must be the same as the search clause binding variable `{ <>2 }`. +error: syntax error or access rule violation - wrong variable for vector search with filters. The variable `{ <>1 }` in a vector search filter property predicate must be the same as the search clause binding variable `{ <>2 }`. == Example scenario For example, assuming that you have a vector index created by the following command: @@ -14,7 +14,7 @@ FOR (m:Movie) ON m.embedding WITH [m.rating] ---- -When trying to use a variable other than `movie` in the vector search filter in the following query: +When trying to use a variable other than `movie` inside the `WHERE` subclause predicate in a `SEARCH` clause in the following query: [source,cypher] ---- @@ -34,7 +34,7 @@ You will receive an error with GQLSTATUS xref:errors/gql-errors/42001.adoc[42001 [source] ---- -error: syntax error or access rule violation - wrong variable for vector search filtering. The variable `m` in a vector search filter property predicate must be the same as the search clause binding variable `movie`. +error: syntax error or access rule violation - wrong variable for vector search with filters. The variable `m` in a vector search filter property predicate must be the same as the search clause binding variable `movie`. ---- ifndef::backend-pdf[] diff --git a/modules/ROOT/pages/errors/gql-errors/42I75.adoc b/modules/ROOT/pages/errors/gql-errors/42I75.adoc index a0acb432..0708b5a5 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I75.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I75.adoc @@ -38,9 +38,9 @@ error: syntax error or access rule violation - self-referencing in vector search ---- ===== -.Using the search binding variable in the `WHERE` subclause of a vector search +.Using the search binding variable in the `WHERE` subclause of a `SEARCH` clause ===== -When trying to use the search binding variable `movie` in the RHS of the predicate in the `WHERE` subclause in the following query: +When trying to use the search binding variable `movie` in both the left-hand and right-hand side of the predicate in the `WHERE` subclause in the following query: [source,cypher] ---- From 7eb65574d388833d00f5ab14d8a9a07c7d076f00 Mon Sep 17 00:00:00 2001 From: Louise Berglund Date: Fri, 6 Feb 2026 08:39:36 +0100 Subject: [PATCH 13/17] Apply suggestions from code review Co-authored-by: Reneta Popova --- modules/ROOT/pages/errors/gql-errors/22ND3.adoc | 2 +- modules/ROOT/pages/errors/gql-errors/42I73.adoc | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc index 624e6f5b..57e99c6d 100644 --- a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc +++ b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc @@ -1,7 +1,7 @@ = 22ND3 == Status description -error: data exception - wrong property for vector search with filters. The property `{ <> }` is not an additional property of the vector index `{ <> }` for vector search with filters. +error: data exception - wrong property for vector search with filters. The property `{ <> }` is not an additional property for vector search with filters on the vector index `{ <> }` . == Example scenario For example, assuming that you have a vector index created by the following command: diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc index a5424206..0b00333f 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I73.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -68,7 +68,9 @@ error: syntax error or access rule violation - invalid predicate for vector sear == Possible solution Certain predicates are possible to rewrite so they adhere to the rules of vector search with filters. For example, the predicate `NOT movie.rating < 7` can be rewritten to `movie.rating >= 7`, while the predicate `movie.rating > 6 AND movie.rating > 8` can be rewritten to `movie.rating > 8`. - ++ +However, it is not always possible to rewrite the predicates. +For the complete list of limitations, see link:https://neo4j.com/docs/cypher-manual/current/clauses/search/#limitations[Cypher Manual -> Limitations of the SEARCH clause]. ifndef::backend-pdf[] [discrete.glossary] == Glossary From 92e26d37fa10bb46ffacfc7ad73ffe491862ce2b Mon Sep 17 00:00:00 2001 From: Louise Berglund Date: Fri, 6 Feb 2026 08:48:01 +0100 Subject: [PATCH 14/17] Align example with new status description --- modules/ROOT/pages/errors/gql-errors/22ND3.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc index 57e99c6d..3fc8df22 100644 --- a/modules/ROOT/pages/errors/gql-errors/22ND3.adoc +++ b/modules/ROOT/pages/errors/gql-errors/22ND3.adoc @@ -33,7 +33,7 @@ You will receive an error with GQLSTATUS 22ND3 and status description: [source] ---- -error: data exception - wrong property for vector search with filters. The property `votes` is not an additional property of the vector index 'moviePlots' for vector search with filters. +error: data exception - wrong property for vector search with filters. The property `votes` is not an additional property for vector search with filters on the vector index 'moviePlots'. ---- == Possible solution From 37f9ba79430504395b9c2e5d484101a8783f063c Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Fri, 6 Feb 2026 13:59:11 +0000 Subject: [PATCH 15/17] regenerate the index file --- modules/ROOT/pages/errors/gql-errors/index.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/ROOT/pages/errors/gql-errors/index.adoc b/modules/ROOT/pages/errors/gql-errors/index.adoc index ed918042..0a143b65 100644 --- a/modules/ROOT/pages/errors/gql-errors/index.adoc +++ b/modules/ROOT/pages/errors/gql-errors/index.adoc @@ -732,7 +732,7 @@ Status description:: error: data exception - operation not allowed for roles wit === xref:errors/gql-errors/22ND3.adoc[22ND3] -Status description:: error: data exception - wrong property for vector search filtering. The property `{ <> }` is not an additional property of the vector index `{ <> }`. +Status description:: error: data exception - wrong property for vector search with filters. The property `{ <> }` is not an additional property for vector search with filters on the vector index `{ <> }` . [[invalid-transaction-state]] @@ -1193,11 +1193,11 @@ Status description:: error: syntax error or access rule violation - search claus === xref:errors/gql-errors/42I73.adoc[42I73] -Status description:: error: syntax error or access rule violation - invalid predicate for vector search filtering. A vector search filter must consist of one or more predicates joined by `AND`, and the combined predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). `{ <> }` does not fulfill this. +Status description:: error: syntax error or access rule violation - invalid predicate for vector search with filters. The vector search filter predicate `{ <> }` must consist of one or more property predicates joined by `AND`, and the combined property predicates for each property must specify either an exact value (e.g. `x.prop = 1`), a half-bounded range (e.g. `x.prop >= 1`), or a bounded range (e.g. `x.prop > 1 AND x.prop < 100`). === xref:errors/gql-errors/42I74.adoc[42I74] -Status description:: error: syntax error or access rule violation - wrong variable for vector search filtering. The variable `{ <>1 }` in a vector search filter property predicate must be the same as the search clause binding variable `{ <>2 }`. +Status description:: error: syntax error or access rule violation - wrong variable for vector search with filters. The variable `{ <>1 }` in a vector search filter property predicate must be the same as the search clause binding variable `{ <>2 }`. === xref:errors/gql-errors/42I75.adoc[42I75] From b85908287989144dc9d0c116a6a7b5676953075e Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Fri, 6 Feb 2026 14:51:57 +0000 Subject: [PATCH 16/17] Apply suggestion from @renetapopova --- modules/ROOT/pages/errors/gql-errors/42I73.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc index 0b00333f..2cf86c06 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I73.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -66,7 +66,7 @@ error: syntax error or access rule violation - invalid predicate for vector sear ===== == Possible solution -Certain predicates are possible to rewrite so they adhere to the rules of vector search with filters. +You can rewrite the predicates to comply with the vector search filter rules. For example, the predicate `NOT movie.rating < 7` can be rewritten to `movie.rating >= 7`, while the predicate `movie.rating > 6 AND movie.rating > 8` can be rewritten to `movie.rating > 8`. + However, it is not always possible to rewrite the predicates. From 9e3aeb5af06d36ecbc6a8b38307fa3c4b937baee Mon Sep 17 00:00:00 2001 From: Reneta Popova Date: Fri, 6 Feb 2026 15:10:41 +0000 Subject: [PATCH 17/17] Apply suggestion from @renetapopova --- modules/ROOT/pages/errors/gql-errors/42I73.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/ROOT/pages/errors/gql-errors/42I73.adoc b/modules/ROOT/pages/errors/gql-errors/42I73.adoc index 2cf86c06..47246ca3 100644 --- a/modules/ROOT/pages/errors/gql-errors/42I73.adoc +++ b/modules/ROOT/pages/errors/gql-errors/42I73.adoc @@ -68,7 +68,6 @@ error: syntax error or access rule violation - invalid predicate for vector sear == Possible solution You can rewrite the predicates to comply with the vector search filter rules. For example, the predicate `NOT movie.rating < 7` can be rewritten to `movie.rating >= 7`, while the predicate `movie.rating > 6 AND movie.rating > 8` can be rewritten to `movie.rating > 8`. -+ However, it is not always possible to rewrite the predicates. For the complete list of limitations, see link:https://neo4j.com/docs/cypher-manual/current/clauses/search/#limitations[Cypher Manual -> Limitations of the SEARCH clause]. ifndef::backend-pdf[]