diff --git a/modules/ROOT/pages/clauses/where.adoc b/modules/ROOT/pages/clauses/where.adoc index b0505906d..088b66bc3 100644 --- a/modules/ROOT/pages/clauses/where.adoc +++ b/modules/ROOT/pages/clauses/where.adoc @@ -338,6 +338,35 @@ The `name` and `age` for `Peter` are are returned because his name contains "ete |=== +[[match-string-is-normalized]] +=== Checking if a `STRING` `IS NORMALIZED` + +The `IS NORMALIZED` operator (introduced in Neo4j 5.17) is used to check whether the given `STRING` is in the `NFC` Unicode normalization form: + +.Query +[source, cypher] +---- +MATCH (n:Person) +WHERE n.name IS NORMALIZED +RETURN n.name AS normalizedNames +---- + +The given `STRING` values contain only normalized Unicode characters, therefore all the matched `name` properties are returned. +For more information, see the section about the xref:syntax/operators.adoc#match-string-is-normalized[normalization operator]. + +.Result +[role="queryresult",options="header,footer",cols="1*+`, `+<+`, `+>+`, `+<=+`, `+>=+`, `IS NULL`, `IS NOT NULL` | xref::syntax/operators.adoc#query-operators-comparison[String-specific comparison operators] | `STARTS WITH`, `ENDS WITH`, `CONTAINS`, `=~` (regex matching) | xref::syntax/operators.adoc#query-operators-boolean[Boolean operators] | `AND`, `OR`, `XOR`, `NOT` -| xref::syntax/operators.adoc#query-operators-string[String operators] | `+` (string concatenation) +| xref::syntax/operators.adoc#query-operators-string[String operators] | `+` (string concatenation), `IS NORMALIZED` | xref::syntax/operators.adoc#query-operators-temporal[Temporal operators] | `+` and `-` for operations between durations and temporal instants/durations, `*` and `/` for operations between durations and numbers | xref::syntax/operators.adoc#query-operators-map[Map operators] | `.` for static value access by key, `[]` for dynamic value access by key | xref::syntax/operators.adoc#query-operators-list[List operators] | `+` (list concatenation), `IN` to check existence of an element in a list, `[]` for accessing element(s) dynamically @@ -543,6 +543,7 @@ RETURN number The string operators comprise: * concatenating strings: `+` +* checking if a string is normalized: `IS NORMALIZED` [[syntax-concatenating-two-strings]] @@ -563,6 +564,102 @@ RETURN 'neo' + '4j' AS result |=== +[[match-string-is-normalized]] +=== Checking if a `STRING` `IS NORMALIZED` + +_This feature was introduced in Neo4j 5.17._ + +The `IS NORMALIZED` operator is used to check whether the given `STRING` is in the `NFC` Unicode normalization form: + +[NOTE] +==== +Unicode normalization is a process that transforms different representations of the same string into a standardized form. +For more information, see the documentation for link:https://unicode.org/reports/tr15/#Norm_Forms[Unicode normalization forms]. +==== + +.Query +[source, cypher] +---- +RETURN "the \u212B char" IS NORMALIZED AS normalized +---- + +.Result +[role="queryresult",options="header,footer",cols="1*