diff --git a/modules/guides/pages/create-index.adoc b/modules/guides/pages/create-index.adoc index d3a2d1e2a..a23efc8a5 100644 --- a/modules/guides/pages/create-index.adoc +++ b/modules/guides/pages/create-index.adoc @@ -254,7 +254,7 @@ The following query creates a secondary index on an expression using the `name` [source,sqlpp] ---- -include::learn:example$services-and-indexes/indexes/create-idx-expr.n1ql[] +include::indexes:example$create-idx-expr.n1ql[] ---- For further details and examples, refer to xref:n1ql:n1ql-language-reference/createindex.adoc[CREATE INDEX]. @@ -384,7 +384,7 @@ include::partial$query-context.adoc[tag=step] .Query [source,sqlpp] ---- -include::learn:example$services-and-indexes/indexes/create-idx-composite.n1ql[] +include::indexes:example$create-idx-composite.n1ql[] ---- For further details and examples, refer to xref:n1ql:n1ql-language-reference/createindex.adoc[CREATE INDEX]. @@ -507,7 +507,7 @@ include::partial$query-context.adoc[tag=step] .Query [source,sqlpp] ---- -include::learn:example$services-and-indexes/indexes/create-idx-array.n1ql[] +include::indexes:example$create-idx-array.n1ql[] ---- ==== @@ -528,11 +528,11 @@ include::partial$query-context.adoc[tag=step] .Query [source,sqlpp] ---- -include::learn:example$services-and-indexes/indexes/create-idx-partial.n1ql[] +include::indexes:example$create-idx-partial.n1ql[] ---- ==== -For further details and examples, refer to xref:n1ql:n1ql-language-reference/indexing-and-query-perf.adoc#partial-index[Partial Index]. +For further details and examples, refer to xref:indexes:indexing-and-query-perf.adoc#partial-index[Partial Index]. === Creating a Covering Index @@ -542,13 +542,13 @@ If a query uses a covering index, the query can get all the data it needs from t To create a covering index, make sure the index includes all the fields and expressions required by the query. -For further details and examples, refer to xref:n1ql:n1ql-language-reference/covering-indexes.adoc[Covering Indexes]. +For further details and examples, refer to xref:indexes:covering-indexes.adoc[Covering Indexes]. == Related Links Reference and explanation: -* xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[Using Indexes] +* xref:indexes:indexing-overview.adoc[] Administrator guides: diff --git a/modules/guides/pages/defer-index.adoc b/modules/guides/pages/defer-index.adoc index c87ae0b18..d1fcb63e0 100644 --- a/modules/guides/pages/defer-index.adoc +++ b/modules/guides/pages/defer-index.adoc @@ -302,7 +302,7 @@ For further details, refer to https://docs.couchbase.com/sdk-api/couchbase-pytho Reference and explanation: -* xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[Using Indexes] +* xref:indexes:indexing-overview.adoc[] Administrator guides: diff --git a/modules/guides/pages/drop-index.adoc b/modules/guides/pages/drop-index.adoc index 232b2006c..7a3a1ebc5 100644 --- a/modules/guides/pages/drop-index.adoc +++ b/modules/guides/pages/drop-index.adoc @@ -335,7 +335,7 @@ For further details, refer to https://docs.couchbase.com/sdk-api/couchbase-pytho Reference and explanation: -* xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[Using Indexes] +* xref:indexes:indexing-overview.adoc[] Administrator guides: diff --git a/modules/guides/pages/index-advisor.adoc b/modules/guides/pages/index-advisor.adoc index 84a5c79c2..da6ddfb53 100644 --- a/modules/guides/pages/index-advisor.adoc +++ b/modules/guides/pages/index-advisor.adoc @@ -231,7 +231,7 @@ For more details, refer to xref:n1ql:n1ql-language-reference/advisor.adoc#adviso Reference and explanation: -* xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[Using Indexes] +* xref:indexes:indexing-overview.adoc[] Administrator guides: diff --git a/modules/guides/pages/place-index.adoc b/modules/guides/pages/place-index.adoc index 01963bab8..5ea4f35d3 100644 --- a/modules/guides/pages/place-index.adoc +++ b/modules/guides/pages/place-index.adoc @@ -104,7 +104,7 @@ include::partial$query-context.adoc[tag=step] .Query [source,sqlpp] ---- -include::learn:example$services-and-indexes/indexes/replication-num.n1ql[] +include::indexes:example$replication-num.n1ql[] ---- ==== @@ -126,13 +126,13 @@ include::partial$query-context.adoc[tag=step] .Query [source,sqlpp] ---- -include::learn:example$services-and-indexes/indexes/replication-nodes.n1ql[] +include::indexes:example$replication-nodes.n1ql[] ---- ==== NOTE: If you specify both `num_replica` _and_ `nodes`, the number of nodes must be _one greater_ than the number of replicas. -For further details and examples, refer to xref:learn:services-and-indexes/indexes/index-replication.adoc#index-replication[Index Replication]. +For further details and examples, refer to xref:indexes:index-replication.adoc#index-replication[Index Replication]. == Altering Index Placement @@ -166,7 +166,7 @@ For further details and examples, refer to xref:n1ql:n1ql-language-reference/alt Reference and explanation: -* xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[Using Indexes] +* xref:indexes:indexing-overview.adoc[] Administrator guides: diff --git a/modules/guides/pages/select-index.adoc b/modules/guides/pages/select-index.adoc index 590854426..d3edd9579 100644 --- a/modules/guides/pages/select-index.adoc +++ b/modules/guides/pages/select-index.adoc @@ -81,7 +81,7 @@ For further details and examples, refer to xref:n1ql:n1ql-language-reference/key Reference and explanation: -* xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[Using Indexes] +* xref:indexes:indexing-overview.adoc[] * xref:n1ql:n1ql-language-reference/selectintro.adoc[SELECT] * xref:n1ql:n1ql-language-reference/optimizer-hints.adoc[Hints] diff --git a/modules/learn/examples/services-and-indexes/indexes/create-idx-array.n1ql b/modules/indexes/examples/create-idx-array.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/create-idx-array.n1ql rename to modules/indexes/examples/create-idx-array.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/create-idx-composite.n1ql b/modules/indexes/examples/create-idx-composite.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/create-idx-composite.n1ql rename to modules/indexes/examples/create-idx-composite.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/create-idx-expr.n1ql b/modules/indexes/examples/create-idx-expr.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/create-idx-expr.n1ql rename to modules/indexes/examples/create-idx-expr.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/create-idx-partial.n1ql b/modules/indexes/examples/create-idx-partial.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/create-idx-partial.n1ql rename to modules/indexes/examples/create-idx-partial.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/early-filter-1.jsonc b/modules/indexes/examples/early-filter-1.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-filter-1.jsonc rename to modules/indexes/examples/early-filter-1.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/early-filter-1.n1ql b/modules/indexes/examples/early-filter-1.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-filter-1.n1ql rename to modules/indexes/examples/early-filter-1.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/early-filter-2.jsonc b/modules/indexes/examples/early-filter-2.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-filter-2.jsonc rename to modules/indexes/examples/early-filter-2.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/early-filter-2.n1ql b/modules/indexes/examples/early-filter-2.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-filter-2.n1ql rename to modules/indexes/examples/early-filter-2.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/early-filter-3.jsonc b/modules/indexes/examples/early-filter-3.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-filter-3.jsonc rename to modules/indexes/examples/early-filter-3.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/early-filter-3.n1ql b/modules/indexes/examples/early-filter-3.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-filter-3.n1ql rename to modules/indexes/examples/early-filter-3.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/early-filter-4.jsonc b/modules/indexes/examples/early-filter-4.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-filter-4.jsonc rename to modules/indexes/examples/early-filter-4.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/early-filter-4.n1ql b/modules/indexes/examples/early-filter-4.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-filter-4.n1ql rename to modules/indexes/examples/early-filter-4.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/early-filter-idx.n1ql b/modules/indexes/examples/early-filter-idx.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-filter-idx.n1ql rename to modules/indexes/examples/early-filter-idx.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/early-paginate-1.jsonc b/modules/indexes/examples/early-paginate-1.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-paginate-1.jsonc rename to modules/indexes/examples/early-paginate-1.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/early-paginate-1.n1ql b/modules/indexes/examples/early-paginate-1.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-paginate-1.n1ql rename to modules/indexes/examples/early-paginate-1.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/early-paginate-2.jsonc b/modules/indexes/examples/early-paginate-2.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-paginate-2.jsonc rename to modules/indexes/examples/early-paginate-2.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/early-paginate-2.n1ql b/modules/indexes/examples/early-paginate-2.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-paginate-2.n1ql rename to modules/indexes/examples/early-paginate-2.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/early-paginate-3.jsonc b/modules/indexes/examples/early-paginate-3.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-paginate-3.jsonc rename to modules/indexes/examples/early-paginate-3.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/early-paginate-3.n1ql b/modules/indexes/examples/early-paginate-3.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-paginate-3.n1ql rename to modules/indexes/examples/early-paginate-3.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/early-paginate-4.jsonc b/modules/indexes/examples/early-paginate-4.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-paginate-4.jsonc rename to modules/indexes/examples/early-paginate-4.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/early-paginate-4.n1ql b/modules/indexes/examples/early-paginate-4.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-paginate-4.n1ql rename to modules/indexes/examples/early-paginate-4.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/early-paginate-idx.n1ql b/modules/indexes/examples/early-paginate-idx.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/early-paginate-idx.n1ql rename to modules/indexes/examples/early-paginate-idx.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-comp-explain.jsonc b/modules/indexes/examples/pushdown-comp-explain.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-comp-explain.jsonc rename to modules/indexes/examples/pushdown-comp-explain.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-comp-plan.jsonc b/modules/indexes/examples/pushdown-comp-plan.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-comp-plan.jsonc rename to modules/indexes/examples/pushdown-comp-plan.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-count.jsonc b/modules/indexes/examples/pushdown-count.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-count.jsonc rename to modules/indexes/examples/pushdown-count.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-def-city.n1ql b/modules/indexes/examples/pushdown-def-city.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-def-city.n1ql rename to modules/indexes/examples/pushdown-def-city.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-distinct.jsonc b/modules/indexes/examples/pushdown-distinct.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-distinct.jsonc rename to modules/indexes/examples/pushdown-distinct.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-idx-1.jsonc b/modules/indexes/examples/pushdown-idx-1.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-idx-1.jsonc rename to modules/indexes/examples/pushdown-idx-1.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-idx-2.jsonc b/modules/indexes/examples/pushdown-idx-2.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-idx-2.jsonc rename to modules/indexes/examples/pushdown-idx-2.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-idx-3.jsonc b/modules/indexes/examples/pushdown-idx-3.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-idx-3.jsonc rename to modules/indexes/examples/pushdown-idx-3.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-max.jsonc b/modules/indexes/examples/pushdown-max.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-max.jsonc rename to modules/indexes/examples/pushdown-max.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-min.jsonc b/modules/indexes/examples/pushdown-min.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-min.jsonc rename to modules/indexes/examples/pushdown-min.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-page-1.jsonc b/modules/indexes/examples/pushdown-page-1.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-page-1.jsonc rename to modules/indexes/examples/pushdown-page-1.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-page-2.jsonc b/modules/indexes/examples/pushdown-page-2.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-page-2.jsonc rename to modules/indexes/examples/pushdown-page-2.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-page-3.jsonc b/modules/indexes/examples/pushdown-page-3.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-page-3.jsonc rename to modules/indexes/examples/pushdown-page-3.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-simple.jsonc b/modules/indexes/examples/pushdown-simple.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-simple.jsonc rename to modules/indexes/examples/pushdown-simple.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/pushdown-skip.jsonc b/modules/indexes/examples/pushdown-skip.jsonc similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/pushdown-skip.jsonc rename to modules/indexes/examples/pushdown-skip.jsonc diff --git a/modules/learn/examples/services-and-indexes/indexes/replication-nodes.n1ql b/modules/indexes/examples/replication-nodes.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/replication-nodes.n1ql rename to modules/indexes/examples/replication-nodes.n1ql diff --git a/modules/learn/examples/services-and-indexes/indexes/replication-num.n1ql b/modules/indexes/examples/replication-num.n1ql similarity index 100% rename from modules/learn/examples/services-and-indexes/indexes/replication-num.n1ql rename to modules/indexes/examples/replication-num.n1ql diff --git a/modules/n1ql/assets/images/GBAP_Ex0_QP_after55.png b/modules/indexes/images/GBAP_Ex0_QP_after55.png similarity index 100% rename from modules/n1ql/assets/images/GBAP_Ex0_QP_after55.png rename to modules/indexes/images/GBAP_Ex0_QP_after55.png diff --git a/modules/n1ql/assets/images/GBAP_Ex0_QP_before55.png b/modules/indexes/images/GBAP_Ex0_QP_before55.png similarity index 100% rename from modules/n1ql/assets/images/GBAP_Ex0_QP_before55.png rename to modules/indexes/images/GBAP_Ex0_QP_before55.png diff --git a/modules/n1ql/assets/images/GBAP_Ex10_VP.png b/modules/indexes/images/GBAP_Ex10_VP.png similarity index 100% rename from modules/n1ql/assets/images/GBAP_Ex10_VP.png rename to modules/indexes/images/GBAP_Ex10_VP.png diff --git a/modules/n1ql/assets/images/GBAP_Ex2A_EP.png b/modules/indexes/images/GBAP_Ex2A_EP.png similarity index 100% rename from modules/n1ql/assets/images/GBAP_Ex2A_EP.png rename to modules/indexes/images/GBAP_Ex2A_EP.png diff --git a/modules/n1ql/assets/images/GBAP_Ex4A_VP.png b/modules/indexes/images/GBAP_Ex4A_VP.png similarity index 100% rename from modules/n1ql/assets/images/GBAP_Ex4A_VP.png rename to modules/indexes/images/GBAP_Ex4A_VP.png diff --git a/modules/n1ql/assets/images/GBAP_ExB_Plan.png b/modules/indexes/images/GBAP_ExB_Plan.png similarity index 100% rename from modules/n1ql/assets/images/GBAP_ExB_Plan.png rename to modules/indexes/images/GBAP_ExB_Plan.png diff --git a/modules/n1ql/assets/images/GBAP_ExC_Plan.png b/modules/indexes/images/GBAP_ExC_Plan.png similarity index 100% rename from modules/n1ql/assets/images/GBAP_ExC_Plan.png rename to modules/indexes/images/GBAP_ExC_Plan.png diff --git a/modules/n1ql/assets/images/GBAP_ExD2_Plan.png b/modules/indexes/images/GBAP_ExD2_Plan.png similarity index 100% rename from modules/n1ql/assets/images/GBAP_ExD2_Plan.png rename to modules/indexes/images/GBAP_ExD2_Plan.png diff --git a/modules/n1ql/assets/images/GBAP_ExD_Plan.png b/modules/indexes/images/GBAP_ExD_Plan.png similarity index 100% rename from modules/n1ql/assets/images/GBAP_ExD_Plan.png rename to modules/indexes/images/GBAP_ExD_Plan.png diff --git a/modules/n1ql/assets/images/GBAP_ExE_Plan.png b/modules/indexes/images/GBAP_ExE_Plan.png similarity index 100% rename from modules/n1ql/assets/images/GBAP_ExE_Plan.png rename to modules/indexes/images/GBAP_ExE_Plan.png diff --git a/modules/learn/assets/images/services-and-indexes/indexes/IndexKeyOrder.png b/modules/indexes/images/IndexKeyOrder.png similarity index 100% rename from modules/learn/assets/images/services-and-indexes/indexes/IndexKeyOrder.png rename to modules/indexes/images/IndexKeyOrder.png diff --git a/modules/learn/assets/images/services-and-indexes/indexes/index-lifecycle-build.png b/modules/indexes/images/index-lifecycle-build.png similarity index 100% rename from modules/learn/assets/images/services-and-indexes/indexes/index-lifecycle-build.png rename to modules/indexes/images/index-lifecycle-build.png diff --git a/modules/learn/assets/images/services-and-indexes/indexes/index-lifecycle-scan.png b/modules/indexes/images/index-lifecycle-scan.png similarity index 100% rename from modules/learn/assets/images/services-and-indexes/indexes/index-lifecycle-scan.png rename to modules/indexes/images/index-lifecycle-scan.png diff --git a/modules/learn/assets/images/services-and-indexes/indexes/index-lifecycle-update-1.png b/modules/indexes/images/index-lifecycle-update-1.png similarity index 100% rename from modules/learn/assets/images/services-and-indexes/indexes/index-lifecycle-update-1.png rename to modules/indexes/images/index-lifecycle-update-1.png diff --git a/modules/learn/assets/images/services-and-indexes/indexes/index-lifecycle-update-2.png b/modules/indexes/images/index-lifecycle-update-2.png similarity index 100% rename from modules/learn/assets/images/services-and-indexes/indexes/index-lifecycle-update-2.png rename to modules/indexes/images/index-lifecycle-update-2.png diff --git a/modules/n1ql/pages/n1ql-language-reference/covering-indexes.adoc b/modules/indexes/pages/covering-indexes.adoc similarity index 95% rename from modules/n1ql/pages/n1ql-language-reference/covering-indexes.adoc rename to modules/indexes/pages/covering-indexes.adoc index 73c923bb7..d17452d3b 100644 --- a/modules/n1ql/pages/n1ql-language-reference/covering-indexes.adoc +++ b/modules/indexes/pages/covering-indexes.adoc @@ -1,8 +1,8 @@ = Covering Indexes :description: When an index includes the actual values of all the fields specified in the query, the index covers the query and does not require an additional step to fetch the actual values from the data service. :page-topic-type: concept -:page-aliases: indexes:covering-indexes.adoc -:imagesdir: ../../assets/images +:page-aliases: n1ql:n1ql-language-reference/covering-indexes +:imagesdir: ../images [abstract] {description} @@ -24,7 +24,7 @@ The following diagram illustrates the query execution work flow without covering .Query execution workflow including fetch request from Data service [plantuml,n1ql-query-workflow,svg] .... -include::learn:partial$diagrams/query-execution.puml[tags=!example] +include::indexes:partial$diagrams/query-execution.puml[tags=!example] .... The following diagram illustrates the query execution work flow with covering indexes: @@ -32,7 +32,7 @@ The following diagram illustrates the query execution work flow with covering in .Query execution workflow with no fetch request from Data service [plantuml,n1ql-query-workflow-cover-idx,svg] .... -include::learn:partial$diagrams/query-execution.puml[tags=!example;!fetch] +include::indexes:partial$diagrams/query-execution.puml[tags=!example;!fetch] .... As you can see in the second diagram, a well designed query that uses a covering index avoids the additional steps to fetch the data from the data service. @@ -467,7 +467,7 @@ The query plan for the above query shows that the index covers the query. == Related Links -* xref:learn:services-and-indexes/indexes/index-scans.adoc#query-execution-details[Query Execution: Details] -* xref:learn:services-and-indexes/indexes/index_pushdowns.adoc[Index Pushdown Optimizations] -* xref:n1ql:n1ql-language-reference/groupby-aggregate-performance.adoc[Grouping and Aggregate Pushdown] -* xref:learn:services-and-indexes/indexes/early-filters-and-pagination.adoc[Early Filters, Ordering and Pagination] +* xref:index-scans.adoc#query-execution-details[Query Execution: Details] +* xref:index_pushdowns.adoc[] +* xref:groupby-aggregate-performance.adoc[] +* xref:early-filters-and-pagination.adoc[] diff --git a/modules/learn/pages/services-and-indexes/indexes/early-filters-and-pagination.adoc b/modules/indexes/pages/early-filters-and-pagination.adoc similarity index 82% rename from modules/learn/pages/services-and-indexes/indexes/early-filters-and-pagination.adoc rename to modules/indexes/pages/early-filters-and-pagination.adoc index 820542a57..927ddcbe2 100644 --- a/modules/learn/pages/services-and-indexes/indexes/early-filters-and-pagination.adoc +++ b/modules/indexes/pages/early-filters-and-pagination.adoc @@ -1,5 +1,6 @@ = Early Filters, Order, and Pagination :page-topic-type: concept +:page-aliases: learn:services-and-indexes/indexes/early-filters-and-pagination :description: When covering indexes and index pushdowns are not available, the Query Service may use early filtering, early ordering, and early pagination to improve the query response time. [abstract] @@ -15,7 +16,7 @@ include::ROOT:partial$query-context.adoc[tag=statement] == Overview -If a query has a xref:n1ql:n1ql-language-reference/covering-indexes.adoc[covering index], and the query is on a single keyspace, then the index contains all the data needed to perform the query. +If a query has a xref:covering-indexes.adoc[covering index], and the query is on a single keyspace, then the index contains all the data needed to perform the query. The Query service does not need to fetch data from the Data service. Any filters, order, or pagination (offset and limit) are performed by the Index service. @@ -103,7 +104,7 @@ Any feature that can reduce the amount of data to be fetched will improve the qu It would obviously be inefficient to fetch an entire dataset, and then discard a large portion of it by applying filters and pagination. Couchbase Server therefore attempts to apply filters, order, and pagination _before_ fetching data, wherever possible. -Index xref:learn:services-and-indexes/indexes/index_pushdowns.adoc[pushdowns] provide one way to reduce the amount of data to be fetched. +Index xref:index_pushdowns.adoc[pushdowns] provide one way to reduce the amount of data to be fetched. Some filters, ordering, and pagination may be pushed down to the Index service, along with grouping and aggregates. The Index service applies these operations to the result of the index scan. The Query service then only needs to fetch the remaining data. @@ -213,7 +214,7 @@ For an illustration of early filtering, consider the following index. .Index I [source,sqlpp] ---- -include::example$services-and-indexes/indexes/early-filter-idx.n1ql[] +include::example$early-filter-idx.n1ql[] ---- ==== @@ -225,7 +226,7 @@ This index contains all the data needed to perform <>; it theref .Query [source,sqlpp] ---- -include::example$services-and-indexes/indexes/early-filter-1.n1ql[] +include::example$early-filter-1.n1ql[] ---- The query plan shows that the query is covered. @@ -233,7 +234,7 @@ In addition, the predicate `city = "Paris"` is applied as a span by the Index se [source,json] ---- -include::example$services-and-indexes/indexes/early-filter-1.jsonc[tags=extract;ellipsis] +include::example$early-filter-1.jsonc[tags=extract;ellipsis] ---- <.> The `covers` section shows that the query is covered. @@ -249,7 +250,7 @@ Now the query is no longer covered, and the Query service needs to fetch documen .Query [source,sqlpp] ---- -include::example$services-and-indexes/indexes/early-filter-2.n1ql[] +include::example$early-filter-2.n1ql[] ---- This query does not run too slowly, since the predicate `city = "Paris"` is pushed down to the Index service. @@ -257,7 +258,7 @@ The index only returns document keys for documents matching the predicate. [source,json] ---- -include::example$services-and-indexes/indexes/early-filter-2.jsonc[tags=extract;ellipsis] +include::example$early-filter-2.jsonc[tags=extract;ellipsis] ---- <.> The `range` section shows that this predicate is pushed down to the Index service. @@ -272,7 +273,7 @@ Now let's consider the case when the filter is not on the index key exactly, but .Query [source,sqlpp] ---- -include::example$services-and-indexes/indexes/early-filter-3.n1ql[] +include::example$early-filter-3.n1ql[] ---- In this case, the filter cannot be pushed down to the Index service. @@ -281,7 +282,7 @@ The Query service can apply the specified filter to the results of the index sca [source,json] ---- -include::example$services-and-indexes/indexes/early-filter-3.jsonc[tags=extract;ellipsis] +include::example$early-filter-3.jsonc[tags=extract;ellipsis] ---- <.> The early index filters, including all the filters that can be evaluated on the index keys. @@ -299,7 +300,7 @@ If necessary, the Query service may use a mixture of index pushdowns and early f .Query [source,sqlpp] ---- -include::example$services-and-indexes/indexes/early-filter-4.n1ql[] +include::example$early-filter-4.n1ql[] ---- The Index service evaluates the filters used to generate the index spans first, before returning to the Query service. @@ -307,7 +308,7 @@ As a result, the early filters only contain the predicates that were not pushed [source,json] ---- -include::example$services-and-indexes/indexes/early-filter-4.jsonc[tags=extract;ellipsis] +include::example$early-filter-4.jsonc[tags=extract;ellipsis] ---- <.> The filter `name LIKE "%Paris%"` does not generate an exact index span, and needs to be evaluated as an early index filter. @@ -324,7 +325,7 @@ As an illustration, consider the following index. .Index II [source,sqlpp] ---- -include::example$services-and-indexes/indexes/early-paginate-idx.n1ql[] +include::example$early-paginate-idx.n1ql[] ---- ==== @@ -336,7 +337,7 @@ This index acts as a covering index to <>. .Query [source,sqlpp] ---- -include::example$services-and-indexes/indexes/early-paginate-1.n1ql[] +include::example$early-paginate-1.n1ql[] ---- The `covers` section of the query plan shows that the query is covered. @@ -344,7 +345,7 @@ In addition, the ordering, offset, and limit are performed by the Index service. [source,json] ---- -include::example$services-and-indexes/indexes/early-paginate-1.jsonc[tags=extract;ellipsis] +include::example$early-paginate-1.jsonc[tags=extract;ellipsis] ---- <.> Index order performed by index operator @@ -361,14 +362,14 @@ Now the query is no longer covered. .Query [source,sqlpp] ---- -include::example$services-and-indexes/indexes/early-paginate-2.n1ql[] +include::example$early-paginate-2.n1ql[] ---- However the query runs pretty quickly, since the ordering, offset, and limit can still be pushed down to the Index service. [source,json] ---- -include::example$services-and-indexes/indexes/early-paginate-2.jsonc[tags=extract;ellipsis] +include::example$early-paginate-2.jsonc[tags=extract;ellipsis] ---- <.> Index order pushdown @@ -384,14 +385,14 @@ However, if we change the order of the ordering terms so that they no longer mat .Query [source,sqlpp] ---- -include::example$services-and-indexes/indexes/early-paginate-3.n1ql[] +include::example$early-paginate-3.n1ql[] ---- So in this case, early ordering, limit, and offset are done by the Query service before fetch. [source,json] ---- -include::example$services-and-indexes/indexes/early-paginate-3.jsonc[tags=extract;ellipsis] +include::example$early-paginate-3.jsonc[tags=extract;ellipsis] ---- <.> Early ordering @@ -407,14 +408,14 @@ Similarly, if we change the direction of the sort from descending to ascending, .Query [source,sqlpp] ---- -include::example$services-and-indexes/indexes/early-paginate-4.n1ql[] +include::example$early-paginate-4.n1ql[] ---- In this case also, early ordering, limit, and offset are done by the Query service before fetch. [source,json] ---- -include::example$services-and-indexes/indexes/early-paginate-4.jsonc[tags=extract;ellipsis] +include::example$early-paginate-4.jsonc[tags=extract;ellipsis] ---- <.> The `sort_terms` section uses `_index_key` expressions to sort the results using the index keys. @@ -460,10 +461,10 @@ The following table summarizes the different methods of performing filtering, or ^<>^ | Fetch required? -| icon:times-circle[red] No -| icon:check-circle[green] Yes -| icon:check-circle[green] Yes -| icon:check-circle[green] Yes +| icon:times[fw] No +| icon:check[fw] Yes +| icon:check[fw] Yes +| icon:check[fw] Yes | Filters, order, and pagination + performed: @@ -486,10 +487,10 @@ NOTE: An uncovered query may use a mixture of these methods. == Related Links -* xref:learn:services-and-indexes/indexes/index-scans.adoc#query-execution-details[Query Execution: Details] -* xref:n1ql:n1ql-language-reference/covering-indexes.adoc[Covering Indexes] -* xref:learn:services-and-indexes/indexes/index_pushdowns.adoc[Index Pushdown Optimizations] -* xref:n1ql:n1ql-language-reference/groupby-aggregate-performance.adoc[Grouping and Aggregate Pushdown] -* xref:n1ql:n1ql-language-reference/where.adoc[WHERE Clause] -- to apply a filter -* xref:n1ql:n1ql-language-reference/orderby.adoc[ORDER BY Clause] -- to apply a sort -* xref:n1ql:n1ql-language-reference/offset.adoc[OFFSET Clause] and xref:n1ql:n1ql-language-reference/limit.adoc[LIMIT Clause] -- to apply pagination +* xref:index-scans.adoc#query-execution-details[Query Execution: Details] +* xref:covering-indexes.adoc[] +* xref:index_pushdowns.adoc[] +* xref:groupby-aggregate-performance.adoc[] +* xref:n1ql:n1ql-language-reference/where.adoc[] -- to apply a filter +* xref:n1ql:n1ql-language-reference/orderby.adoc[] -- to apply a sort +* xref:n1ql:n1ql-language-reference/offset.adoc[] and xref:n1ql:n1ql-language-reference/limit.adoc[] -- to apply pagination diff --git a/modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc b/modules/indexes/pages/groupby-aggregate-performance.adoc similarity index 98% rename from modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc rename to modules/indexes/pages/groupby-aggregate-performance.adoc index db9f3035a..3ef21e30f 100644 --- a/modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc +++ b/modules/indexes/pages/groupby-aggregate-performance.adoc @@ -1,7 +1,8 @@ = Grouping and Aggregate Pushdowns :description: {sqlpp} Pushdowns optimize the performance of {sqlpp} queries by supporting grouping and aggregate expressions. :page-edition: enterprise edition -:imagesdir: ../../assets/images +:page-aliases: n1ql:n1ql-language-reference/groupby-aggregate-performance +:imagesdir: ../images [abstract] {description} @@ -19,10 +20,10 @@ Grouping and aggregate pushdown improves the performance of {sqlpp} queries with After the optimizer selects an index for a query block, it attempts the two optimizations below: * Pagination optimization, by pushing the OFFSET and LIMIT parameters to the index scan. -* Grouping and aggregate pushdown to the indexer (introduced in Couchbase 5.5). +* Grouping and aggregate pushdown to the indexer. -Prior to Couchbase Server 5.5, when a query contained aggregation and/or grouping, the query engine would fetch all relevant data from the indexer and group the data itself, even if the query was covered by an index. -With Couchbase Server 5.5 (Enterprise Edition) and later, the query intelligently requests the indexer to perform grouping and aggregation in addition to range scan. +Without grouping and aggregate pushdown, if a query contained aggregation and/or grouping, the query engine would fetch all relevant data from the indexer and group the data itself, even if the query was covered by an index. +With grouping and aggregate pushdown, the query intelligently requests the indexer to perform grouping and aggregation in addition to range scan. The Indexer has been enhanced to perform grouping, COUNT(), SUM(), MIN(), MAX(), AVG(), and related operations. You do not need to make any changes to the query to use this feature, but a good index design is required to cover the query and order the keys. @@ -2627,7 +2628,7 @@ Key Position to use the Index expr or the query expr. == Related Links -* xref:learn:services-and-indexes/indexes/index-scans.adoc#query-execution-details[Query Execution: Details] -* xref:n1ql:n1ql-language-reference/covering-indexes.adoc[Covering Indexes] -* xref:learn:services-and-indexes/indexes/index_pushdowns.adoc[Index Pushdown Optimizations] -* xref:learn:services-and-indexes/indexes/early-filters-and-pagination.adoc[Early Filters, Ordering and Pagination] +* xref:index-scans.adoc#query-execution-details[Query Execution: Details] +* xref:covering-indexes.adoc[] +* xref:index_pushdowns.adoc[] +* xref:early-filters-and-pagination.adoc[] diff --git a/modules/learn/pages/services-and-indexes/indexes/index-lifecycle.adoc b/modules/indexes/pages/index-lifecycle.adoc similarity index 85% rename from modules/learn/pages/services-and-indexes/indexes/index-lifecycle.adoc rename to modules/indexes/pages/index-lifecycle.adoc index a794bb84a..21e7f1bc8 100644 --- a/modules/learn/pages/services-and-indexes/indexes/index-lifecycle.adoc +++ b/modules/indexes/pages/index-lifecycle.adoc @@ -1,6 +1,7 @@ = Index Lifecycle :page-topic-type: concept -:imagesdir: ../../../assets/images +:page-aliases: learn:services-and-indexes/indexes/index-lifecycle +:imagesdir: ../images :description: An overview of the lifecycle of a Global Secondary Index, from creation and building to updates and scans. [abstract] @@ -20,7 +21,7 @@ The build phase cannot start until the creation phase is complete. During the build phase, the Index Service reads the documents from the Data Service and builds the index. -image::services-and-indexes/indexes/index-lifecycle-build.png[align=center] +image::index-lifecycle-build.png[align=center] . The projector requests a DCP stream on the specified collection. . DCP streams only the documents in the collection. @@ -37,9 +38,9 @@ For more information and examples, refer to xref:n1ql:n1ql-language-reference/cr When a Global Secondary Index has been created on a collection, the index is updated when documents within the collection are updated. -image::services-and-indexes/indexes/index-lifecycle-update-1.png[align=center] +image::index-lifecycle-update-1.png[align=center] -image::services-and-indexes/indexes/index-lifecycle-update-2.png[align=center] +image::index-lifecycle-update-2.png[align=center] . The projector keeps a _bucket-level_ DCP stream open for updates -- this limits the number of DCP connections. . When a document within the collection is updated, the projector utilizes the collection ID available with each mutation, and only evaluates the indexes defined for that collection. @@ -53,11 +54,11 @@ Refer to xref:learn:clusters-and-availability/intra-cluster-replication.adoc#dat When a query needs to make use of a Global Secondary Index, the index is scanned. -image::services-and-indexes/indexes/index-lifecycle-scan.png[align=center] +image::index-lifecycle-scan.png[align=center] * If the index consistency is `not_bounded`, the scan proceeds without waiting for the index to be updated. * If the scan consistency is `at_plus` or `request_plus`, the scan coordinator waits for the index to be updated for that collection only, and then performs the scan. The scan coordinator does not need to wait for indexes on other collections to be updated, even if documents in other collections are being mutated. -Refer to xref:learn:services-and-indexes/indexes/index-scans.adoc[Index Scans] and xref:learn:services-and-indexes/indexes/index-replication.adoc#index-consistency[Index Consistency] for further details. \ No newline at end of file +Refer to xref:index-scans.adoc[Index Scans] and xref:index-replication.adoc#index-consistency[Index Consistency] for further details. \ No newline at end of file diff --git a/modules/learn/pages/services-and-indexes/indexes/index-replication.adoc b/modules/indexes/pages/index-replication.adoc similarity index 97% rename from modules/learn/pages/services-and-indexes/indexes/index-replication.adoc rename to modules/indexes/pages/index-replication.adoc index e05a42aef..f249e3cac 100644 --- a/modules/learn/pages/services-and-indexes/indexes/index-replication.adoc +++ b/modules/indexes/pages/index-replication.adoc @@ -3,7 +3,7 @@ :description: The Index Service ensures availability and performance through replication and partitioning. :page-topic-type: concept :page-partial: -:page-aliases: indexes:index-replication,indexes:performance-consistency,understanding-couchbase:services-and-indexes/indexes/index-replication +:page-aliases: learn:services-and-indexes/indexes/index-replication,indexes:performance-consistency,understanding-couchbase:services-and-indexes/indexes/index-replication :keywords: consistency, consistent // Cross-references @@ -54,7 +54,7 @@ The active index is on `node1`, and the replicas are on `node2` and `node3`: [#nodes-example2] [source,sqlpp] ---- -include::example$services-and-indexes/indexes/replication-nodes.n1ql[] +include::example$replication-nodes.n1ql[] ---- * Specifying _no_ destination nodes; but specifying instead, by means of the `WITH` clause and the `num_replica` attribute, only the _number_ of replicas required. @@ -64,7 +64,7 @@ In the following example, an index is created with two replicas, with no destina + [source,sqlpp] ---- -include::example$services-and-indexes/indexes/replication-num.n1ql[] +include::example$replication-num.n1ql[] ---- + Note that if `nodes` and `num_replica` are both specified in the `WITH` clause, the specified number of nodes must be _one greater_ than `num_replica`. diff --git a/modules/learn/pages/services-and-indexes/indexes/index-scans.adoc b/modules/indexes/pages/index-scans.adoc similarity index 99% rename from modules/learn/pages/services-and-indexes/indexes/index-scans.adoc rename to modules/indexes/pages/index-scans.adoc index f2e24dd26..d901b3370 100644 --- a/modules/learn/pages/services-and-indexes/indexes/index-scans.adoc +++ b/modules/indexes/pages/index-scans.adoc @@ -1,8 +1,8 @@ = Index Scans :description: This section discusses how index spans are generated from query predicates and provides a number of examples. :page-topic-type: concept -:page-aliases: performance:index-scans -:imagesdir: ../../../assets/images +:page-aliases: learn:services-and-indexes/indexes/index-scans,performance:index-scans +:imagesdir: ../images [abstract] During query execution, when the index path is chosen, the query engine requests the scan by providing a range of values to return. diff --git a/modules/learn/pages/services-and-indexes/indexes/index_pushdowns.adoc b/modules/indexes/pages/index_pushdowns.adoc similarity index 84% rename from modules/learn/pages/services-and-indexes/indexes/index_pushdowns.adoc rename to modules/indexes/pages/index_pushdowns.adoc index d0cad7db7..26d367c12 100644 --- a/modules/learn/pages/services-and-indexes/indexes/index_pushdowns.adoc +++ b/modules/indexes/pages/index_pushdowns.adoc @@ -1,8 +1,8 @@ = Index Pushdowns :description: Index Pushdowns are performance optimizations where the Query engine pushes more of the work down to the Indexer. -:imagesdir: ../../../assets/images +:imagesdir: ../images :page-topic-type: concept -:page-aliases: performance:index_pushdowns +:page-aliases: learn:services-and-indexes/indexes/index_pushdowns,performance:index_pushdowns [abstract] {description} @@ -61,7 +61,7 @@ LIMIT 1; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-simple.jsonc[tag=projection] +include::example$pushdown-simple.jsonc[tag=projection] ---- The query refers to fields `sourceairport` and `type`. @@ -95,21 +95,20 @@ The `span` and `range` from the EXPLAIN output of <>. .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-simple.jsonc[tag=predicate] +include::example$pushdown-simple.jsonc[tag=predicate] ---- -* Each Span defines details about one index-key summarizing corresponding predicate conditions into a range-scan lookup for the index. +* Each span defines details about one index-key summarizing corresponding predicate conditions into a range-scan lookup for the index. In this example, the predicate condition (`sourceairport = "SFO"`) translates to one span with one range that specifies both `low` and `high` values of "SFO" (to imply equals condition). -* Refer to section xref:learn:services-and-indexes/indexes/index-scans.adoc[Scans] for more information. +* Refer to section xref:index-scans.adoc[] for more information. ==== == Composite Predicate Pushdown Compound or composite predicates are those with multiple conditions on different fields of the document. -When the predicate is conjunctive with multiple AND conditions, then a single `span` with multiple `ranges` are specified in the index-scan request. -When the predicate is disjunctive, then multiple `spans` are specified. -See xref:learn:services-and-indexes/indexes/index-scans.adoc[Scans] -for more details and examples on how predicate pushdown works for various types of index-scans as well as the conjunctive predicate AND and the disjunctive predicate OR. +When the predicate is conjunctive with multiple `AND` conditions, then a single span with multiple ranges is specified in the index-scan request. +When the predicate is disjunctive, then multiple spans are specified. +See xref:index-scans.adoc[] for more details and examples on how predicate pushdown works for various types of index-scans, as well as the conjunctive predicate `AND` and the disjunctive predicate `OR`. === Index Key Order and Structure @@ -121,7 +120,7 @@ For example, consider the following hypothetical index: CREATE INDEX `idx_age_name` ON users(age, name); ---- -image::services-and-indexes/indexes/IndexKeyOrder.png[,570] +image::IndexKeyOrder.png["Order of keys in a composite index",570] Various age and name values are stored in the index in a tree-like structure, represented in simplified form in the diagram above, with all the index key values linearly sorted as ordered pairs. For instance, @@ -174,7 +173,7 @@ WHERE distance < 2000 AND sourceairport = "LAX"; -- <1> .Results [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-comp-explain.jsonc[tag=excerpt] +include::example$pushdown-comp-explain.jsonc[tag=excerpt] ---- <.> The `spans` attribute of the EXPLAIN query plan output shows that the predicate is accurately represented and pushed-down to the indexer. @@ -187,7 +186,7 @@ For example, when you xref:n1ql:n1ql-manage/monitoring-n1ql-query.adoc[enable mo [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-comp-plan.jsonc[tags=index;ellipsis;final] +include::example$pushdown-comp-plan.jsonc[tags=index;ellipsis;final] ---- ==== @@ -217,7 +216,7 @@ There is no predicate on the 2nd index-key `sourceairport`. .Results [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-skip.jsonc[tag=excerpt] +include::example$pushdown-skip.jsonc[tag=excerpt] ---- <.> The EXPLAIN query plan output shows that the predicate is pushed-down to the indexer. @@ -253,7 +252,7 @@ This example uses the `def_inventory_landmark_city` index that comes pre-install .Index [source,sqlpp] ---- -include::example$services-and-indexes/indexes/pushdown-def-city.n1ql[] +include::example$pushdown-def-city.n1ql[] ---- .Query @@ -267,7 +266,7 @@ OFFSET 4000 LIMIT 10000; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-page-1.jsonc[tag=excerpt] +include::example$pushdown-page-1.jsonc[tag=excerpt] ---- <1> The `IndexScan3` operator handles `limit`. @@ -297,7 +296,7 @@ OFFSET 4000 LIMIT 10000; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-page-2.jsonc[tag=excerpt] +include::example$pushdown-page-2.jsonc[tag=excerpt] ---- <1> The `PrimaryScan3` operator handles `limit`. @@ -313,7 +312,7 @@ This example uses the `def_inventory_landmark_city` index that comes pre-install .Index [source,sqlpp] ---- -include::example$services-and-indexes/indexes/pushdown-def-city.n1ql[] +include::example$pushdown-def-city.n1ql[] ---- .Query [source,sqlpp] @@ -328,7 +327,7 @@ OFFSET 4000 LIMIT 10000; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-page-3.jsonc[tags=index;ellipsis;order] +include::example$pushdown-page-3.jsonc[tags=index;ellipsis;order] ---- <1> The `IndexScan3` operator does not handle `offset` or `limit`. @@ -351,7 +350,7 @@ This example uses the `def_inventory_landmark_city` index that comes pre-install .Index [source,sqlpp] ---- -include::example$services-and-indexes/indexes/pushdown-def-city.n1ql[] +include::example$pushdown-def-city.n1ql[] ---- .Query @@ -365,7 +364,7 @@ ORDER BY city; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-idx-1.jsonc[tags=index;ellipsis;query] +include::example$pushdown-idx-1.jsonc[tags=index;ellipsis;query] // ... ---- @@ -382,7 +381,7 @@ This example uses the `def_inventory_landmark_city` index that comes pre-install .Index [source,sqlpp] ---- -include::example$services-and-indexes/indexes/pushdown-def-city.n1ql[] +include::example$pushdown-def-city.n1ql[] ---- .Query @@ -396,7 +395,7 @@ ORDER BY meta().id; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-idx-2.jsonc[tags=index;ellipsis;query] +include::example$pushdown-idx-2.jsonc[tags=index;ellipsis;query] ---- <1> In this example, you can see an additional ORDER operator before the final projection, because the ORDER BY field `meta().id` is different from the index order key `city`. @@ -435,7 +434,7 @@ ORDER BY city DESC; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-idx-3.jsonc[tags=index;ellipsis;query] +include::example$pushdown-idx-3.jsonc[tags=index;ellipsis;query] ---- ==== @@ -446,10 +445,10 @@ In such cases, the Query engine pushes down necessary hints or options to the In === MAX() Pushdown -This function returns the highest value of the input field based on the default collation rules. (For details, see xref:n1ql:n1ql-language-reference/datatypes.adoc[Data types] and xref:n1ql:n1ql-language-reference/comparisonops.adoc[Comparison Operators].) +This function returns the highest value of the input field based on the default collation rules. +(For details, see xref:n1ql:n1ql-language-reference/datatypes.adoc[] and xref:n1ql:n1ql-language-reference/comparisonops.adoc[].) -Prior to Couchbase Server 5.5, MAX() could be pushed to the Indexer only when the index was created with matching index keys in descending order. -This limitation has been removed in Couchbase Server 5.5 and later. +You do not need to create the index with the matching index keys sorted in descending order to push MAX() to the Indexer. .MAX of a String Field ==== @@ -459,7 +458,7 @@ This example uses the `def_inventory_landmark_city` index that comes pre-install .Index [source,sqlpp] ---- -include::example$services-and-indexes/indexes/pushdown-def-city.n1ql[] +include::example$pushdown-def-city.n1ql[] ---- .Query @@ -474,16 +473,16 @@ WHERE city IS NOT NULL; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-max.jsonc[tag=excerpt] +include::example$pushdown-max.jsonc[tag=excerpt] ---- ==== === MIN() Pushdown -This function returns the lowest value of the input field based on the default collation rules. (For details, see xref:n1ql:n1ql-language-reference/datatypes.adoc[Data types] and xref:n1ql:n1ql-language-reference/comparisonops.adoc[Comparison Operators].) +This function returns the lowest value of the input field based on the default collation rules. +(For details, see xref:n1ql:n1ql-language-reference/datatypes.adoc[] and xref:n1ql:n1ql-language-reference/comparisonops.adoc[].) -Prior to Couchbase Server 5.5, MIN() could be pushed to the Indexer only when the index was created with matching index keys in ascending order. -This limitation has been removed in Couchbase Server 5.5 and later. +You do not need to create the index with the matching index keys sorted in ascending order to push MIN() to the Indexer. .MIN of a String Field ==== @@ -493,7 +492,7 @@ This example uses the `def_inventory_landmark_city` index that comes pre-install .Index [source,sqlpp] ---- -include::example$services-and-indexes/indexes/pushdown-def-city.n1ql[] +include::example$pushdown-def-city.n1ql[] ---- .Query @@ -508,7 +507,7 @@ WHERE city IS NOT NULL; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-min.jsonc[tag=excerpt] +include::example$pushdown-min.jsonc[tag=excerpt] ---- ==== @@ -525,7 +524,7 @@ This example uses the `def_inventory_landmark_city` index that comes pre-install .Index [source,sqlpp] ---- -include::example$services-and-indexes/indexes/pushdown-def-city.n1ql[] +include::example$pushdown-def-city.n1ql[] ---- .Query @@ -565,7 +564,7 @@ WHERE city IS NOT NULL; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-count.jsonc[tag=excerpt] +include::example$pushdown-count.jsonc[tag=excerpt] ---- <1> The index operator `IndexCountScan3` counts values so the Query Service does not need to do additional processing. @@ -584,7 +583,7 @@ This example uses the `def_inventory_landmark_city` index that comes pre-install .Index [source,sqlpp] ---- -include::example$services-and-indexes/indexes/pushdown-def-city.n1ql[] +include::example$pushdown-def-city.n1ql[] ---- .Query @@ -624,7 +623,7 @@ WHERE city IS NOT NULL; .Result [source,json] ---- -include::example$services-and-indexes/indexes/pushdown-distinct.jsonc[tag=excerpt] +include::example$pushdown-distinct.jsonc[tag=excerpt] ---- <1> The index operator `IndexCountScan3` counts distinct values so the Query Service does not need to do additional processing. @@ -632,7 +631,7 @@ include::example$services-and-indexes/indexes/pushdown-distinct.jsonc[tag=excerp == Related Links -* xref:learn:services-and-indexes/indexes/index-scans.adoc#query-execution-details[Query Execution: Details] -* xref:n1ql:n1ql-language-reference/covering-indexes.adoc[Covering Indexes] -* xref:n1ql:n1ql-language-reference/groupby-aggregate-performance.adoc[Grouping and Aggregate Pushdown] -* xref:learn:services-and-indexes/indexes/early-filters-and-pagination.adoc[Early Filters, Ordering and Pagination] +* xref:index-scans.adoc#query-execution-details[Query Execution: Details] +* xref:covering-indexes.adoc[] +* xref:groupby-aggregate-performance.adoc[] +* xref:early-filters-and-pagination.adoc[] diff --git a/modules/learn/pages/services-and-indexes/indexes/indexing-and-query-perf.adoc b/modules/indexes/pages/indexing-and-query-perf.adoc similarity index 97% rename from modules/learn/pages/services-and-indexes/indexes/indexing-and-query-perf.adoc rename to modules/indexes/pages/indexing-and-query-perf.adoc index dbfa107e6..3fe1cbe87 100644 --- a/modules/learn/pages/services-and-indexes/indexes/indexing-and-query-perf.adoc +++ b/modules/indexes/pages/indexing-and-query-perf.adoc @@ -2,15 +2,15 @@ :navtitle: Types of Index :description: This topic provides an overview of the types of index that you can create using the Index Service, and explains how they help to query for data efficiently and improve query performance. :page-topic-type: concept -:page-aliases: performance:indexing-and-query-perf +:page-aliases: learn:services-and-indexes/indexes/indexing-and-query-perf,performance:indexing-and-query-perf // Cross-references :install-sample-buckets: xref:manage:manage-settings/install-sample-buckets.adoc :aggregatefun: xref:n1ql:n1ql-language-reference/aggregatefun.adoc :indexing-arrays: xref:n1ql:n1ql-language-reference/indexing-arrays.adoc -:covering-indexes: xref:n1ql:n1ql-language-reference/covering-indexes.adoc +:covering-indexes: xref:covering-indexes.adoc :bucket-analyzer: xref:tools:query-workbench.adoc#bucket-analyzer -:storage-modes: xref:learn:services-and-indexes/indexes/storage-modes.adoc +:storage-modes: xref:indexes:storage-modes.adoc :additional-storage-use: xref:learn:data/transactions.adoc#additional-storage-use Creating the right index -- with the right keys, in the right order, and using the right expressions -- is critical to query performance in any database system. @@ -219,7 +219,7 @@ This is commonly used for performance optimization. ==== [source,sqlpp] ---- -include::example$services-and-indexes/indexes/create-idx-composite.n1ql[] +include::example$create-idx-composite.n1ql[] ---- ==== @@ -239,7 +239,7 @@ For example: ==== [source,sqlpp] ---- -include::example$services-and-indexes/indexes/create-idx-expr.n1ql[] +include::example$create-idx-expr.n1ql[] ---- ==== @@ -371,7 +371,7 @@ With a rich structure as seen in the array schedule, here's how you index a part ==== [source,sqlpp] ---- -include::example$services-and-indexes/indexes/create-idx-array.n1ql[] +include::example$create-idx-array.n1ql[] ---- ==== @@ -528,7 +528,7 @@ When you want to create an index of restaurants, you can simply add the distingu ==== [source,sqlpp] ---- -include::example$services-and-indexes/indexes/create-idx-partial.n1ql[] +include::example$create-idx-partial.n1ql[] ---- ==== diff --git a/modules/learn/pages/services-and-indexes/indexes/global-secondary-indexes.adoc b/modules/indexes/pages/indexing-overview.adoc similarity index 58% rename from modules/learn/pages/services-and-indexes/indexes/global-secondary-indexes.adoc rename to modules/indexes/pages/indexing-overview.adoc index affab2f29..6b21fd77d 100644 --- a/modules/learn/pages/services-and-indexes/indexes/global-secondary-indexes.adoc +++ b/modules/indexes/pages/indexing-overview.adoc @@ -1,5 +1,5 @@ = Primary and Secondary Index Reference -:page-aliases: indexes:indexing-overview,understanding-couchbase:services-and-indexes/indexes/global-secondary-indexes,indexes:gsi-for-n1ql,architecture:global-secondary-indexes,architecture:gsi-versus-views +:page-aliases: learn:services-and-indexes/indexes/global-secondary-indexes,understanding-couchbase:services-and-indexes/indexes/global-secondary-indexes,indexes:gsi-for-n1ql,architecture:global-secondary-indexes,architecture:gsi-versus-views :page-role: tiles -toc :!sectids: :description: Primary Indexes and Global Secondary Indexes (GSI) support queries made by the Query Service. @@ -20,16 +20,15 @@ endif::[] [abstract] {description} -== Tuning and Query Performance +== Indexing and Query Performance -* xref:learn:services-and-indexes/indexes/query-without-index.adoc[] -* xref:learn:services-and-indexes/indexes/index-lifecycle.adoc[] -* xref:learn:services-and-indexes/indexes/indexing-and-query-perf.adoc[] -* xref:n1ql:n1ql-language-reference/covering-indexes.adoc[] -* xref:learn:services-and-indexes/indexes/index-scans.adoc[] -* xref:learn:services-and-indexes/indexes/index_pushdowns.adoc[] -* xref:n1ql:n1ql-language-reference/groupby-aggregate-performance.adoc[] -* xref:learn:services-and-indexes/indexes/early-filters-and-pagination.adoc[] +* xref:query-without-index.adoc[] +* xref:indexing-and-query-perf.adoc[] +* xref:covering-indexes.adoc[] +* xref:index-scans.adoc[] +* xref:index_pushdowns.adoc[] +* xref:groupby-aggregate-performance.adoc[] +* xref:early-filters-and-pagination.adoc[] == Index Commands @@ -43,8 +42,9 @@ endif::[] == Storage and Availability -* xref:learn:services-and-indexes/indexes/index-replication.adoc[] -* xref:learn:services-and-indexes/indexes/storage-modes.adoc[] +* xref:index-lifecycle.adoc[] +* xref:index-replication.adoc[] +* xref:storage-modes.adoc[] == Related Links diff --git a/modules/learn/pages/services-and-indexes/indexes/query-without-index.adoc b/modules/indexes/pages/query-without-index.adoc similarity index 99% rename from modules/learn/pages/services-and-indexes/indexes/query-without-index.adoc rename to modules/indexes/pages/query-without-index.adoc index 3d10c36e6..e071677b8 100644 --- a/modules/learn/pages/services-and-indexes/indexes/query-without-index.adoc +++ b/modules/indexes/pages/query-without-index.adoc @@ -1,5 +1,6 @@ = Query without Indexes :page-topic-type: concept +:page-aliases: learn:services-and-indexes/indexes/query-without-index :description: Sequential scans enable you to query a keyspace, even if the keyspace has no indexes. :authorization-overview: xref:learn:security/authorization-overview.adoc diff --git a/modules/learn/pages/services-and-indexes/indexes/storage-modes.adoc b/modules/indexes/pages/storage-modes.adoc similarity index 97% rename from modules/learn/pages/services-and-indexes/indexes/storage-modes.adoc rename to modules/indexes/pages/storage-modes.adoc index bca743148..ff030c43b 100644 --- a/modules/learn/pages/services-and-indexes/indexes/storage-modes.adoc +++ b/modules/indexes/pages/storage-modes.adoc @@ -2,7 +2,7 @@ :navtitle: Storage Settings :description: A Secondary Index can be saved in either of two ways: memory-optimized or standard. :page-topic-type: concept -:page-aliases: indexes:storage-modes,understanding-couchbase:services-and-indexes/indexes/storage-modes,architecture:index-storage +:page-aliases: learn:services-and-indexes/indexes/storage-modes,understanding-couchbase:services-and-indexes/indexes/storage-modes,architecture:index-storage [abstract] A Secondary Index can be saved in either of two ways: _memory-optimized_ or _standard_. @@ -139,7 +139,7 @@ The consequent reduction in disk reads promotes the efficiency of mutation proce Bloom filters can be enabled or disabled by means of the Couchbase Web Console UI, or the REST API. See the information provided on establishing xref:manage:manage-settings/general-settings.adoc[General] settings for the cluster. -include::server:manage:manage-settings/general-settings.adoc[tag=bloom-filter-defaulte] +include::manage:manage-settings/general-settings.adoc[tag=bloom-filter-default] === In-Memory Compression diff --git a/modules/learn/partials/diagrams/query-execution.puml b/modules/indexes/partials/diagrams/query-execution.puml similarity index 100% rename from modules/learn/partials/diagrams/query-execution.puml rename to modules/indexes/partials/diagrams/query-execution.puml diff --git a/modules/learn/partials/diagrams/query-service.puml b/modules/indexes/partials/diagrams/query-service.puml similarity index 100% rename from modules/learn/partials/diagrams/query-service.puml rename to modules/indexes/partials/diagrams/query-service.puml diff --git a/modules/learn/assets/images/services-and-indexes/indexes/query_execution.png b/modules/learn/assets/images/services-and-indexes/indexes/query_execution.png deleted file mode 100644 index e76da2b70..000000000 Binary files a/modules/learn/assets/images/services-and-indexes/indexes/query_execution.png and /dev/null differ diff --git a/modules/learn/assets/images/services-and-indexes/indexes/query_service.svg b/modules/learn/assets/images/services-and-indexes/indexes/query_service.svg deleted file mode 100644 index ff2611d6f..000000000 --- a/modules/learn/assets/images/services-and-indexes/indexes/query_service.svg +++ /dev/null @@ -1,250 +0,0 @@ - - - - Artboard - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Parse - - - Plan - - - Scan - - - Fetch - - - Join - - - Sort - - - Offset - - - Limit - - - Project - - - Filter - - - Pre-Aggregate - - - Aggregate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Client - - - Query Service - - - - Index Service - - - - Data Service - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/learn/pages/services-and-indexes/indexes/indexes.adoc b/modules/learn/pages/services-and-indexes/indexes/indexes.adoc deleted file mode 100644 index e0c40297d..000000000 --- a/modules/learn/pages/services-and-indexes/indexes/indexes.adoc +++ /dev/null @@ -1,43 +0,0 @@ -= Indexes -:description: Couchbase Server indexes enhance the performance of query and search operations. -:page-aliases: understanding-couchbase:services-and-indexes/indexes/indexes,concepts:indexing - -[abstract] -{description} - -_Indexes_ are used by certain services, such as _Query_, _Analytics_, and _Search_, as targets for search-routines. -Each index makes a predefined subset of data available for the search. - -The _Query_ service relies on indexes provided by the _Index_ service. -The _Search_ and _Analytics_ services both provide their own indexes, internally. - -Indexes, when well-designed, provide significant enhancements to the performance of search-operations. - -== Indexes - -The following forms of index are available: - -Primary:: Provided by the xref:services-and-indexes/services/index-service.adoc[Index Service], this is based on the unique key of every item in a specified collection. -Every primary index is maintained asynchronously. -A primary index is intended to be used for simple queries, which have no filters or predicates. -For information on primary indexes, see xref:services-and-indexes/indexes/global-secondary-indexes.adoc[Using Indexes]. - -Secondary:: Provided by the xref:services-and-indexes/services/index-service.adoc[Index Service], this is based on an attribute _within_ a document. -The value associated with the attribute can be of any type: scalar, object, or array. -+ -A Secondary Index is frequently referred to as a _Global Secondary Index_, or _GSI_. -This is the kind of index used most frequently in Couchbase Server, for queries performed with {sqlpp}. -For information on Global Secondary Indexes, see xref:services-and-indexes/indexes/global-secondary-indexes.adoc[Using Indexes]. - -Full Text:: Provided by the xref:services-and-indexes/services/search-service.adoc[Search Service], this is a specially purposed index, which contains targets derived from the textual contents of documents within one or more specified keyspaces. -Text-matches of different degrees of exactitude can be searched for. -Both input and target text-values can be purged of irrelevant characters (such as punctuation marks or html tags). -For information on how to create Full Text Indexes, see xref:fts:fts-creating-indexes.adoc[Creating Indexes]. - -Analytics:: Provided by the xref:services-and-indexes/services/analytics-service.adoc[Analytics Service], this is a materialized access path for the shadow data in an Analytics collection. -Analytics indexes can be used to speed up Analytics selection queries and join queries. -If changes in operational data result in corresponding modifications to shadow data, Analytics indexes are updated automatically. -See the section on xref:analytics:7_using_index.adoc[Using Indexes] in Couchbase Analytics. - -View:: Supports xref:learn:views/views-intro.adoc[Couchbase Views], with fields and information extracted from documents. -Views are deprecated in Couchbase Server 7.0, and will be removed in a future release. diff --git a/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc b/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc index c61da6b43..339b362f7 100644 --- a/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc +++ b/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc @@ -227,4 +227,4 @@ For example, creating a secondary index on the `name` and `email` fields in the Note that you do not need to create an index on a keyspace to be able to query that keyspace. If no indexes exist on a keyspace, Couchbase Server uses a sequential scan to query that index. -For more information, refer to xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[]. +For more information, refer to xref:indexes:indexing-overview.adoc[]. diff --git a/modules/n1ql/pages/n1ql-language-reference/adaptive-indexing.adoc b/modules/n1ql/pages/n1ql-language-reference/adaptive-indexing.adoc index dc69513f9..6ae697a33 100644 --- a/modules/n1ql/pages/n1ql-language-reference/adaptive-indexing.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/adaptive-indexing.adoc @@ -6,7 +6,7 @@ :createindex: xref:n1ql-language-reference/createindex.adoc :install-sample-buckets: xref:manage:manage-settings/install-sample-buckets.adoc :indexing-arrays: xref:n1ql-language-reference/indexing-arrays.adoc -:partial-index: xref:learn:services-and-indexes/indexes/indexing-and-query-perf.adoc#partial-index +:partial-index: xref:indexes:indexing-and-query-perf.adoc#partial-index {description} Such an index is generic in nature, and it can efficiently index and lookup any of the index-key values. diff --git a/modules/n1ql/pages/n1ql-language-reference/advise.adoc b/modules/n1ql/pages/n1ql-language-reference/advise.adoc index 1f8e6c043..25040ab05 100644 --- a/modules/n1ql/pages/n1ql-language-reference/advise.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/advise.adoc @@ -27,7 +27,7 @@ :aggregate-quantifier: {n1ql}/aggregatefun.adoc#aggregate-quantifier // Indexing and Query Performance cross-references -:indexing-and-query-perf: xref:learn:services-and-indexes/indexes/indexing-and-query-perf.adoc +:indexing-and-query-perf: xref:indexes:indexing-and-query-perf.adoc :secondary-index: {indexing-and-query-perf}#secondary-index :partial-index: {indexing-and-query-perf}#partial-index :array-index: {indexing-and-query-perf}#array-index diff --git a/modules/n1ql/pages/n1ql-language-reference/aggregatefun.adoc b/modules/n1ql/pages/n1ql-language-reference/aggregatefun.adoc index 12c49e29b..476d6f6b8 100644 --- a/modules/n1ql/pages/n1ql-language-reference/aggregatefun.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/aggregatefun.adoc @@ -101,7 +101,7 @@ The conditional expression is subject to the same rules as the conditional expre It may not contain a subquery, a window function, or an outer reference. NOTE: If the query block contains an aggregate function which uses the FILTER clause, the aggregation is not pushed down to the indexer. -Refer to xref:n1ql:n1ql-language-reference/groupby-aggregate-performance.adoc#filter-clause[Grouping and Aggregate Pushdown] for more details. +Refer to xref:indexes:groupby-aggregate-performance.adoc#filter-clause[] for more details. [[over-clause]] === OVER Clause diff --git a/modules/n1ql/pages/n1ql-language-reference/createindex.adoc b/modules/n1ql/pages/n1ql-language-reference/createindex.adoc index 22511f7dc..5ed547d87 100644 --- a/modules/n1ql/pages/n1ql-language-reference/createindex.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/createindex.adoc @@ -6,7 +6,7 @@ Secondary indexes contain a filtered or a full set of keys in a given keyspace. :authorization-overview: xref:learn:security/authorization-overview.adoc -:index-replication: xref:learn:services-and-indexes/indexes/index-replication.adoc#index-replication +:index-replication: xref:indexes:index-replication.adoc#index-replication :console-indexes: xref:manage:manage-ui/manage-ui.adoc#console-indexes :query-context: xref:n1ql:n1ql-intro/queriesandresults.adoc#query-context :build-index: xref:n1ql-language-reference/build-index.adoc @@ -16,7 +16,7 @@ Secondary indexes contain a filtered or a full set of keys in a given keyspace. :indexing-arrays: xref:n1ql-language-reference/indexing-arrays.adoc :index-partitioning: xref:n1ql-language-reference/index-partitioning.adoc :indexing-meta-info: xref:n1ql-language-reference/indexing-meta-info.adoc -:operator-pushdowns: xref:learn:services-and-indexes/indexes/index_pushdowns.adoc#operator-pushdowns +:operator-pushdowns: xref:indexes:index_pushdowns.adoc#operator-pushdowns :logical-hierarchy: xref:n1ql:n1ql-intro/queriesandresults.adoc#logical-hierarchy :querying-indexes: xref:n1ql-intro/sysinfo.adoc#querying-indexes diff --git a/modules/n1ql/pages/n1ql-language-reference/createprimaryindex.adoc b/modules/n1ql/pages/n1ql-language-reference/createprimaryindex.adoc index 5013f3b2b..aa75fab1b 100644 --- a/modules/n1ql/pages/n1ql-language-reference/createprimaryindex.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/createprimaryindex.adoc @@ -11,7 +11,7 @@ Primary indexes contain a full set of keys in a given keyspace. :query-context: xref:n1ql:n1ql-intro/queriesandresults.adoc#query-context :logical-hierarchy: xref:n1ql-intro/queriesandresults.adoc#logical-hierarchy :querying-indexes: xref:n1ql-intro/sysinfo.adoc#querying-indexes -:index-replication: xref:learn:services-and-indexes/indexes/index-replication.adoc#index-replication +:index-replication: xref:indexes:index-replication.adoc#index-replication :query-settings: xref:manage:manage-settings/query-settings.adoc // TEMP diff --git a/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc b/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc index bb4cf5fa2..a97f22b7a 100644 --- a/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc @@ -13,13 +13,13 @@ :index-type: xref:n1ql-language-reference/hints.adoc#index-type :isstring: xref:n1ql-language-reference/typefun.adoc#isstring :isnumber: xref:n1ql-language-reference/typefun.adoc#isnumber -:covering-indexes: xref:n1ql:n1ql-language-reference/covering-indexes.adoc +:covering-indexes: xref:indexes:covering-indexes.adoc :query-settings: xref:n1ql:n1ql-manage/query-settings.adoc :fts-creating-indexes: xref:fts:fts-creating-indexes.adoc :inserting-a-child-field: xref:fts:fts-creating-indexes.adoc#inserting-a-child-field :pre-constructed-analyzers: xref:fts:fts-using-analyzers.adoc#pre-constructed-analyzers :simple-queries: xref:fts:fts-query-types.adoc#simple-queries -:index_pushdowns: xref:learn:services-and-indexes/indexes/index_pushdowns.adoc +:index_pushdowns: xref:indexes:index_pushdowns.adoc [abstract] {description} diff --git a/modules/n1ql/pages/n1ql-language-reference/groupby.adoc b/modules/n1ql/pages/n1ql-language-reference/groupby.adoc index 82828b54f..171f6eda0 100644 --- a/modules/n1ql/pages/n1ql-language-reference/groupby.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/groupby.adoc @@ -265,4 +265,4 @@ The alias in the `GROUP BY` clause enables you to refer to the `CASE` expression == Related Links -* For further examples, refer to xref:n1ql:n1ql-language-reference/groupby-aggregate-performance.adoc[Group By and Aggregate Performance]. +* For further examples, refer to xref:indexes:groupby-aggregate-performance.adoc[]. diff --git a/modules/n1ql/pages/n1ql-language-reference/selectintro.adoc b/modules/n1ql/pages/n1ql-language-reference/selectintro.adoc index afa96f22e..fabc6b12e 100644 --- a/modules/n1ql/pages/n1ql-language-reference/selectintro.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/selectintro.adoc @@ -157,7 +157,7 @@ The following diagram shows the query execution workflow at a high level and ill .Query Execution Workflow [plantuml,query-execution,svg] .... -include::learn:partial$diagrams/query-execution.puml[] +include::indexes:partial$diagrams/query-execution.puml[] .... The SELECT statement is executed as a sequence of steps. @@ -170,7 +170,7 @@ The following diagram shows the possible elements and operations during query ex .Query Execution Phases [plantuml,query-service,svg] .... -include::learn:partial$diagrams/query-service.puml[] +include::indexes:partial$diagrams/query-service.puml[] .... Some phases are done serially while others are done in parallel, as specified by their parent operator. @@ -802,4 +802,4 @@ include::example$n1ql-language-reference/explain-idx-include.jsonc[tags=include; <.> In this case, since the lead key in the index includes MISSING values, the optimizer correctly chooses the `idx_airport_include` index. ==== -For further examples, refer to xref:n1ql:n1ql-language-reference/groupby-aggregate-performance.adoc[Group By and Aggregate Performance]. +For further examples, refer to xref:indexes:groupby-aggregate-performance.adoc[]. diff --git a/modules/n1ql/pages/n1ql-language-reference/updatestatistics.adoc b/modules/n1ql/pages/n1ql-language-reference/updatestatistics.adoc index db57dd618..590ad2576 100644 --- a/modules/n1ql/pages/n1ql-language-reference/updatestatistics.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/updatestatistics.adoc @@ -97,7 +97,7 @@ If an index has a memory-resident ratio of zero, then the statement returns the Depending on the index storage settings, if an index has been scanned recently, it is more likely to be memory-resident; whereas if an index is not used for a long while, then it is more likely to be ejected from memory. You may be able to improve the memory-resident ratio for an index (and avoid error 5390) by running one or more queries which use that index. -For further details, refer to xref:learn:services-and-indexes/indexes/storage-modes.adoc[Storage Settings]. +For further details, refer to xref:indexes:storage-modes.adoc[Storage Settings]. == Optimizer Statistics diff --git a/modules/n1ql/pages/query.adoc b/modules/n1ql/pages/query.adoc index 4d0f818b2..67fbb82c6 100644 --- a/modules/n1ql/pages/query.adoc +++ b/modules/n1ql/pages/query.adoc @@ -63,7 +63,7 @@ Based on SQL, it's immediately familiar to developers who can quickly start deve == Query References * xref:n1ql:n1ql-language-reference/index.adoc[] -* xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[] +* xref:indexes:indexing-overview.adoc[] * xref:javascript-udfs:javascript-functions-with-couchbase.adoc[] == Related Links diff --git a/modules/n1ql/partials/nav.adoc b/modules/n1ql/partials/nav.adoc index 108680045..adc7e548e 100644 --- a/modules/n1ql/partials/nav.adoc +++ b/modules/n1ql/partials/nav.adoc @@ -149,17 +149,17 @@ **** xref:n1ql:n1ql-language-reference/upsert.adoc[] *** xref:n1ql:n1ql-language-reference/n1ql-auditing.adoc[] *** xref:n1ql:n1ql-language-reference/n1ql-error-codes.adoc[] - ** xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[] - *** xref:learn:services-and-indexes/indexes/query-without-index.adoc[] - *** xref:learn:services-and-indexes/indexes/index-lifecycle.adoc[] - *** xref:learn:services-and-indexes/indexes/indexing-and-query-perf.adoc[] - *** xref:n1ql:n1ql-language-reference/covering-indexes.adoc[] - *** xref:learn:services-and-indexes/indexes/index-scans.adoc[] - *** xref:learn:services-and-indexes/indexes/index_pushdowns.adoc[] - *** xref:n1ql:n1ql-language-reference/groupby-aggregate-performance.adoc[] - *** xref:learn:services-and-indexes/indexes/early-filters-and-pagination.adoc[] - *** xref:learn:services-and-indexes/indexes/index-replication.adoc[] - *** xref:learn:services-and-indexes/indexes/storage-modes.adoc[] + ** xref:indexes:indexing-overview.adoc[] + *** xref:indexes:query-without-index.adoc[] + *** xref:indexes:indexing-and-query-perf.adoc[] + *** xref:indexes:covering-indexes.adoc[] + *** xref:indexes:index-scans.adoc[] + *** xref:indexes:index_pushdowns.adoc[] + *** xref:indexes:groupby-aggregate-performance.adoc[] + *** xref:indexes:early-filters-and-pagination.adoc[] + *** xref:indexes:index-lifecycle.adoc[] + *** xref:indexes:index-replication.adoc[] + *** xref:indexes:storage-modes.adoc[] ** xref:javascript-udfs:javascript-functions-with-couchbase.adoc[] *** xref:tools:udfs-ui.adoc[] *** xref:javascript-udfs:calling-javascript-from-n1ql.adoc[]