Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion modules/ROOT/content-nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,9 @@
* xref:genai-integrations.adoc[]
* xref:indexes/index.adoc[]
** xref:indexes/search-performance-indexes/index.adoc[]
*** xref:indexes/search-performance-indexes/managing-indexes.adoc[]
*** xref:indexes/search-performance-indexes/create-indexes.adoc[]
*** xref:indexes/search-performance-indexes/list-indexes.adoc[]
*** xref:indexes/search-performance-indexes/drop-indexes.adoc[]
*** xref:indexes/search-performance-indexes/using-indexes.adoc[]
*** xref:indexes/search-performance-indexes/index-hints.adoc[]
** xref:indexes/semantic-indexes/index.adoc[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -582,19 +582,19 @@ If the points are in a Cartesian CRS, the function returns the Euclidean distanc
| Cypher feature
| Description

| xref:indexes/search-performance-indexes/managing-indexes.adoc#create-range-index[Range indexes]
| xref:indexes/search-performance-indexes/create-indexes.adoc#create-range-index[Range indexes]
| Neo4j’s default index.
Supports most types of predicates.

| xref:indexes/search-performance-indexes/managing-indexes.adoc#create-text-index[Text indexes]
| xref:indexes/search-performance-indexes/create-indexes.adoc#create-text-index[Text indexes]
| Solves predicates operating on `STRING` values.
Optimized for queries filtering with the `STRING` operators `CONTAINS` and `ENDS WITH`.

| xref:indexes/search-performance-indexes/managing-indexes.adoc#create-point-index[Point indexes]
| xref:indexes/search-performance-indexes/create-indexes.adoc#create-point-index[Point indexes]
| Solves predicates on spatial `POINT` values.
Optimized for queries filtering on distance or within bounding boxes.

| xref:indexes/search-performance-indexes/managing-indexes.adoc#create-lookup-index[Token lookup indexes]
| xref:indexes/search-performance-indexes/create-indexes.adoc#create-lookup-index[Token lookup indexes]
| Only solves node label and relationship type predicates (i.e. they cannot solve any predicates filtering on properties).

| xref:indexes/semantic-indexes/full-text-indexes.adoc#create-full-text-indexes[Full text indexes]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
This page describes advanced query optimizations based on native index capabilities.

One of the most important and useful ways of optimizing Cypher queries involves creating appropriate indexes.
This is described in more detail in xref:indexes/search-performance-indexes/managing-indexes.adoc[], and demonstrated in xref::appendix/tutorials/basic-query-tuning.adoc[].
This is described in more detail in xref:indexes/search-performance-indexes/create-indexes.adoc[], and demonstrated in xref::appendix/tutorials/basic-query-tuning.adoc[].
In summary, an index will be based on the combination of a `Label` and a `property`.
Any Cypher query that searches for nodes with a specific label and some predicate on the property (equality, range or existence) will be planned to use
the index if the cost planner deems that to be the most efficient solution.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -764,5 +764,5 @@ Total database accesses: 5, total allocated memory: 184
1 row
----

Our execution plan is down to a single row and uses the xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-node-index-seek[Node Index Seek] operator which does an index seek (see xref::indexes/search-performance-indexes/managing-indexes.adoc[]) to find the appropriate node.
Our execution plan is down to a single row and uses the xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-node-index-seek[Node Index Seek] operator which does an index seek (see xref::indexes/search-performance-indexes/list-indexes.adoc[]) to find the appropriate node.

2 changes: 1 addition & 1 deletion modules/ROOT/pages/clauses/merge.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ If there isn't a node with the specific `name` property, a new node will be crea
[NOTE]
====
For performance reasons, creating a schema index on the label or property is highly recommended when using `MERGE`.
See xref:indexes/search-performance-indexes/managing-indexes.adoc[] for more information.
See xref:indexes/search-performance-indexes/create-indexes.adoc[] for more information.
====

When using `MERGE` on full patterns, the behavior is that either the whole pattern matches, or the whole pattern is created.
Expand Down
6 changes: 3 additions & 3 deletions modules/ROOT/pages/constraints/managing-constraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -943,7 +943,7 @@ Constraint already exists: Constraint( id=7, name='book_title_year', type='NODE
[[constraints-and-backing-indexes]]
==== Constraints and backing indexes

Property uniqueness constraints and key constraints are backed by xref:indexes/search-performance-indexes/managing-indexes.adoc#create-range-index[range indexes].
Property uniqueness constraints and key constraints are backed by xref:indexes/search-performance-indexes/create-indexes.adoc#create-range-index[range indexes].
This means that creating a property uniqueness or key constraint will create a range index with the same name, node label/relationship type and property combination as its owning constraint.
Single property constraints will create single property indexes and multiple property composite constraints will create xref:indexes/search-performance-indexes/using-indexes.adoc#composite-indexes[composite indexes].

Expand All @@ -958,7 +958,7 @@ The index makes these checks much faster by enabling direct lookups instead of s
Cypher will use the indexes with an owning constraint in the same way that it utilizes other search-performance indexes.
For more information about how indexes impact query performance, see xref:indexes/search-performance-indexes/using-indexes.adoc[].

These indexes are listed in the `owningConstraint` column returned by the xref:indexes/search-performance-indexes/managing-indexes.adoc#list-indexes[`SHOW INDEX`] command, and the `ownedIndex` column returned by the xref:constraints/managing-constraints.adoc#list-constraints[`SHOW CONSTRAINT`] command.
These indexes are listed in the `owningConstraint` column returned by the xref:indexes/search-performance-indexes/list-indexes.adoc[`SHOW INDEX`] command, and the `ownedIndex` column returned by the xref:constraints/managing-constraints.adoc#list-constraints[`SHOW CONSTRAINT`] command.

.List constraints with backing indexes
======
Expand Down Expand Up @@ -1302,7 +1302,7 @@ CREATE CONSTRAINT book_title FOR (book:Book) REQUIRE book.title IS UNIQUE
----

In this case, the constraint cannot be created because it is in conflict with the existing graph.
Either use xref:indexes/search-performance-indexes/managing-indexes.adoc[indexes] instead, or remove/correct the offending nodes and then re-apply the constraint.
Either use xref:indexes/search-performance-indexes/create-indexes.adoc[indexes] instead, or remove/correct the offending nodes and then re-apply the constraint.

.Error message
[source, error]
Expand Down
Loading