diff --git a/modules/ROOT/images/capella-logo.svg b/modules/ROOT/images/capella-logo.svg new file mode 100644 index 000000000..c03d2f24b --- /dev/null +++ b/modules/ROOT/images/capella-logo.svg @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/modules/ROOT/images/couchbase-logo.svg b/modules/ROOT/images/couchbase-logo.svg new file mode 100644 index 000000000..36cf6df44 --- /dev/null +++ b/modules/ROOT/images/couchbase-logo.svg @@ -0,0 +1,50 @@ + + + + + + + \ No newline at end of file diff --git a/modules/ROOT/partials/component-signpost.adoc b/modules/ROOT/partials/component-signpost.adoc new file mode 100644 index 000000000..6b33cc1a8 --- /dev/null +++ b/modules/ROOT/partials/component-signpost.adoc @@ -0,0 +1,17 @@ +// `flag-devex-escape-hatch` is a flag to hide the feature from production until ready. +// Use `no-escape-hatch` to turn off the escape hatch for individual pages. +// Use `escape-hatch` to override the escape hatch xref for individual pages. +ifdef::flag-devex-escape-hatch[] +[.signpost] +image:ROOT:couchbase-logo.svg["Couchbase Server", 25.6] +This page is for Couchbase Server. +ifndef::no-escape-hatch[] +For Couchbase Capella, see +ifdef::escape-hatch[] +xref:{escape-hatch}[]. +endif::escape-hatch[] +ifndef::escape-hatch[] +xref:cloud:{page-module}:{docname}.adoc[]. +endif::escape-hatch[] +endif::no-escape-hatch[] +endif::flag-devex-escape-hatch[] \ No newline at end of file diff --git a/modules/develop/pages/intro.adoc b/modules/develop/pages/intro.adoc index b4854768c..f7878c0e2 100644 --- a/modules/develop/pages/intro.adoc +++ b/modules/develop/pages/intro.adoc @@ -1,8 +1,8 @@ -= Developer's Intro += Developer Intro :page-role: tiles -toc :description: This section contains tutorials, how-to guides, and information about Couchbase Services to help you develop applications. :!sectids: -:page-aliases: concepts:application-development +:page-aliases: concepts:application-development,guides:intro.adoc // Pass through HTML styles for this page. @@ -21,9 +21,9 @@ ifdef::basebackend-html[] endif::[] {description} -It also provides links to the documentation for software development kits and starter kits. +It also provides links to the documentation for software development kits and other integrations. -include::partial$escape-hatch.adoc[] +include::ROOT:partial$component-signpost.adoc[] == Developer Tutorial @@ -31,46 +31,60 @@ This tutorial provides an introductory worked example for developers, showing ho * xref:tutorials:couchbase-tutorial-student-records.adoc[] -== Developer Guides +== Connect -These how-to guides walk you through common tasks for Couchbase Server development, such as storing, retrieving, and querying documents. +Choose how you want to connect your app to Couchbase Server. -* xref:guides:intro.adoc[Developer Guides] +* xref:guides:connect.adoc[] -== SDKs +== Data -Couchbase offers numerous software development kits (SDKs) that provide programmatic access to Couchbase Server. +Use the Data Service for key-value (CRUD) operations and to import or export data. -* xref:home:ROOT:sdk.adoc[] +* xref:guides:data.adoc[] -== Starter Kits +== Query -Starter kits are repositories containing example code to get you started with various development projects. +Use the Query Service and the Index Service to issue {sqlpp} queries to extract and manipulate data. -* xref:getting-started:starter-kits.adoc[] +* xref:n1ql:query.adoc[] -== Query Service Information +== Vector Search -The Query Service enables you to issue queries to extract data from Couchbase clusters. -You can also issue queries for defining indexes and data manipulation. +Vector Search builds on the Search Service to provide support for vector indexes. +You can use vector indexes with existing Large Language Models to develop AI applications. -* xref:n1ql:query.adoc[] +* xref:vector-search:vector-search.adoc[] -== Search Service Information +== Search -The Search Service (Full Text Search or FTS) enables you to create and manage full-text indexes, and provides extensive capabilities for natural-language and geospatial queries. +Use the Search Service for full-text search with natural language processing across multiple data types and languages. +Use custom text analysis, Geospatial search, and more. -* xref:fts:fts-introduction.adoc[] +* xref:search:search.adoc[] -== Eventing Service Information +== Eventing -The Eventing Service provides near real-time handling of changes to data. -It enables you to execute code either in response to mutations, or as scheduled by timers. +Use the Eventing Service to respond to changes to your data in near real-time. +Execute custom code in response to mutations, or as scheduled by timers. * xref:eventing:eventing-overview.adoc[] -== Analytics Service Information +== Analytics + +Use the Analytics Service for online analytical processing (OLAP) for large datasets, with complex analytical or ad hoc queries. + +* xref:analytics:introduction.adoc[] + +== SDKs + +Couchbase offers numerous software development kits (SDKs) that provide programmatic access to Couchbase Server. + +* xref:home:ROOT:sdk.adoc[] + +== Integrations -The Analytics Service is a parallel data management capability for Couchbase Server, designed to run ad-hoc, analytical queries efficiently over many records. +Integrations that Couchbase or partners have developed to enhance Couchbase Server and partner services -- +a vital tool for many larger development projects. -* xref:analytics:introduction.adoc[Introduction to Analytics] \ No newline at end of file +* xref:third-party:integrations.adoc[] diff --git a/modules/develop/partials/escape-hatch.adoc b/modules/develop/partials/escape-hatch.adoc deleted file mode 100644 index 6812ed778..000000000 --- a/modules/develop/partials/escape-hatch.adoc +++ /dev/null @@ -1,8 +0,0 @@ -This -ifdef::page-topic-type[{page-topic-type}] -ifndef::page-topic-type[page] -is for Couchbase Server. -ifdef::flag-devex-escape-hatch[] -// soft-set flag-devex-escape-hatch so authors can override the escape hatch for individual pages -For Couchbase Capella, see xref:cloud:develop:{docname}.adoc[]. -endif::flag-devex-escape-hatch[] \ No newline at end of file diff --git a/modules/develop/partials/nav.adoc b/modules/develop/partials/nav.adoc index 8abe22369..b66adb7d6 100644 --- a/modules/develop/partials/nav.adoc +++ b/modules/develop/partials/nav.adoc @@ -1,2 +1 @@ -* xref:develop:intro.adoc[Developer's Intro] -* xref:develop:integrations.adoc[Third Party Integrations] +* xref:develop:intro.adoc[] \ No newline at end of file diff --git a/modules/guides/pages/intro.adoc b/modules/guides/pages/.intro.adoc similarity index 97% rename from modules/guides/pages/intro.adoc rename to modules/guides/pages/.intro.adoc index 85b61ecb0..9306a801a 100644 --- a/modules/guides/pages/intro.adoc +++ b/modules/guides/pages/.intro.adoc @@ -21,7 +21,7 @@ endif::[] This section contains _how-to guides_ that walk you through common tasks for Couchbase Server development, such as storing, retrieving, and querying documents. -include::partial$other-guide.adoc[] +include::ROOT:partial$component-signpost.adoc[] == Connecting to Couchbase diff --git a/modules/guides/pages/optimize.adoc b/modules/guides/pages/.optimize.adoc similarity index 84% rename from modules/guides/pages/optimize.adoc rename to modules/guides/pages/.optimize.adoc index 62c1633b9..c5b644fee 100644 --- a/modules/guides/pages/optimize.adoc +++ b/modules/guides/pages/.optimize.adoc @@ -20,14 +20,9 @@ ifdef::basebackend-html[] ++++ endif::[] -{description} + -include::partial$other-guide.adoc[] +{description} -== Prepared Statements - -include::prep-statements.adoc[tags=intro] - -* xref:prep-statements.adoc[] +include::ROOT:partial$component-signpost.adoc[] == Index Advisor diff --git a/modules/guides/pages/bulk-operations.adoc b/modules/guides/pages/bulk-operations.adoc index 3a08e4f1b..01df27a9e 100644 --- a/modules/guides/pages/bulk-operations.adoc +++ b/modules/guides/pages/bulk-operations.adoc @@ -1,5 +1,5 @@ -= Bulk Operations -:description: How to perform bulk CRUD operations in Couchbase. += Work with Documents in Bulk +:description: How to perform bulk CRUD operations with a command line tool or an SDK. :page-pagination: prev :page-topic-type: guide :tabs: @@ -8,10 +8,9 @@ include::partial$example-attributes.adoc[] [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/call-user-defined-function.adoc b/modules/guides/pages/call-user-defined-function.adoc index 33d7890dc..536249699 100644 --- a/modules/guides/pages/call-user-defined-function.adoc +++ b/modules/guides/pages/call-user-defined-function.adoc @@ -5,13 +5,12 @@ :page-topic-type: guide :page-toclevels: 2 :imagesdir: ../assets/images -:flag-devex-escape-hatch!: +:no-escape-hatch: [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/cbo.adoc b/modules/guides/pages/cbo.adoc index 8bf8d7ebb..d092152fe 100644 --- a/modules/guides/pages/cbo.adoc +++ b/modules/guides/pages/cbo.adoc @@ -1,4 +1,4 @@ -= Cost-Based Optimizer += Use the Cost-Based Optimizer with Queries :page-topic-type: guide :page-partial: :page-pagination: prev @@ -7,10 +7,9 @@ :description: How to use the Cost-Based Optimizer and manage optimizer statistics. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/connect.adoc b/modules/guides/pages/connect.adoc index 681ea75e4..2180314fb 100644 --- a/modules/guides/pages/connect.adoc +++ b/modules/guides/pages/connect.adoc @@ -1,4 +1,4 @@ -= Connecting to Couchbase Server += Connect to Couchbase Server :description: How to connect to a Couchbase Cluster. :page-topic-type: guide :page-toclevels: 2 @@ -9,10 +9,9 @@ include::partial$example-attributes.adoc[] [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/create-index.adoc b/modules/guides/pages/create-index.adoc index 63fa1c25d..15c380997 100644 --- a/modules/guides/pages/create-index.adoc +++ b/modules/guides/pages/create-index.adoc @@ -1,4 +1,4 @@ -= Creating Indexes += Create Indexes :page-topic-type: guide :imagesdir: ../assets/images :page-partial: @@ -9,10 +9,9 @@ :description: How to create primary indexes and secondary indexes. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/create-javascript-library.adoc b/modules/guides/pages/create-javascript-library.adoc index ee9d7ebf6..6801814b8 100644 --- a/modules/guides/pages/create-javascript-library.adoc +++ b/modules/guides/pages/create-javascript-library.adoc @@ -5,13 +5,12 @@ :page-topic-type: guide :page-toclevels: 2 :imagesdir: ../assets/images -:flag-devex-escape-hatch!: +:no-escape-hatch: [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/create-user-defined-function.adoc b/modules/guides/pages/create-user-defined-function.adoc index 102d037b0..61f752f50 100644 --- a/modules/guides/pages/create-user-defined-function.adoc +++ b/modules/guides/pages/create-user-defined-function.adoc @@ -6,13 +6,12 @@ :page-toclevels: 2 :keywords: N1QL, UDF, user-defined function, SQL++ :imagesdir: ../assets/images -:flag-devex-escape-hatch!: +:no-escape-hatch: [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/creating-data.adoc b/modules/guides/pages/creating-data.adoc index 9530111d5..7fb24c623 100644 --- a/modules/guides/pages/creating-data.adoc +++ b/modules/guides/pages/creating-data.adoc @@ -1,5 +1,5 @@ -= Creating Data -:description: How to create documents in Couchbase. += Create Documents +:description: How to create documents with a command line tool or an SDK. :page-pagination: full :page-topic-type: guide :page-toclevels: 2 @@ -9,10 +9,9 @@ include::partial$example-attributes.adoc[] [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/data.adoc b/modules/guides/pages/data.adoc new file mode 100644 index 000000000..065b2a708 --- /dev/null +++ b/modules/guides/pages/data.adoc @@ -0,0 +1,44 @@ += Work with Your Data +:page-role: tiles -toc +:description: The Data Service offers Couchbase clients the fastest and simplest way to create, retrieve, or mutate data. +:!sectids: + +// Pass through HTML styles for this page. + +ifdef::basebackend-html[] +++++ + +++++ +endif::[] + +[abstract] +{description} + +include::ROOT:partial$component-signpost.adoc[] + +== Key-Value Operations + +Use the Couchbase Web Console or an SDK to create, read, update, or delete data. + +* xref:kv-operations.adoc[] + +== Import and Export + +Use the Couchbase Web Console, an SDK, or a command-line tool to import data. +Use a command-line tool to export data. + +* xref:load.adoc[] + +== Related Links + +Refer to the following for information on the Data Service. + +* xref:learn:services-and-indexes/services/data-service.adoc[] \ No newline at end of file diff --git a/modules/guides/pages/defer-index.adoc b/modules/guides/pages/defer-index.adoc index e350fa2d4..6ed4bdb74 100644 --- a/modules/guides/pages/defer-index.adoc +++ b/modules/guides/pages/defer-index.adoc @@ -1,4 +1,4 @@ -= Deferring Indexes += Defer Indexes :page-topic-type: guide :imagesdir: ../assets/images :page-partial: @@ -8,10 +8,9 @@ :description: How to create deferred indexes and build them later. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/delete.adoc b/modules/guides/pages/delete.adoc index 99a277d86..d9ab6a1a8 100644 --- a/modules/guides/pages/delete.adoc +++ b/modules/guides/pages/delete.adoc @@ -1,4 +1,4 @@ -= Deleting Data with {sqlpp} += Delete Data with a Query :page-topic-type: guide :imagesdir: ../assets/images :tabs: @@ -7,10 +7,9 @@ :description: How to delete documents using {sqlpp}. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/deleting-data.adoc b/modules/guides/pages/deleting-data.adoc index 84e93a196..6e9a6235a 100644 --- a/modules/guides/pages/deleting-data.adoc +++ b/modules/guides/pages/deleting-data.adoc @@ -1,5 +1,5 @@ -= Deleting Data -:description: How to delete documents in Couchbase. += Delete Documents +:description: How to delete documents with a command line tool or an SDK. :page-pagination: full :page-topic-type: guide :tabs: @@ -8,14 +8,13 @@ include::partial$example-attributes.adoc[] [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction -In situations where data is no longer needed, Couchbase Server provides a remove operation to delete a document from the database permanently. +In situations where data is no longer needed, Couchbase Server provides a remove operation to delete a document from the database permanently. include::partial$clients.adoc[tag=refs] diff --git a/modules/guides/pages/drop-index.adoc b/modules/guides/pages/drop-index.adoc index d4d9df565..d75412860 100644 --- a/modules/guides/pages/drop-index.adoc +++ b/modules/guides/pages/drop-index.adoc @@ -1,4 +1,4 @@ -= Dropping Indexes += Drop Indexes :page-topic-type: guide :imagesdir: ../assets/images :page-partial: @@ -8,10 +8,9 @@ :description: How to drop primary and secondary indexes. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/group-agg.adoc b/modules/guides/pages/group-agg.adoc index 34adcf578..dfe03cb8e 100644 --- a/modules/guides/pages/group-agg.adoc +++ b/modules/guides/pages/group-agg.adoc @@ -1,16 +1,15 @@ -= Grouping and Aggregation += Calculate Aggregates and Group Results :page-topic-type: guide :page-partial: -:page-pagination: prev +:page-pagination: :imagesdir: ../assets/images :tabs: :description: How to calculate aggregates and group the results. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/import.adoc b/modules/guides/pages/import.adoc index 630744f12..4cab9ec69 100644 --- a/modules/guides/pages/import.adoc +++ b/modules/guides/pages/import.adoc @@ -1,16 +1,15 @@ -= Importing Data -// Importing and Streaming Data += Import Data with an SDK :page-topic-type: guide :imagesdir: ../assets/images :page-toclevels: 2 -:description: How to import documents into Couchbase. +:page-pagination: +:description: How to import documents into Couchbase with an SDK. :github: Click the icon:github[] View button to see any code sample in context. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction @@ -20,7 +19,7 @@ or using the SDK to script the process. Data load essentially consists of the following steps: -. Prepare data in some well known format such as Comma Separated Values (.csv) or JSON documents. +. Prepare data in some well known format such as Comma Separated Values (.csv) or JSON documents. . Parse this data, and iterate over each document. @@ -309,7 +308,7 @@ include::java-sdk:howtos:example$Import.java[tags=importCSV,indent=0] include::java-sdk:howtos:example$Import.java[tags=importTSV;!omit,indent=0] ---- -If you are using the *Reactor API* then, as OpenCSV doesn't have a built-in converter, +If you are using the *Reactor API* then, as OpenCSV doesn't have a built-in converter, use the https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Flux.html#generate-java.util.concurrent.Callable-java.util.function.BiFunction-java.util.function.Consumer-[`Flux::generate`] method to convert the CSV or TSV file into a stream: [source,java] @@ -685,7 +684,7 @@ Reference and information: How-to guides: -* The xref:guides:kv-operations.adoc[] guide shows how to read and update the data you have imported. +* The xref:guides:kv-operations.adoc[] guide shows how to read and update the data you have imported. Key-Value Operations with SDKs: diff --git a/modules/guides/pages/index-advisor.adoc b/modules/guides/pages/index-advisor.adoc index 6bf8c47ac..ea4d0b0a8 100644 --- a/modules/guides/pages/index-advisor.adoc +++ b/modules/guides/pages/index-advisor.adoc @@ -1,16 +1,15 @@ -= Index Advisor += Get Index Advice :page-topic-type: guide :page-partial: -:page-pagination: +:page-pagination: prev :imagesdir: ../assets/images :page-edition: Enterprise Edition :description: How to use the Index Advisor to recommend indexes for your queries. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/indexes.adoc b/modules/guides/pages/indexes.adoc index bfa7ee9be..d1d836aa8 100644 --- a/modules/guides/pages/indexes.adoc +++ b/modules/guides/pages/indexes.adoc @@ -1,4 +1,4 @@ -= Indexes += Use Primary and Secondary Indexes :page-role: tiles -toc :page-pagination: next :description: These guides explain how to create and use primary and secondary indexes for {sqlpp} queries. @@ -20,41 +20,42 @@ ifdef::basebackend-html[] ++++ endif::[] -{description} + -include::partial$other-guide.adoc[] +{description} -== Creating Indexes +include::ROOT:partial$component-signpost.adoc[] + +== Create Indexes include::create-index.adoc[tags=intro] * xref:create-index.adoc[Creating Indexes] -== Index Placement +== Place Indexes include::place-index.adoc[tags=intro] * xref:place-index.adoc[Index Placement] -== Deferring Indexes +== Defer Indexes include::defer-index.adoc[tags=intro] * xref:defer-index.adoc[Deferring Indexes] -== Selecting Indexes +== Select Indexes include::select-index.adoc[tags=intro] * xref:select-index.adoc[Selecting Indexes] -== Dropping Indexes +== Drop Indexes include::drop-index.adoc[tags=intro] * xref:drop-index.adoc[Dropping Indexes] -== Related Links +== Get Index Advice -Refer to the following guide for information on the Index Advisor, and other optimization features. +include::index-advisor.adoc[tags=intro] -* xref:optimize.adoc[] \ No newline at end of file +* xref:index-advisor.adoc[] diff --git a/modules/guides/pages/insert.adoc b/modules/guides/pages/insert.adoc index 8ec2a12f6..5657638c2 100644 --- a/modules/guides/pages/insert.adoc +++ b/modules/guides/pages/insert.adoc @@ -1,4 +1,4 @@ -= Inserting Data with {sqlpp} += Insert Data with a Query :page-topic-type: guide :imagesdir: ../assets/images :tabs: @@ -7,10 +7,9 @@ :description: How to insert documents using {sqlpp}. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/javascript-udfs.adoc b/modules/guides/pages/javascript-udfs.adoc index 48b0fb4e4..8144f015b 100644 --- a/modules/guides/pages/javascript-udfs.adoc +++ b/modules/guides/pages/javascript-udfs.adoc @@ -5,13 +5,12 @@ :page-topic-type: guide :page-toclevels: 2 :xrefstyle: short -:flag-devex-escape-hatch!: +:no-escape-hatch: [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/join.adoc b/modules/guides/pages/join.adoc index 75ce15b9a..aa4ed375d 100644 --- a/modules/guides/pages/join.adoc +++ b/modules/guides/pages/join.adoc @@ -1,4 +1,4 @@ -= Querying Across Relationships += Query Across Relationships :page-topic-type: guide :page-partial: :page-pagination: @@ -8,10 +8,9 @@ :description: How to join data sources for a {sqlpp} selection query. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/kv-operations.adoc b/modules/guides/pages/kv-operations.adoc index 9bb5b622d..7bf2d8ac7 100644 --- a/modules/guides/pages/kv-operations.adoc +++ b/modules/guides/pages/kv-operations.adoc @@ -1,4 +1,4 @@ -= Key-Value Operations += Work with Documents :description: How to perform CRUD key-value operations in Couchbase. :page-pagination: next :page-topic-type: guide @@ -6,14 +6,13 @@ :page-toclevels: 2 [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction -Every item in a database goes through the basic _CRUD_ cycle, which is typical of an application’s use of data. +Every item in a database goes through the basic _CRUD_ cycle, which is typical of an application's use of data. CRUD stands for create, read, update, and delete: * **C**reate: when data is first inserted into the cluster @@ -32,8 +31,9 @@ include::partial$clients.adoc[] Key-Value Operations guides: -* xref:creating-data.adoc[Creating Data] -* xref:reading-data.adoc[Reading Data] -* xref:updating-data.adoc[Updating Data] -* xref:deleting-data.adoc[Deleting Data] -* xref:bulk-operations.adoc[Bulk Operations] +* xref:manage:manage-documents/manage-documents.adoc[] +* xref:creating-data.adoc[] +* xref:reading-data.adoc[] +* xref:updating-data.adoc[] +* xref:deleting-data.adoc[] +* xref:bulk-operations.adoc[] diff --git a/modules/guides/pages/load.adoc b/modules/guides/pages/load.adoc new file mode 100644 index 000000000..40ddfabe7 --- /dev/null +++ b/modules/guides/pages/load.adoc @@ -0,0 +1,49 @@ += Import and Export Data +:page-role: tiles -toc +:page-pagination: next +:description: How to import data from files, and how to export data. +:!sectids: + +// Pass through HTML styles for this page. + +ifdef::basebackend-html[] +++++ + +++++ +endif::[] + +{description} + +include::ROOT:partial$component-signpost.adoc[] + +== Import Data with the Couchbase Web Console + +Use the Couchbase Web Console to import data interactively, and to preview your imports. + +* xref:manage:import-documents/import-documents.adoc[] + +== Import Data with an SDK + +Use an SDK to script the process of importing data. + +* xref:import.adoc[] + +== Import and Export Data with Command Line Tools + +Use Couchbase command line tools to import and export data. + +* xref:import.adoc[] + +== Related Links + +Refer to the following for information on command line tools. + +* xref:cli:cli-intro.adoc[] \ No newline at end of file diff --git a/modules/guides/pages/manipulate.adoc b/modules/guides/pages/manipulate.adoc index d2c037789..af9ca34f2 100644 --- a/modules/guides/pages/manipulate.adoc +++ b/modules/guides/pages/manipulate.adoc @@ -1,4 +1,4 @@ -= Data Manipulation Queries += Manipulate Data with Queries :page-role: tiles -toc :page-pagination: next :description: These guides explain how to create, update, and delete data with a {sqlpp} query. @@ -20,8 +20,9 @@ ifdef::basebackend-html[] ++++ endif::[] -{description} + -include::partial$other-guide.adoc[] +{description} + +include::ROOT:partial$component-signpost.adoc[] == Inserting Data diff --git a/modules/guides/pages/nest-unnest.adoc b/modules/guides/pages/nest-unnest.adoc index 1cdeea233..73bde116e 100644 --- a/modules/guides/pages/nest-unnest.adoc +++ b/modules/guides/pages/nest-unnest.adoc @@ -1,4 +1,4 @@ -= Nesting and Unnesting Documents += Nest and Unnest Documents :page-topic-type: guide :page-partial: :page-pagination: @@ -8,10 +8,9 @@ :description: How to nest and unnest arrays of embedded objects. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/place-index.adoc b/modules/guides/pages/place-index.adoc index c084994a9..01963bab8 100644 --- a/modules/guides/pages/place-index.adoc +++ b/modules/guides/pages/place-index.adoc @@ -1,4 +1,4 @@ -= Index Placement += Place Indexes :page-topic-type: guide :imagesdir: ../assets/images :tabs: @@ -7,10 +7,9 @@ :description: How to place indexes on specified nodes, create index replicas, and partition indexes. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/prep-statements.adoc b/modules/guides/pages/prep-statements.adoc index 041f06c8c..88ef97c6f 100644 --- a/modules/guides/pages/prep-statements.adoc +++ b/modules/guides/pages/prep-statements.adoc @@ -1,15 +1,14 @@ -= Prepared Statements += Prepare Statements for Reuse :page-topic-type: guide :page-partial: -:page-pagination: +:page-pagination: prev :imagesdir: ../assets/images :description: How to create and execute prepared statements, including placeholder parameters. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction @@ -144,14 +143,14 @@ The following example supplies a single positional parameter. [source,csharp] ---- -include::dotnet-sdk:howtos:example$/N1qlQueries.csx[tag=positional,indent=0] +include::dotnet-sdk:howtos:example$/n1ql-queries-sdk/n1ql-queries-sdk/Program.cs[tag=positional,indent=0] ---- The following example supplies a single named parameter. [source,csharp] ---- -include::dotnet-sdk:howtos:example$/N1qlQueries.csx[tag=namedparameter,indent=0] +include::dotnet-sdk:howtos:example$/n1ql-queries-sdk/n1ql-queries-sdk/Program.cs[tag=namedparameter,indent=0] ---- For details, refer to https://docs.couchbase.com/sdk-api/couchbase-net-client/api/Couchbase.Query.QueryOptions.html[QueryOptions^]. diff --git a/modules/guides/pages/query.adoc b/modules/guides/pages/query.adoc index 9725b2913..2866716c0 100644 --- a/modules/guides/pages/query.adoc +++ b/modules/guides/pages/query.adoc @@ -1,4 +1,4 @@ -= Selection Queries += Select Data with Queries :page-role: tiles -toc :page-pagination: next :description: These guides explain how to read data with a {sqlpp} query. @@ -24,21 +24,21 @@ endif::[] The {sqlpp} query language enables you to retrieve a document by inspecting its contents to see if it matches a certain criterion. Key-value operations are quicker, but querying documents allows for richer search capabilities -- for example, "Give me all likes and followed users located in the US", versus "Give me a user with the ID e3d882a4". -include::partial$other-guide.adoc[] +include::ROOT:partial$component-signpost.adoc[] -== Selecting Data with Queries +== Read Data and Return Results include::select.adoc[tags=intro] * xref:select.adoc[] -== Querying Across Relationships +== Query Across Relationships include::join.adoc[tags=intro] * xref:join.adoc[] -== Nesting and Unnesting Documents +== Nest and Unnest Documents include::nest-unnest.adoc[tags=intro] @@ -48,4 +48,10 @@ include::nest-unnest.adoc[tags=intro] include::group-agg.adoc[tags=intro] -* xref:group-agg.adoc[] \ No newline at end of file +* xref:group-agg.adoc[] + +== Prepared Statements + +include::prep-statements.adoc[tags=intro] + +* xref:prep-statements.adoc[] diff --git a/modules/guides/pages/reading-data.adoc b/modules/guides/pages/reading-data.adoc index db7d80dbe..81f74603a 100644 --- a/modules/guides/pages/reading-data.adoc +++ b/modules/guides/pages/reading-data.adoc @@ -1,5 +1,5 @@ -= Reading Data -:description: How to read documents in Couchbase. += Read Documents +:description: How to read documents with a command line tool or an SDK. :page-pagination: full :page-topic-type: guide :page-toclevels: 2 @@ -9,10 +9,9 @@ include::partial$example-attributes.adoc[] [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/select-index.adoc b/modules/guides/pages/select-index.adoc index 64ae5ab35..590854426 100644 --- a/modules/guides/pages/select-index.adoc +++ b/modules/guides/pages/select-index.adoc @@ -1,4 +1,4 @@ -= Selecting Indexes += Select Indexes :page-topic-type: guide :imagesdir: ../assets/images :tabs: @@ -7,10 +7,9 @@ :description: How to select an index for a query. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/select.adoc b/modules/guides/pages/select.adoc index 967e66b02..9d0998664 100644 --- a/modules/guides/pages/select.adoc +++ b/modules/guides/pages/select.adoc @@ -1,4 +1,4 @@ -= Selecting Data += Read Data and Return Results :page-topic-type: guide :page-partial: :page-pagination: @@ -7,10 +7,9 @@ :github: Click the icon:github[] View button to see this code in context. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction @@ -111,7 +110,7 @@ For more information and examples, refer to xref:n1ql:n1ql-language-reference/se == Specifying a Data Source To specify the data source for a query, use the FROM clause. -For example, to get data from a collection, specify the path to that collection. +For example, to get data from a collection, specify the path to that collection in a FROM clause. When you specify a FROM clause, you can use the SELECT clause to specify the fields that you want to return from that data source. The set of fields returned by the query is known as the _projection_. @@ -125,6 +124,8 @@ The following query gets the name and city of every airport. include::example$query/from-clause.n1ql[] ---- +There are backticks around the travel-sample dataset because its name contains a hyphen. + .Result [source,json] ---- diff --git a/modules/guides/pages/transactions.adoc b/modules/guides/pages/transactions.adoc index cb6257e82..5b6bd36b3 100644 --- a/modules/guides/pages/transactions.adoc +++ b/modules/guides/pages/transactions.adoc @@ -1,15 +1,15 @@ -= Couchbase Transactions += Create Couchbase Transactions with {sqlpp} :page-topic-type: guide +:page-toclevels: 2 :imagesdir: ../assets/images :tabs: :description: How to create Couchbase transactions using {sqlpp}. :github: Click the icon:github[] View button to see this code in context. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction @@ -36,7 +36,7 @@ include::partial$data-warning.adoc[] [[settings]] == Transaction Parameters -:lead: The following settings set the transaction parameters for the examples in the <> section below. +:lead: The following example shows transaction parameters for the examples on this page. You can specify various settings and parameters to control how transactions work. You can access transaction settings and parameters through any of the usual Query tools, such as the Query Workbench or the cbq shell. @@ -48,16 +48,16 @@ Query Workbench:: -- To specify parameters for a Couchbase transaction, use the Query Run-Time Preferences window. -. Click the cog icon icon:cog[] to display the Run-Time Preferences window. +. To display the Run-Time Preferences window, click the cog icon icon:cog[]. . To specify the transaction scan consistency, open the *Scan Consistency* drop-down list and select an option. -. To specify the transaction timeout, enter a value in seconds in the *Transaction Timeout* box. +. To specify the transaction timeout, in the *Transaction Timeout* box, enter a value in seconds. -. To specify any other parameters, click the btn:[+] button in the *Named Parameters* section. +. To specify any other transaction parameters, click the btn:[+] button in the *Named Parameters* section. When the new named parameter appears, enter the name in the *name* box and a value in the *value* box. -. Choose btn:[Save Preferences] to save the preferences and return to the Query Workbench. +. To save the preferences and return to the Query Workbench, click btn:[Save Preferences]. ''' @@ -65,11 +65,9 @@ When the new named parameter appears, enter the name in the *name* box and a val image::transactions-preferences.png['The Run-Time Preferences dialog, with Scan Consistency set to "not_bounded", Transaction Timeout set to "120", and named parameter "durability_level" set to "none"'] -① Set *Scan Consistency* to `not_bounded`. - -② In the *Named Parameters* section, add a named parameter with *name* set to `durability_level` and *value* set to `"none"` (with double quotes). - -③ Set *Transaction Timeout* to `120`. +* The transaction scan consistency is set to `not_bounded`. +* The durability level of all the mutations within the transaction is set to `"none"`. +* The transaction timeout is set to `120`. -- CBQ Shell:: @@ -142,9 +140,7 @@ For further details, refer to xref:n1ql:n1ql-language-reference/transactions.ado [[multiple-statement]] == Multiple Statement Transactions -:co-txid: After beginning the transaction, each subsequent statement in the transaction must specify the transaction ID that was generated when the transaction began. -:result: When the transaction is committed, the document is added with the attributes that were present after rolling back to the second savepoint. -:lead: The following example demonstrates a complete transaction using {sqlpp}. \ +:lead: For a worked example showing a complete transaction using {sqlpp}, see xref:n1ql:n1ql-language-reference/transactions.adoc#worked-example[Transaction Worked Example]. \ Individual {sqlpp} transaction statements are described in the sections below. A Couchbase transaction may contain multiple DML statements. @@ -173,36 +169,6 @@ Each statement must be terminated with a semicolon. ''' {lead} - -.Preparation -First, specify the transaction settings, as shown in the section <> above. - -Second, use the *context* controls at the top right of the Query Editor to select the `tenant_agent_00` scope in the travel sample data. - -image::transactions-context.png["The query context drop-down menu, with the tenant_agent_00 scope selected"] - -Third, create a primary index on the `bookings` collection so that you can query this keyspace. - -[source,sqlpp] ----- -include::n1ql:example$transactions/multiple.n1ql[tag=index] ----- - -.Transaction -Now copy the entire sequence below and paste it into the Query Workbench. - -[source,sqlpp] ----- -include::n1ql:example$transactions/multiple.n1ql[tags=transaction;!begin-mark;!set-mark;!savepoint-mark;!rollback-mark;!commit-mark] ----- - -.Result -[source,json,indent=0] ----- -include::n1ql:example$transactions/results.jsonc[tag=check-3] ----- - -<.> {result} -- CBQ Shell:: @@ -217,44 +183,9 @@ NOTE: You must be using cbq shell version 2.0 or above to use the automatic tran ''' {lead} - -.Preparation -First, specify the transaction settings, as shown in the section <> above. - -Second, set the query context to the `tenant_agent_00` scope in the travel sample data. - -[source,sqlpp] ----- -include::n1ql:example$transactions/multiple.n1ql[tag=context] ----- - -Third, create a primary index on the `bookings` collection so that you can query this keyspace. - -[source,sqlpp] ----- -include::n1ql:example$transactions/multiple.n1ql[tag=index] ----- - -.Transaction -Now copy the entire sequence below and paste it into the cbq shell. - -[source,sqlpp] ----- -include::n1ql:example$transactions/multiple.n1ql[tags=transaction;!begin-mark;!set-mark;!savepoint-mark;!rollback-mark;!commit-mark] ----- - -.Result -[source,json,indent=0] ----- -include::n1ql:example$transactions/results.jsonc[tag=check-3] ----- - -<.> {result} -- ==== -For further details, refer to xref:n1ql:n1ql-language-reference/transactions.adoc#query-tools[Query Tools]. - [[begin]] === Begin a Transaction diff --git a/modules/guides/pages/update.adoc b/modules/guides/pages/update.adoc index b34e3afb1..5074127b1 100644 --- a/modules/guides/pages/update.adoc +++ b/modules/guides/pages/update.adoc @@ -1,4 +1,4 @@ -= Modifying Data with {sqlpp} += Modify Data with a Query :page-topic-type: guide :imagesdir: ../assets/images :tabs: @@ -7,10 +7,9 @@ :description: How to modify documents using {sqlpp}. [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/pages/updating-data.adoc b/modules/guides/pages/updating-data.adoc index cb966e334..07ef0c164 100644 --- a/modules/guides/pages/updating-data.adoc +++ b/modules/guides/pages/updating-data.adoc @@ -1,5 +1,5 @@ -= Updating Data -:description: How to update documents in Couchbase. += Update Documents +:description: How to update documents with a command line tool or an SDK. :page-pagination: full :page-topic-type: guide :tabs: @@ -8,10 +8,9 @@ include::partial$example-attributes.adoc[] [abstract] --- -{description} + -include::partial$other-guide.adoc[] --- +{description} + +include::ROOT:partial$component-signpost.adoc[] == Introduction diff --git a/modules/guides/partials/clients.adoc b/modules/guides/partials/clients.adoc index e8f22f4d9..46b0ab936 100644 --- a/modules/guides/partials/clients.adoc +++ b/modules/guides/partials/clients.adoc @@ -32,10 +32,5 @@ Read the following for further information about the clients available: // tag::refs-ui[] It is also possible to access document data via the Couchbase Server UI. - -.Document Data Access -image::documents-kv-operations.png["The Documents UI can be used to perform crud operations"] - -For further details, refer to xref:getting-started:look-at-the-results.adoc#examine-your-bucket-and-its-documents[Examine Your Bucket and Its Documents]. // end::refs-ui[] // end::body[] diff --git a/modules/guides/partials/index-context.adoc b/modules/guides/partials/index-context.adoc index a6a96613f..4ecb2c296 100644 --- a/modules/guides/partials/index-context.adoc +++ b/modules/guides/partials/index-context.adoc @@ -1,2 +1,2 @@ NOTE: The SDK calls only enable you to {work-with} indexes in the default collection and default scope within a bucket. -A N1QL statement enables you to {work-with} indexes in _any_ collection and scope within a bucket. \ No newline at end of file +A {sqlpp} statement enables you to {work-with} indexes in _any_ collection and scope within a bucket. \ No newline at end of file diff --git a/modules/guides/partials/nav.adoc b/modules/guides/partials/nav.adoc index d7cae5721..71682aaed 100644 --- a/modules/guides/partials/nav.adoc +++ b/modules/guides/partials/nav.adoc @@ -1,33 +1,13 @@ -* xref:guides:intro.adoc[Developer Guides] - ** xref:guides:connect.adoc[] +// Combined nav for Connect and Data +* xref:guides:connect.adoc[] +* xref:guides:data.adoc[] ** xref:guides:kv-operations.adoc[] + *** xref:manage:manage-documents/manage-documents.adoc[] *** xref:guides:creating-data.adoc[] *** xref:guides:reading-data.adoc[] *** xref:guides:updating-data.adoc[] *** xref:guides:deleting-data.adoc[] *** xref:guides:bulk-operations.adoc[] - ** xref:guides:query.adoc[] - *** xref:guides:select.adoc[] - *** xref:guides:join.adoc[] - *** xref:guides:nest-unnest.adoc[] - *** xref:guides:group-agg.adoc[] - ** xref:guides:indexes.adoc[] - *** xref:guides:create-index.adoc[] - *** xref:guides:place-index.adoc[] - *** xref:guides:defer-index.adoc[] - *** xref:guides:select-index.adoc[] - *** xref:guides:drop-index.adoc[] - ** xref:guides:manipulate.adoc[] - *** xref:guides:insert.adoc[] - *** xref:guides:update.adoc[] - *** xref:guides:delete.adoc[] - ** xref:guides:optimize.adoc[] - *** xref:guides:prep-statements.adoc[] - *** xref:guides:index-advisor.adoc[] - *** xref:guides:cbo.adoc[] - ** xref:guides:transactions.adoc[] - ** xref:guides:import.adoc[] - ** xref:guides:javascript-udfs.adoc[] - *** xref:guides:create-javascript-library.adoc[] - *** xref:guides:create-user-defined-function.adoc[] - *** xref:guides:call-user-defined-function.adoc[] + ** xref:guides:load.adoc[] + *** xref:manage:import-documents/import-documents.adoc[] + *** xref:guides:import.adoc[] diff --git a/modules/guides/partials/other-guide.adoc b/modules/guides/partials/other-guide.adoc deleted file mode 100644 index e820a8afb..000000000 --- a/modules/guides/partials/other-guide.adoc +++ /dev/null @@ -1,8 +0,0 @@ -This -ifdef::page-topic-type[{page-topic-type}] -ifndef::page-topic-type[page] -is for Couchbase Server. -ifdef::flag-devex-escape-hatch[] -// soft-set flag-devex-escape-hatch so authors can override the escape hatch for individual pages -For Couchbase Capella, see xref:cloud:guides:{docname}.adoc[]. -endif::flag-devex-escape-hatch[] \ No newline at end of file diff --git a/modules/javascript-udfs/partials/nav.adoc b/modules/javascript-udfs/partials/nav.adoc index 4d50ee88c..ab76cabfc 100644 --- a/modules/javascript-udfs/partials/nav.adoc +++ b/modules/javascript-udfs/partials/nav.adoc @@ -1,4 +1,8 @@ -*** xref:javascript-udfs:javascript-functions-with-couchbase.adoc[] - **** xref:javascript-udfs:calling-javascript-from-n1ql.adoc[] - **** xref:javascript-udfs:calling-n1ql-from-javascript.adoc[] - **** xref:javascript-udfs:handling-errors-javascript-udf.adoc[] +* xref:javascript-udfs:javascript-functions-with-couchbase.adoc[] + ** xref:javascript-udfs:calling-javascript-from-n1ql.adoc[] + ** xref:javascript-udfs:calling-n1ql-from-javascript.adoc[] + ** xref:javascript-udfs:handling-errors-javascript-udf.adoc[] +* xref:guides:javascript-udfs.adoc[] + ** xref:guides:create-javascript-library.adoc[] + ** xref:guides:create-user-defined-function.adoc[] + ** xref:guides:call-user-defined-function.adoc[] diff --git a/modules/learn/pages/services-and-indexes/indexes/global-secondary-indexes.adoc b/modules/learn/pages/services-and-indexes/indexes/global-secondary-indexes.adoc index 0c1d381ad..affab2f29 100644 --- a/modules/learn/pages/services-and-indexes/indexes/global-secondary-indexes.adoc +++ b/modules/learn/pages/services-and-indexes/indexes/global-secondary-indexes.adoc @@ -1,4 +1,4 @@ -= Using Indexes += 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-role: tiles -toc :!sectids: @@ -20,29 +20,20 @@ endif::[] [abstract] {description} -Global Secondary Indexes provide the following: - -* _Advanced Scaling_: GSIs can be assigned independently to selected nodes, without existing workloads being affected. -* _Predictable Performance_: Key-based operations maintain predictable low-latency, even in the presence of a large number of indexes. -Index-maintenance is non-competitive with key-based operations, even when data-mutation workloads are heavy. -* _Low Latency Querying_: GSIs independently partition into the Index Service nodes: they do not have to follow hash partitioning of data into vBuckets. -Queries using GSIs can achieve low latency response times even when the cluster scales out; since GSIs do not require a wide fan-out to all Data Service nodes. -* _Independent Partitioning_: The Index Service provides partition independence: data and its indexes can have different partition keys. -Each index can have its own partition key, so each can be partitioned independently to match the specific query. -As new requirements arise, the application will also be able to create a new index with a new partition key, without affecting performance of existing queries. - == Tuning and Query Performance -* xref:learn:services-and-indexes/indexes/index-lifecycle.adoc[Index Lifecycle] -* xref:learn:services-and-indexes/indexes/indexing-and-query-perf.adoc[Indexing and Query Performance] -* xref:n1ql:n1ql-language-reference/covering-indexes.adoc[Covering Indexes] -* xref:learn:services-and-indexes/indexes/index-scans.adoc[Understanding Index Scans] -* 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, Order and Pagination] +* 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[] == Index Commands +* xref:n1ql:n1ql-language-reference/advise.adoc[ADVISE] * xref:n1ql:n1ql-language-reference/createindex.adoc[CREATE INDEX] * xref:n1ql:n1ql-language-reference/createprimaryindex.adoc[CREATE PRIMARY INDEX] * xref:n1ql:n1ql-language-reference/build-index.adoc[BUILD INDEX] @@ -52,8 +43,8 @@ As new requirements arise, the application will also be able to create a new ind == Storage and Availability -* xref:learn:services-and-indexes/indexes/index-replication.adoc[Index Availability] -* xref:learn:services-and-indexes/indexes/storage-modes.adoc[Storage Settings] +* xref:learn:services-and-indexes/indexes/index-replication.adoc[] +* xref:learn:services-and-indexes/indexes/storage-modes.adoc[] == Related Links diff --git a/modules/learn/pages/services-and-indexes/indexes/index-lifecycle.adoc b/modules/learn/pages/services-and-indexes/indexes/index-lifecycle.adoc index d0de6b8e7..a794bb84a 100644 --- a/modules/learn/pages/services-and-indexes/indexes/index-lifecycle.adoc +++ b/modules/learn/pages/services-and-indexes/indexes/index-lifecycle.adoc @@ -27,7 +27,11 @@ image::services-and-indexes/indexes/index-lifecycle-build.png[align=center] . The projector evaluates each document and extracts the indexed field(s). . The indexed fields are forwarded to the indexer. -Refer to xref:n1ql:n1ql-intro/queriesandresults.adoc#index-building[Index Building] for further details. +Creating and building indexes can take a long time on keyspaces with lots of existing documents. +When you create an index, you can choose to _defer_ the build phase, and then build the deferred index later. +This allows multiple indexes to be built at once rather than having to re-scan the entire keyspace for each index. + +For more information and examples, refer to xref:n1ql:n1ql-language-reference/createprimaryindex.adoc[CREATE PRIMARY INDEX], xref:n1ql:n1ql-language-reference/createindex.adoc[CREATE INDEX], and xref:n1ql:n1ql-language-reference/build-index.adoc[BUILD INDEX]. == Index Updates diff --git a/modules/learn/pages/services-and-indexes/indexes/index-replication.adoc b/modules/learn/pages/services-and-indexes/indexes/index-replication.adoc index 156396675..5f18402fe 100644 --- a/modules/learn/pages/services-and-indexes/indexes/index-replication.adoc +++ b/modules/learn/pages/services-and-indexes/indexes/index-replication.adoc @@ -1,4 +1,5 @@ -= Availability and Performance += Index Availability and Performance +:navtitle: Availability and Performance :description: The Index Service ensures availability and performance through replication and partitioning. :page-topic-type: concept :page-partial: @@ -112,7 +113,17 @@ For detailed information, refer to {index-partitioning}[Index Partitioning]. (((consistency))) (((consistent))) -Whereas Couchbase Server handles data-mutations with _full consistency_ — all mutations to a given key are applied to the same vBucket, and become immediately available — it maintains indexes with degrees of _eventual consistency_, determined by means of the following query consistency-options, specified per query: +Whereas Couchbase Server handles data-mutations with _full consistency_ — all mutations to a given key are applied to the same vBucket, and become immediately available — it maintains indexes with degrees of _eventual consistency_. +This means that indexes may at times not contain the most up-to-date information, especially when deployed in a write-heavy environment: changes may take some time to propagate over to the index nodes. + +The asynchronous updating nature of global secondary indexes means that they can be very quick to query and do not require the additional overhead of index recalculations at the time documents are modified. +{sqlpp} queries are forwarded to the relevant indexes and the queries are done based on indexed information, rather than the documents as they exist in the data service. + +With default query options, the query service will rely on the current index state: the most up-to-date document versions are not retrieved, and only the indexed versions are queried. +This provides the best performance. +Only updates occurring with a small time frame may not yet have been indexed. + +The query service can use the latest versions of documents by modifying the [.api]`scan_consistency` parameter, specified per query: // tag::scan_consistency[] * `not_bounded`: Executes the query immediately, without requiring any consistency for the query. @@ -124,6 +135,7 @@ If index-maintenance is running behind, the query waits for it to catch up. For {sqlpp}, the default consistency is `not_bounded`. // end::scan_consistency[] +When using the `request_plus` consistency mode, the query service will ensure that the indexes are synchronized with the data service before querying. You can specify the scan consistency via the {query-preferences}[run-time preferences] in the Query Workbench, or by setting the {scan_consistency}[scan_consistency] request-level parameter. diff --git a/modules/learn/pages/services-and-indexes/indexes/index-scans.adoc b/modules/learn/pages/services-and-indexes/indexes/index-scans.adoc index 07f10130d..f2e24dd26 100644 --- a/modules/learn/pages/services-and-indexes/indexes/index-scans.adoc +++ b/modules/learn/pages/services-and-indexes/indexes/index-scans.adoc @@ -1,4 +1,4 @@ -= Scans += 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 diff --git a/modules/learn/pages/services-and-indexes/indexes/index_pushdowns.adoc b/modules/learn/pages/services-and-indexes/indexes/index_pushdowns.adoc index 4f602af33..d33ca4356 100644 --- a/modules/learn/pages/services-and-indexes/indexes/index_pushdowns.adoc +++ b/modules/learn/pages/services-and-indexes/indexes/index_pushdowns.adoc @@ -1,4 +1,4 @@ -= Pushdowns += Index Pushdowns :description: Index Pushdowns are performance optimizations where the Query engine pushes more of the work down to the Indexer. :imagesdir: ../../../assets/images :page-topic-type: concept diff --git a/modules/learn/pages/services-and-indexes/indexes/indexing-and-query-perf.adoc b/modules/learn/pages/services-and-indexes/indexes/indexing-and-query-perf.adoc index 65102b7b1..dbfa107e6 100644 --- a/modules/learn/pages/services-and-indexes/indexes/indexing-and-query-perf.adoc +++ b/modules/learn/pages/services-and-indexes/indexes/indexing-and-query-perf.adoc @@ -1,4 +1,5 @@ -= Indexing and Query Performance += Types of Primary and Secondary Index +: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 diff --git a/modules/learn/pages/services-and-indexes/indexes/storage-modes.adoc b/modules/learn/pages/services-and-indexes/indexes/storage-modes.adoc index f473e74d4..bca743148 100644 --- a/modules/learn/pages/services-and-indexes/indexes/storage-modes.adoc +++ b/modules/learn/pages/services-and-indexes/indexes/storage-modes.adoc @@ -1,4 +1,5 @@ -= Storage Settings += Index Storage Settings +: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 diff --git a/modules/n1ql/assets/images/icon-query.svg b/modules/n1ql/assets/images/icon-query.svg new file mode 100644 index 000000000..fc5383986 --- /dev/null +++ b/modules/n1ql/assets/images/icon-query.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/n1ql/pages/tutorial.adoc b/modules/n1ql/pages/.tutorial.adoc similarity index 100% rename from modules/n1ql/pages/tutorial.adoc rename to modules/n1ql/pages/.tutorial.adoc diff --git a/modules/n1ql/pages/admin.adoc b/modules/n1ql/pages/admin.adoc new file mode 100644 index 000000000..dc6119a83 --- /dev/null +++ b/modules/n1ql/pages/admin.adoc @@ -0,0 +1,58 @@ += Administer Queries and Indexes +:page-role: tiles -toc +:page-aliases: tools:tools-ref.adoc +:!sectids: + +// Pass through HTML styles for this page. + +ifdef::basebackend-html[] +++++ + +++++ +endif::[] + +include::ROOT:partial$component-signpost.adoc[] + +== Get System Information + +{sqlpp} has a system namespace that stores metadata about data containers. +You can query the system namespace to get information about the data containers. + +* xref:n1ql:n1ql-intro/sysinfo.adoc[] + +== Manage Primary and Secondary Indexes + +You can monitor and manage primary and secondary indexes using the Couchbase Web Console, the command line interface, or the REST API. + +* xref:manage:monitor/monitoring-indexes.adoc[] +* xref:manage:manage-indexes/manage-indexes.adoc[] + +== Manage Queries + +You can monitor and manage queries using the Couchbase Web Console, the command line interface, or the REST API. + +* xref:tools:query-monitoring.adoc[] +* xref:manage:monitor/monitoring-n1ql-query.adoc[] + +== Settings and Parameters + +You can configure the Query service using cluster-level query settings, node-level query settings, and request-level query parameters. + +* xref:settings:query-settings.adoc[] + +== {sqlpp} Auditing + +{sqlpp}-related activities can be audited by Couchbase Server. + +* xref:n1ql:n1ql-language-reference/n1ql-auditing.adoc[] + +== Backfill Support for {sqlpp} + +You can configure the temporary working space for the {sqlpp} engine and its embedded GSI client via the UI. + +* xref:n1ql:n1ql-language-reference/backfill.adoc[] diff --git a/modules/n1ql/pages/advanced.adoc b/modules/n1ql/pages/advanced.adoc index bbddcbae3..8ceae0f26 100644 --- a/modules/n1ql/pages/advanced.adoc +++ b/modules/n1ql/pages/advanced.adoc @@ -1,5 +1,6 @@ -= Advanced Features += Advanced Query Features :page-role: tiles -toc +:page-aliases: guides:optimize.adoc :!sectids: // Pass through HTML styles for this page. @@ -15,23 +16,27 @@ ifdef::basebackend-html[] ++++ endif::[] -== Flex Indexes - -Flex Indexes provide the ability for a {sqlpp} query to use a Full Text Search index transparently with standard {sqlpp} syntax. - -* xref:n1ql:n1ql-language-reference/flex-indexes.adoc[] +include::ROOT:partial$component-signpost.adoc[] == Cost-Based Optimizer The cost-based optimizer takes into account the cost of memory, CPU, network transport, and disk usage when choosing the optimal plan to execute a query. * xref:n1ql:n1ql-language-reference/cost-based-optimizer.adoc[] +* xref:guides:cbo.adoc[] == {sqlpp} Support for Couchbase Transactions {sqlpp} offers full support for Couchbase ACID transactions. * xref:n1ql:n1ql-language-reference/transactions.adoc[] +* xref:guides:transactions.adoc[] + +== Flex Indexes + +Flex Indexes enable a {sqlpp} query to use a Search index transparently with standard {sqlpp} syntax. + +* xref:n1ql:n1ql-language-reference/flex-indexes.adoc[] == Time Series Data diff --git a/modules/n1ql/pages/n1ql-intro/index.adoc b/modules/n1ql/pages/n1ql-intro/index.adoc index 76fdb7706..d9ba30898 100644 --- a/modules/n1ql/pages/n1ql-intro/index.adoc +++ b/modules/n1ql/pages/n1ql-intro/index.adoc @@ -1,5 +1,6 @@ -= Running Queries += Understand Queries :page-role: tiles -toc +:page-aliases: n1ql:tutorial.adoc :!sectids: // Pass through HTML styles for this page. @@ -15,28 +16,34 @@ ifdef::basebackend-html[] ++++ endif::[] -== Queries and Results +include::ROOT:partial$component-signpost.adoc[] + +== Query Concepts An overview of common concepts that you will need to understand in order to use the Query service. * xref:n1ql:n1ql-intro/queriesandresults.adoc[] -== Getting System Information +== Query Tools -{sqlpp} has a system catalog that stores metadata about a database. -The system catalog is a namespace called system. +The Query service provides the following tools for running queries: -* xref:n1ql:n1ql-intro/sysinfo.adoc[] +* xref:server:tools:cbq-shell.adoc[] +* xref:tools:query-workbench.adoc[] -== {sqlpp} Error Codes +== Related Links -All of the {sqlpp} error codes, their error messages, and some tips to resolve them. +The interactive {sqlpp} tutorial provides web modules where you can learn about {sqlpp} without having to configure Couchbase Capella or have Couchbase Server installed in your own environment. +The modules are self-contained and let you modify and run sample queries. -* xref:n1ql:n1ql-language-reference/n1ql-error-codes.adoc[] +* https://query-tutorial.couchbase.com/tutorial/#1[{sqlpp} Query Language Tutorial^] -== Related Links +ifdef::flag-devex-cheatsheet[] -The Query services provides the following tools for running queries: +== {sqlpp} Cheat Sheet -* xref:tools:cbq-shell.adoc[] -* xref:tools:query-workbench.adoc[] +The {sqlpp} cheat sheet provides a concise summary of the basic syntax elements of {sqlpp}. + +* http://docs.couchbase.com/files/Couchbase-N1QL-CheatSheet.pdf[{sqlpp} Cheat Sheet^] + +endif::flag-devex-cheatsheet[] diff --git a/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc b/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc index 49769c7ae..22f38794c 100644 --- a/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc +++ b/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc @@ -1,30 +1,39 @@ -= {sqlpp} Queries and Results += Query Concepts :description: An overview of common concepts that you will need to understand in order to use the Query service. :page-topic-type: concept -:keywords: n1ql, sqlpp, query, result, parameter, prepared, prepared statement, consistent, consistency +:keywords: n1ql, sqlpp, query, result, parameter, prepared, prepared statement, index [abstract] {description} -== Queries +include::ROOT:partial$component-signpost.adoc[] -A {sqlpp} query is a string parsed by the query service. +== {sqlpp} Queries + +A {sqlpp} query is a string parsed by the Query service. The {sqlpp} query language is based on SQL, but designed for structured and flexible JSON documents. -As with SQL, you can have nested sub-queries. -{sqlpp} queries run on JSON documents, and you can query over multiple documents by using the `JOIN` clause. +* As with SQL, a {sqlpp} query can have nested sub-queries. + +* {sqlpp} queries run on JSON documents, and you can query over multiple documents by using the `JOIN` clause. -Because data in {sqlpp} can be nested, there are operators and functions that let you navigate through nested arrays. -Because data can be irregular, you can specify conditions in the `WHERE` clause to retrieve data. +* Data in JSON documents can be nested. +There are operators and functions that let you navigate through nested arrays. -You can use standard `GROUP BY`, `ORDER BY`, `LIMIT`, and `OFFSET` clauses as well as a rich set of functions to transform the results as needed. +* Data in JSON documents can be irregular. +You can specify conditions in the `WHERE` clause to retrieve data. + +* You can transform the results using standard `GROUP BY`, `ORDER BY`, `LIMIT`, and `OFFSET` clauses as well as a rich set of functions. == Results The result for each query is a set of JSON documents. -The returned document set is not required to be uniform, though it can be. -A `SELECT` statement that specifies a fixed set of attribute (column) names results in a uniform set of documents and a `SELECT` statement that specifies the wild card (*) results in a non-uniform result set. -The only guarantee is that every returned document meets the query criteria. +The returned document set may be uniform or non-uniform. + +* A `SELECT` statement that specifies a fixed set of attribute (column) names results in a uniform set of documents. +* A `SELECT` statement that specifies the wild card (*) results in a non-uniform result set. + +Every returned document meets the query criteria. Here's a sample query and the result returned: @@ -66,13 +75,16 @@ SELECT name, brewery_id from `beer-sample` WHERE brewery_id IS NOT MISSING LIMIT [#keyspace-reference] == Keyspace References -Couchbase stores data within a logical hierarchy of buckets, scopes, and collections. +Couchbase stores data within a xref:learn:data/scopes-and-collections.adoc[logical hierarchy] of buckets, scopes, and collections. This enables separation between documents of different types. For most queries, you must provide one or more keyspace references to specify the data sources for the query. -A keyspace reference may be a _full_ keyspace reference: a path comprising the bucket, the scope, and the collection which contains the documents you want. +A keyspace reference may be: + +* A _full_ keyspace reference: a path comprising the bucket, the scope, and the collection which contains the documents you want. + +* A _partial_ keyspace reference, comprising the collection name only. -Alternatively, the keyspace reference may be a _partial_ keyspace reference, comprising the collection name only. When a query contains partial keyspace references, you must set the <> to specify a bucket and scope before running a query. Partial keyspace references are resolved using the bucket and scope supplied by the query context. @@ -120,8 +132,8 @@ See xref:n1ql-language-reference/index.adoc#nested-path-expressions[Nested Path [#named-placeholders] == Parameterized Queries -{sqlpp} allows the use of placeholders to declare dynamic query parameters. -When the query is constructed, it may receive arguments, with each argument being used as the placeholder value in the query. +Use placeholders to declare dynamic query parameters in {sqlpp}. +When you run the query, you can pass arguments to it, with each argument being used as the placeholder value in the query. Placeholders in the query may be numbered positional placeholders, unnumbered positional placeholders, or named placeholders. @@ -134,7 +146,7 @@ The first occurrence of `?` refers to the first argument, the second occurrence * Named placeholders take the form of `$name` or `@name`. This is particularly useful when there are many query parameters, and ensuring that they are all in the correct order may be cumbersome. -You can set query parameter values when you run the query, using the cbq query shell, the Query Workbench, or the {sqlpp} REST API. +To set query parameter values when you run the query, use the cbq query shell, the Query tab, or the {sqlpp} REST API. For more information and examples, refer to xref:settings:query-settings.adoc#section_srh_tlm_n1b[Named Parameters and Positional Parameters]. @@ -145,8 +157,8 @@ When a {sqlpp} query is sent to the server, the server inspects the query and pa Once this is done, it generates a _query plan_. The computation for the plan adds some additional processing time and overhead for the query. -A frequently-used query can be _prepared_ so that its plan is generated only once. -Subsequent queries using the same query will use the pre-generated plan instead, saving on the overhead and processing of the plan each time. +You can _prepare_ a frequently-used query so that its plan is generated only once. +Subsequent queries using the same query string will use the pre-generated plan instead, saving on the overhead and processing of the plan each time. NOTE: Parameterized queries are considered the same query for caching and planning purposes, even if the supplied parameters are different. @@ -171,36 +183,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[Using Indexes]. - -== Index Building - -Index creation happens in two phases: the [def]_creation phase_ and the [def]_build phase_. -During the creation phase, the Index Service validates the user input, decides the host node for the index, and creates the index metadata on the host node. -During the build phase, the Index Service reads the documents from the Data Service and builds the index. -The build phase cannot start until the creation phase is complete. - -Creating and building indexes can take a long time on keyspaces with lots of existing documents. -When you create an index, you can choose to _defer_ the build phase, and then build the deferred index later. -This allows multiple indexes to be built at once rather than having to re-scan the entire keyspace for each index. - -For more information and examples, refer to xref:n1ql:n1ql-language-reference/createprimaryindex.adoc[CREATE PRIMARY INDEX], xref:n1ql:n1ql-language-reference/createindex.adoc[CREATE INDEX], and xref:n1ql:n1ql-language-reference/build-index.adoc[BUILD INDEX]. - -== Index Consistency - -(((consistent))) -(((consistency))) -Because indexes are by design outside the data service, they are eventually consistent with respect to changes to documents and, depending on how you issue the query, may at times not contain the most up-to-date information. -This may especially be the case when deployed in a write-heavy environment: changes may take some time to propagate over to the index nodes. - -The asynchronous updating nature of global secondary indexes means that they can be very quick to query and do not require the additional overhead of index recalculations at the time documents are modified. -{sqlpp} queries are forwarded to the relevant indexes and the queries are done based on indexed information, rather than the documents as they exist in the data service. - -With default query options, the query service will rely on the current index state: the most up-to-date document versions are not retrieved, and only the indexed versions are queried. -This provides the best performance. -Only updates occurring with a small time frame may not yet have been indexed. - -The query service can use the latest versions of documents by modifying the [.api]`consistency` of the query. -This is done by setting the [.api]`scan_consistency` parameter to [.api]`REQUEST_PLUS`. -When using this consistency mode, the query service will ensure that the indexes are synchronized with the data service before querying. -For more information, refer to xref:settings:query-settings.adoc#scan_consistency[Query Settings]. +For more information, refer to xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[]. diff --git a/modules/n1ql/pages/n1ql-intro/sysinfo.adoc b/modules/n1ql/pages/n1ql-intro/sysinfo.adoc index 605cc7e1a..a521344c7 100644 --- a/modules/n1ql/pages/n1ql-intro/sysinfo.adoc +++ b/modules/n1ql/pages/n1ql-intro/sysinfo.adoc @@ -1,18 +1,19 @@ = Get System Information :page-topic-type: concept -:description: {sqlpp} has a system catalog that stores metadata about a database. \ -The system catalog is a namespace called system. +:description: {sqlpp} has a system namespace that stores metadata about data containers. \ +You can query the system namespace to get information about the data containers. [abstract] -{sqlpp} has a system catalog that stores metadata about a database. -The system catalog is a namespace called _system_. +{description} -There is a keyspace for each type of artifact. -The keyspace names are plural in order to avoid conflicting with {sqlpp} keywords. +include::ROOT:partial$component-signpost.adoc[] + +There is a catalog for each type of data container. +The catalog names are plural in order to avoid conflicting with {sqlpp} keywords. == Logical Hierarchy -{sqlpp} has the following artifacts: +With the `system` namespace, you can get information about following types of data container: Datastores:: @@ -66,7 +67,7 @@ Types of indexes include b-tree (ForestDB or MOI) and view indexes. Dual:: -The dual keyspace has been added for evaluating constant expressions. +The dual catalog has been added for evaluating constant expressions. It contains a single entry with no attributes. [#querying-datastores] diff --git a/modules/n1ql/pages/n1ql-language-reference/backfill.adoc b/modules/n1ql/pages/n1ql-language-reference/backfill.adoc index 89b2fd6c8..0508059d4 100644 --- a/modules/n1ql/pages/n1ql-language-reference/backfill.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/backfill.adoc @@ -1,10 +1,13 @@ = Backfill Support for {sqlpp} :description: Configure the temporary working space for the {sqlpp} engine and its embedded GSI client. :page-aliases: settings:backfill +:no-escape-hatch: [abstract] {description} +include::ROOT:partial$component-signpost.adoc[] + == Introduction When a query has an extremely large corresponding index scan, the indexer `gsiClient` buffers the results into the `/tmp` directory. @@ -17,7 +20,8 @@ The user must have _Cluster Admin_ privileges in order to be able to specify and == Configuration In the Query Workbench > Settings page, click *Advanced Query Settings* to see: -image:backfill_QueryTempDiskPath_circled.png[] + +image::backfill_QueryTempDiskPath_circled.png["Advanced Query Settings, showing Query Temp Disk Path and Quota"] In the *Query Temp Disk Path* textbox, enter the directory you want to use for your backfill file. @@ -58,7 +62,20 @@ $ curl --GET -u Administrator:password http://localhost:8091/settings/querySetti .Results [source,json] ---- -{"queryTmpSpaceDir":"/opt/couchbase/tmp","queryTmpSpaceSize":5120,"queryCurlWhitelist":{"all_access":false,"allowed_urls":["http://localhost:8091/settings/querySettings",""],"disallowed_urls":[""]}} +{ + "queryTmpSpaceDir": "/opt/couchbase/tmp", + "queryTmpSpaceSize": 5120, + "queryCurlWhitelist": { + "all_access": false, + "allowed_urls": [ + "http://localhost:8091/settings/querySettings", + "" + ], + "disallowed_urls": [ + "" + ] + } +} ---- ==== @@ -67,13 +84,27 @@ $ curl --GET -u Administrator:password http://localhost:8091/settings/querySetti ==== [source,console] ---- -$ curl -X POST -u Administrator:password -d 'queryTmpSpaceDir=/opt/couchbase/tmp2' http://localhost:8091/settings/querySettings +$ curl -X POST -u Administrator:password -d 'queryTmpSpaceDir=/opt/couchbase/tmp2' \ +http://localhost:8091/settings/querySettings ---- .Results [source,json] ---- -{"queryTmpSpaceDir":"/opt/couchbase/tmp2","queryTmpSpaceSize":5120,"queryCurlWhitelist":{"all_access":false,"allowed_urls":["http://localhost:8091/settings/querySettings",""],"disallowed_urls":[""]}} +{ + "queryTmpSpaceDir": "/opt/couchbase/tmp2", + "queryTmpSpaceSize": 5120, + "queryCurlWhitelist": { + "all_access": false, + "allowed_urls": [ + "http://localhost:8091/settings/querySettings", + "" + ], + "disallowed_urls": [ + "" + ] + } +} ---- ==== @@ -82,13 +113,27 @@ $ curl -X POST -u Administrator:password -d 'queryTmpSpaceDir=/opt/couchbase/tmp ==== [source,console] ---- -$ curl -X POST -u Administrator:password -d 'queryTmpSpaceDir=/opt/couchbase/tmp' -d 'queryTmpSpaceSize=2048' http://localhost:8091/settings/querySettings +$ curl -X POST -u Administrator:password -d 'queryTmpSpaceDir=/opt/couchbase/tmp' \ +-d 'queryTmpSpaceSize=2048' http://localhost:8091/settings/querySettings ---- .Results [source,json] ---- -{"queryTmpSpaceDir":"/opt/couchbase/tmp","queryTmpSpaceSize":2048,"queryCurlWhitelist":{"all_access":false,"allowed_urls":["http://localhost:8091/settings/querySettings",""],"disallowed_urls":[""]}} +{ + "queryTmpSpaceDir": "/opt/couchbase/tmp", + "queryTmpSpaceSize": 2048, + "queryCurlWhitelist": { + "all_access": false, + "allowed_urls": [ + "http://localhost:8091/settings/querySettings", + "" + ], + "disallowed_urls": [ + "" + ] + } +} ---- At the same time, the logs will contain messages for every change coming from both query and GSI, so after executing Example 3's CURL statement: diff --git a/modules/n1ql/pages/n1ql-language-reference/cost-based-optimizer.adoc b/modules/n1ql/pages/n1ql-language-reference/cost-based-optimizer.adoc index 03974075f..ff24ede7f 100644 --- a/modules/n1ql/pages/n1ql-language-reference/cost-based-optimizer.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/cost-based-optimizer.adoc @@ -1,4 +1,4 @@ -= Cost-Based Optimizer += Understand the Cost-Based Optimizer for Queries :page-topic-type: concept :page-edition: Enterprise Edition :imagesdir: ../../assets/images @@ -33,6 +33,8 @@ [abstract] {description} +include::ROOT:partial$component-signpost.adoc[] + [[overview]] == Overview diff --git a/modules/n1ql/pages/n1ql-language-reference/execute.adoc b/modules/n1ql/pages/n1ql-language-reference/execute.adoc index c5f1b106e..b641626f4 100644 --- a/modules/n1ql/pages/n1ql-language-reference/execute.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/execute.adoc @@ -277,4 +277,4 @@ curl -v http://localhost:8093/query/service -d 'prepared="fave_tweets"&$r=9.5' * For information on using prepared statements with the Query REST API (`/query/service` endpoint), refer to xref:n1ql:n1ql-rest-api/index.adoc[]. -* For information on using prepared statements with an SDK, refer to xref:java-sdk:concept-docs:n1ql-query.adoc#prepared-statements-for-query-optimization[Querying with N1QL] and xref:java-sdk:howtos:n1ql-queries-with-sdk.adoc#parameterized-queries[N1QL from the SDK]. +* For information on using prepared statements with an SDK, refer to xref:java-sdk:concept-docs:n1ql-query.adoc#prepared-statements-for-query-optimization[Prepared Statements for Query Optimization] and xref:java-sdk:howtos:n1ql-queries-with-sdk.adoc#parameterized-queries[Parameterized Queries]. diff --git a/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc b/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc index 31ff13761..3f41e9c57 100644 --- a/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc @@ -1,8 +1,10 @@ -= Flex Indexes += Use Search Indexes with a Query :description: The Flex Index feature enables you run a {sqlpp} query as a full-text search query, using a full-text index. :page-topic-type: concept :page-edition: Enterprise Edition :imagesdir: ../../assets/images +:keywords: flex +:no-escape-hatch: // Cross-references :searchfun: xref:n1ql-language-reference/searchfun.adoc @@ -23,11 +25,13 @@ {description} This means that you can write queries in {sqlpp} to leverage the Search service's keyword search capabilities. +include::ROOT:partial$component-signpost.adoc[] + In Couchbase Server, a global secondary index (GSI) uses a B-tree structure for fast exact search, whereas full-text search (FTS) uses an inverted index to provide efficient term search. -In Couchbase Server 6.5 and later, it is possible to perform a full-text search within a {sqlpp} query using {searchfun}[search functions]. +It is possible to perform a full-text search within a {sqlpp} query using {searchfun}[search functions]. However this requires you to write the full-text search using the FTS syntax. -Starting with Couchbase Server 6.6, the _Flex Index_ feature provides the ability for a {sqlpp} query to leverage either a global secondary index or full-text index transparently with standard {sqlpp} syntax, simplifying the application development process. +The _Flex Index_ feature provides the ability for a {sqlpp} query to leverage either a global secondary index or full-text index transparently with standard {sqlpp} syntax, simplifying the application development process. The full-text index must be defined in a certain way to be usable by a {sqlpp} query; similarly, the {sqlpp} query must have certain characteristics to be able to use the full-text index. If these requirements are met, the query is transformed into an FTS query, and run against the full-text index. diff --git a/modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc b/modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc index 98b435d0b..db9f3035a 100644 --- a/modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc @@ -1,4 +1,4 @@ -= Grouping and Aggregate Pushdown += 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 diff --git a/modules/n1ql/pages/n1ql-language-reference/index.adoc b/modules/n1ql/pages/n1ql-language-reference/index.adoc index b2e2882fc..eb3df684f 100644 --- a/modules/n1ql/pages/n1ql-language-reference/index.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/index.adoc @@ -1,6 +1,6 @@ -= {sqlpp} Language Reference -:description: This reference guide describes the syntax and structure of the {sqlpp} language. -:page-topic-type: concept += {sqlpp} for Query Reference +:description: This reference guide describes the syntax and structure of {sqlpp} for Query. +:page-topic-type: reference :page-toclevels: 2 :imagesdir: ../../assets/images @@ -48,6 +48,7 @@ The following are the different types of {sqlpp} expressions: * xref:n1ql-language-reference/collectionops.adoc[Collection expressions] * xref:n1ql-language-reference/constructionops.adoc[Construction expressions] * <> +* xref:n1ql-language-reference/sequenceops.adoc[Sequence expressions] * xref:n1ql-language-reference/functions.adoc[Function calls] * xref:n1ql-language-reference/subqueries.adoc[Subqueries] diff --git a/modules/n1ql/pages/n1ql-language-reference/n1ql-auditing.adoc b/modules/n1ql/pages/n1ql-language-reference/n1ql-auditing.adoc index 9b428d724..75a4bfe17 100644 --- a/modules/n1ql/pages/n1ql-language-reference/n1ql-auditing.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/n1ql-auditing.adoc @@ -1,10 +1,13 @@ = {sqlpp} Auditing :description: {sqlpp}-related activities can be audited, by Couchbase Server. :page-topic-type: reference +:no-escape-hatch: [abstract] {description} +include::ROOT:partial$component-signpost.adoc[] + == Understanding {sqlpp} Auditing This section provides specific information on Couchbase Server auditing as it relates to {sqlpp}. @@ -187,111 +190,99 @@ Required auditing fields for API requests: To reduce disk usage and improve performance, the log files are as compact as possible. -When viewed through Query Workbench, the logs are formatted and indented for easier reading. - -*Example 1:* Execute `SELECT * FROM orders` via a CURL statement. - ----- -{"timestamp":"2018-02-09T14:52:35.163-08:00","real_userid":{"source":"local","user":"Administrator"},"requestId":"aee53bf0-d009-4015-8a1d-efec74f2cd74","statement":"SELECT * FROM orders","isAdHoc":true,"userAgent":"curl/7.43.0","node":"local_node","status":"success","metrics":{"elapsedTime":"7.599684ms","executionTime":"7.507755ms","resultCount":0,"resultSize":0},"id":28672,"name":"SELECT statement","description":"A N1QL SELECT statement was executed”} ----- - -To make the log entry easier-to-read: +To make the log entry easier-to-read, use a formatting utility such as https://stedolan.github.io/jq/[jq^], or reformat the log entry through the Query Workbench: . Copy the log entry to the clipboard . Open Query Workbench . Type `SELECT` . Paste the query from the clipboard -. Click the *Execute* button +. Click the btn:[Execute] button ----- -[ - { - "$1": { - "description": "A N1QL SELECT statement was executed", - "id": 28672, - "isAdHoc": true, - "metrics": { - "elapsedTime": "7.599684ms", - "executionTime": "7.507755ms", - "resultCount": 0, - "resultSize": 0 - }, - "name": "SELECT statement", - "node": "local_node", - "real_userid": { - "source": "local", - "user": "Administrator" - }, - "requestId": "aee53bf0-d009-4015-8a1d-efec74f2cd74", - "statement": "SELECT * FROM orders", - "status": "success", - "timestamp": "2018-02-09T14:52:35.163-08:00", - "userAgent": "curl/7.43.0" - } - } -] ----- +When viewed through Query Workbench, the logs are formatted and indented for easier reading. -*Example 2:* Execute `DELETE FROM orders WHERE priority = 6` via a CURL statement +.{blank} +==== +Execute `SELECT * FROM orders` via a CURL statement. +[source,json] ---- -{"timestamp":"2018-02-09T14:52:55.786-08:00","real_userid":{"source":"local","user":"Administrator"},"requestId":"ded68ae3-d964-4d87-b1c2-70cf72041c6b","statement":"DELETE FROM orders WHERE priority = 6","isAdHoc":true,"userAgent":"curl/7.43.0","node":"local_node","status":"success","metrics":{"elapsedTime":"8.884558ms","executionTime":"8.853976ms","resultCount":0,"resultSize":0},"id":28678,"name":"DELETE statement","description":"A N1QL DELETE statement was executed"} +{ + "timestamp": "2018-02-09T14:52:35.163-08:00", + "real_userid": { + "source": "local", + "user": "Administrator" + }, + "requestId": "aee53bf0-d009-4015-8a1d-efec74f2cd74", + "statement": "SELECT * FROM orders", + "isAdHoc": true, + "userAgent": "curl/7.43.0", + "node": "local_node", + "status": "success", + "metrics": { + "elapsedTime": "7.599684ms", + "executionTime": "7.507755ms", + "resultCount": 0, + "resultSize": 0 + }, + "id": 28672, + "name": "SELECT statement", + "description": "A N1QL SELECT statement was executed" +} ---- +==== ----- -[ - { - "$1": { - "description": "A N1QL DELETE statement was executed", - "id": 28678, - "isAdHoc": true, - "metrics": { - "elapsedTime": "8.884558ms", - "executionTime": "8.853976ms", - "resultCount": 0, - "resultSize": 0 - }, - "name": "DELETE statement", - "node": "local_node", - "real_userid": { - "source": "local", - "user": "Administrator" - }, - "requestId": "ded68ae3-d964-4d87-b1c2-70cf72041c6b", - "statement": "DELETE FROM orders WHERE priority = 6", - "status": "success", - "timestamp": "2018-02-09T14:52:55.786-08:00", - "userAgent": "curl/7.43.0" - } - } -] ----- - -*Example 3:* Make an HTTP `GET` method from an `/admin/ping` API request. +.{blank} +==== +Execute `DELETE FROM orders WHERE priority = 6` via a CURL statement. +[source,json] ---- -{"timestamp":"2018-02-09T14:53:10.856-08:00","real_userid":{"source":"internal","user":"unknown"},"httpMethod":"GET","httpResultCode":200,"errorMessage":"","id":28697,"name":"/admin/ping API request","description":"An HTTP request was made to the API at /admin/ping."} +{ + "timestamp": "2018-02-09T14:52:55.786-08:00", + "real_userid": { + "source": "local", + "user": "Administrator" + }, + "requestId": "ded68ae3-d964-4d87-b1c2-70cf72041c6b", + "statement": "DELETE FROM orders WHERE priority = 6", + "isAdHoc": true, + "userAgent": "curl/7.43.0", + "node": "local_node", + "status": "success", + "metrics": { + "elapsedTime": "8.884558ms", + "executionTime": "8.853976ms", + "resultCount": 0, + "resultSize": 0 + }, + "id": 28678, + "name": "DELETE statement", + "description": "A N1QL DELETE statement was executed" +} ---- +==== + +.{blank} +==== +Make an HTTP `GET` method from an `/admin/ping` API request. +[source,json] ---- -[ - { - "$1": { - "description": "An HTTP request was made to the API at /admin/ping.", - "errorMessage": "", - "httpMethod": "GET", - "httpResultCode": 200, - "id": 28697, - "name": "/admin/ping API request", - "real_userid": { - "source": "internal", - "user": "unknown" - }, - "timestamp": "2018-02-09T14:53:10.856-08:00" - } - } -] +{ + "timestamp": "2018-02-09T14:53:10.856-08:00", + "real_userid": { + "source": "internal", + "user": "unknown" + }, + "httpMethod": "GET", + "httpResultCode": 200, + "errorMessage": "", + "id": 28697, + "name": "/admin/ping API request", + "description": "An HTTP request was made to the API at /admin/ping." +} ---- +==== == Audit Rotation diff --git a/modules/n1ql/pages/n1ql-language-reference/prepare.adoc b/modules/n1ql/pages/n1ql-language-reference/prepare.adoc index 749497c86..62026e47b 100644 --- a/modules/n1ql/pages/n1ql-language-reference/prepare.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/prepare.adoc @@ -368,4 +368,4 @@ include::example$utility/prepare-positions.n1ql[] * For information on using prepared statements with the Query REST API (`/query/service` endpoint), refer to xref:n1ql:n1ql-rest-api/index.adoc[]. -* For information on using prepared statements with an SDK, refer to xref:java-sdk:concept-docs:n1ql-query.adoc#prepared-statements-for-query-optimization[Querying with N1QL] and xref:java-sdk:howtos:n1ql-queries-with-sdk.adoc#parameterized-queries[N1QL from the SDK]. +* For information on using prepared statements with an SDK, refer to xref:java-sdk:concept-docs:n1ql-query.adoc#prepared-statements-for-query-optimization[Prepared Statements for Query Optimization] and xref:java-sdk:howtos:n1ql-queries-with-sdk.adoc#parameterized-queries[Parameterized Queries]. diff --git a/modules/n1ql/pages/n1ql-language-reference/time-series.adoc b/modules/n1ql/pages/n1ql-language-reference/time-series.adoc index 3191f9415..7b0b6ccbf 100644 --- a/modules/n1ql/pages/n1ql-language-reference/time-series.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/time-series.adoc @@ -1,4 +1,4 @@ -= Time Series Data += Store and Process Time Series Data :page-topic-type: concept :page-status: Couchbase Server 7.2 :imagesdir: ../../assets/images @@ -26,6 +26,8 @@ [abstract] {description} +include::ROOT:partial$component-signpost.adoc[] + Time series data is any data which changes over time. In the case of data management, it refers to data collected frequently, in regular or irregular intervals, from a device or a process. The changing data is typically numerical, and changes incrementally. diff --git a/modules/n1ql/pages/n1ql-language-reference/transactions.adoc b/modules/n1ql/pages/n1ql-language-reference/transactions.adoc index bdc1ff2fb..9977f1122 100644 --- a/modules/n1ql/pages/n1ql-language-reference/transactions.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/transactions.adoc @@ -1,7 +1,7 @@ = {sqlpp} Support for Couchbase Transactions :page-topic-type: concept :imagesdir: ../../assets/images -:description: {sqlpp} offers full support for Couchbase ACID transactions. +:description: {sqlpp} offers full support for Couchbase ACID transactions based on optimistic concurrency. :tabs: :page-partial: @@ -60,9 +60,11 @@ :rollback-transaction: xref:n1ql-language-reference/rollback-transaction.adoc [abstract] -{sqlpp} offers full support for Couchbase ACID transactions. +{description} -Starting with Couchbase Server 7.0, {sqlpp} offers full support for Couchbase ACID transactions based on optimistic concurrency. +include::ROOT:partial$component-signpost.adoc[] + +A transaction is a group of operations that are either committed to the database together, or are all undone from the database if there's a failure. Refer to {transactions}[Transactions] for an overview of Couchbase transactions. include::partial$n1ql-language-reference/transaction-restrictions.adoc[] @@ -194,6 +196,12 @@ This worked example guides you through a complete Couchbase transaction session The worked example assumes that the supplied `travel-sample` bucket is installed. Refer to {install-sample-buckets}[Sample Buckets] for installation details. +.Context +For this worked example, set the query context to the `tenant_agent_00` scope in the travel sample dataset. +For more information, see xref:n1ql:n1ql-intro/queriesandresults.adoc#query-context[Query Context]. + +image::guides:transactions-context.png["The query context drop-down menu, with the tenant_agent_00 scope selected"] + .Index For the purposes of this worked example, you must create a primary index in the keyspace you will be using. @@ -263,15 +271,29 @@ The results of running the transaction in the Query Workbench are shown below. If you are using the cbq shell, the results are formatted differently, but contain the same information. .Results -[source,json] +[source.no-callouts,json] +---- +include::example$transactions/results.jsonc[tags=extract-1] +---- +Beginning a transaction returns a unique transaction ID `txid`. + +[source.no-callouts,json] ---- -include::example$transactions/results.jsonc[tags=!ellipsis] +include::example$transactions/results.jsonc[tags=extract-2;!ellipsis] ---- +Before setting the second savepoint, the booking document has user `"0"`, name `"Keon Hoppe"`. -<.> Beginning a transaction returns a transaction ID. -<.> Before setting the second savepoint, the booking document has user `"0"`, name `"Keon Hoppe"`. -<.> After setting the second savepoint and performing an update, the booking document has user `"1"`, name `"Rigoberto Bernier"`. -<.> After rolling back to the second savepoint, the booking document again has user `"0"`, name `"Keon Hoppe"`. +[source.no-callouts,json] +---- +include::example$transactions/results.jsonc[tags=extract-3] +---- +After setting the second savepoint and performing an update, the booking document has user `"1"`, name `"Rigoberto Bernier"`. + +[source.no-callouts,json] +---- +include::example$transactions/results.jsonc[tags=extract-4] +---- +After rolling back to the second savepoint, the booking document again has user `"0"`, name `"Keon Hoppe"`. ==== [[ex-2]] @@ -286,12 +308,12 @@ include::example$transactions/multiple.n1ql[tag=check-3] ---- .Results -[source,json,indent=0] +[source.no-callouts,json,indent=0] ---- include::example$transactions/results.jsonc[tag=check-3] ---- -<.> The booking document has been added with the attributes that were present when the transaction was committed. +The booking document has been added with the attributes that were present when the transaction was committed. ==== .Transaction using the Query REST API diff --git a/modules/n1ql/pages/query.adoc b/modules/n1ql/pages/query.adoc index f06a23206..0a7635466 100644 --- a/modules/n1ql/pages/query.adoc +++ b/modules/n1ql/pages/query.adoc @@ -1,4 +1,4 @@ -= Query: Fundamentals += Query Data with {sqlpp} :page-aliases: n1ql:index,n1ql:n1ql-intro/data-access-using-n1ql :page-role: tiles -toc :imagesdir: ../assets/images @@ -22,37 +22,48 @@ endif::[] [abstract] {description} +include::ROOT:partial$component-signpost.adoc[] + As its primary function, the Query service enables you to issue queries to extract data from Couchbase server. You can also issue queries for data definition (defining indexes) and data manipulation (adding or deleting data). -The Query Service depends on both the Index Service and the Data Service. +The Query Service needs both the Index Service and the Data Service to be running on Couchbase Server. -To issue queries, you can use a Couchbase SDK, the REST API, or the tools provided by the Query service: the cbq shell or the Query workbench. +You can run queries from the Query workbench, the cbq shell, the REST API, or the Couchbase SDKs. == When to Use Queries -Use the Query service for operational queries -- for example, the front-end queries behind every page display or navigation. +Use the Query service for query analysis and execution to help you build applications. -Use the Analytics service when you don't know every aspect of the query in advance -- for example, if the data access patterns change frequently, or you want to avoid creating an index for each data access pattern, or you want to run ad hoc queries for data exploration or visualization. +Use the Analytics service for online analytical processing (OLAP) -- large datasets with complex analytical or ad hoc queries. -Use the Full Text Search service when you want to take advantage of natural-language querying. +Use the Search service for full-text search with natural language processing across multiple data types and languages -- custom text analysis, Geospatial search, and more. == {sqlpp} for Query -Couchbase Server can be queried using {sqlpp}, the Couchbase Server query language. -The Couchbase implementation of {sqlpp} was formerly known as https://www.couchbase.com/products/n1ql[N1QL^] (pronounced "nickel"), which derives its name from the non-first normal form of the data model. +To create queries, you must use a query language that is structured so that the Query Service understands what it needs to retrieve. +Couchbase Server uses a query language called {sqlpp}. +The Couchbase implementation of {sqlpp} was formerly known as https://www.couchbase.com/products/n1ql[N1QL^] (pronounced "nickel"). {sqlpp} is an expressive, powerful, and complete SQL dialect for querying, transforming, and manipulating JSON data. Based on SQL, it's immediately familiar to developers who can quickly start developing rich applications. -== What's Next +== How-To Guides * xref:n1ql:n1ql-intro/index.adoc[] -* xref:n1ql:tutorial.adoc[] -* xref:tools:tools-ref.adoc[] -* xref:settings:query-settings.adoc[] -* xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[] +* xref:guides:query.adoc[] +* xref:guides:indexes.adoc[] +* xref:guides:manipulate.adoc[] +* xref:guides:javascript-udfs.adoc[] * xref:n1ql:advanced.adoc[] + +== Query Administration + +* xref:n1ql:admin.adoc[] + +== Query References + * xref:n1ql:n1ql-language-reference/index.adoc[] +* xref:learn:services-and-indexes/indexes/global-secondary-indexes.adoc[] * xref:javascript-udfs:javascript-functions-with-couchbase.adoc[] == Related Links diff --git a/modules/n1ql/partials/n1ql-language-reference/fun-token.adoc b/modules/n1ql/partials/n1ql-language-reference/fun-token.adoc index 7900ddc23..26104eae4 100644 --- a/modules/n1ql/partials/n1ql-language-reference/fun-token.adoc +++ b/modules/n1ql/partials/n1ql-language-reference/fun-token.adoc @@ -164,7 +164,7 @@ LIMIT 1; You can also use `{"case":"lower"}` or `{"case":"upper"}` to have case sensitive search. Index creation and querying can use this and other parameters in combination. These parameters should be passed within the query predicates as well. -The parameters and values must match exactly for N1QL to pick up and use the index correctly. +The parameters and values must match exactly for {sqlpp} to pick up and use the index correctly. .Create an index with `case` and use it your application ==== diff --git a/modules/n1ql/partials/n1ql-language-reference/udf-output.adoc b/modules/n1ql/partials/n1ql-language-reference/udf-output.adoc index 3c826774e..1ba09ceb4 100644 --- a/modules/n1ql/partials/n1ql-language-reference/udf-output.adoc +++ b/modules/n1ql/partials/n1ql-language-reference/udf-output.adoc @@ -1,7 +1,7 @@ == Return Value // tag::body[] -The function returns one value, of any valid N1QL type. +The function returns one value, of any valid {sqlpp} type. The result (and the data type of the result) depend on the expression or code that were used to define the function. If you supply the wrong number of arguments, or arguments with the wrong data type, the possible results differ, depending on whether the function is variadic, or requires a definite number of arguments. diff --git a/modules/n1ql/partials/n1ql-language-reference/window-intro.adoc b/modules/n1ql/partials/n1ql-language-reference/window-intro.adoc index a7a45dc8b..33ae9f5d1 100644 --- a/modules/n1ql/partials/n1ql-language-reference/window-intro.adoc +++ b/modules/n1ql/partials/n1ql-language-reference/window-intro.adoc @@ -11,7 +11,7 @@ The window frame determines the objects to be used by the window function. // end::windows[] // tag::functions[] -N1QL has a dedicated set of window functions. +{sqlpp} has a dedicated set of window functions. Each window function call includes an OVER clause, which introduces the window specification. Some window functions take additional window options, which are specified by further clauses before the OVER clause. diff --git a/modules/n1ql/partials/nav.adoc b/modules/n1ql/partials/nav.adoc index e07486769..96f2c38c6 100644 --- a/modules/n1ql/partials/nav.adoc +++ b/modules/n1ql/partials/nav.adoc @@ -1,142 +1,168 @@ -* xref:n1ql:query.adoc[Query] - ** xref:n1ql:n1ql-intro/index.adoc[] - *** xref:n1ql:n1ql-intro/queriesandresults.adoc[] - *** xref:n1ql:n1ql-intro/sysinfo.adoc[] - *** xref:n1ql:n1ql-language-reference/n1ql-error-codes.adoc[] - ** xref:n1ql:tutorial.adoc[] - ** xref:tools:tools-ref.adoc[] - *** xref:tools:cbq-shell.adoc[] - *** xref:tools:query-workbench.adoc[] - *** xref:tools:query-monitoring.adoc[] - *** xref:tools:udfs-ui.adoc[] - *** xref:n1ql:n1ql-language-reference/n1ql-auditing.adoc[] - *** xref:n1ql:n1ql-language-reference/backfill.adoc[] - ** xref:settings:query-settings.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:n1ql:advanced.adoc[] - *** xref:n1ql:n1ql-language-reference/flex-indexes.adoc[] - *** xref:n1ql:n1ql-language-reference/cost-based-optimizer.adoc[] - *** xref:n1ql:n1ql-language-reference/transactions.adoc[] - *** xref:n1ql:n1ql-language-reference/time-series.adoc[] - ** xref:n1ql:n1ql-language-reference/index.adoc[] - *** xref:n1ql:n1ql-language-reference/conventions.adoc[] - *** xref:n1ql:n1ql-language-reference/reservedwords.adoc[] - *** xref:n1ql:n1ql-language-reference/datatypes.adoc[] - *** xref:n1ql:n1ql-language-reference/literals.adoc[] - *** xref:n1ql:n1ql-language-reference/identifiers.adoc[] - *** xref:n1ql:n1ql-language-reference/operators.adoc[Operators] - **** xref:n1ql:n1ql-language-reference/arithmetic.adoc[] - **** xref:n1ql:n1ql-language-reference/collectionops.adoc[] - **** xref:n1ql:n1ql-language-reference/comparisonops.adoc[] - **** xref:n1ql:n1ql-language-reference/conditionalops.adoc[] - **** xref:n1ql:n1ql-language-reference/constructionops.adoc[] - **** xref:n1ql:n1ql-language-reference/logicalops.adoc[] - **** xref:n1ql:n1ql-language-reference/nestedops.adoc[] - **** xref:n1ql:n1ql-language-reference/sequenceops.adoc[] - **** xref:n1ql:n1ql-language-reference/stringops.adoc[] - *** xref:n1ql:n1ql-language-reference/functions.adoc[Functions] - **** xref:n1ql:n1ql-language-reference/aggregatefun.adoc[] - **** xref:n1ql:n1ql-language-reference/arrayfun.adoc[] - **** xref:n1ql:n1ql-language-reference/bitwisefun.adoc[] - **** xref:n1ql:n1ql-language-reference/comparisonfun.adoc[] - **** xref:n1ql:n1ql-language-reference/condfununknown.adoc[] - **** xref:n1ql:n1ql-language-reference/condfunnum.adoc[] - **** xref:n1ql:n1ql-language-reference/datefun.adoc[] - **** xref:n1ql:n1ql-language-reference/jsonfun.adoc[] - **** xref:n1ql:n1ql-language-reference/metafun.adoc[] - ***** xref:n1ql:n1ql-language-reference/advisor.adoc[] - ***** xref:n1ql:n1ql-language-reference/curl.adoc[] - ***** xref:n1ql:n1ql-language-reference/timeseries.adoc[] - **** xref:n1ql:n1ql-language-reference/numericfun.adoc[] - **** xref:n1ql:n1ql-language-reference/objectfun.adoc[] - **** xref:n1ql:n1ql-language-reference/patternmatchingfun.adoc[] - **** xref:n1ql:n1ql-language-reference/searchfun.adoc[] - **** xref:n1ql:n1ql-language-reference/stringfun.adoc[] - **** xref:n1ql:n1ql-language-reference/tokenfun.adoc[] - **** xref:n1ql:n1ql-language-reference/typefun.adoc[] - **** xref:n1ql:n1ql-language-reference/userfun.adoc[] - **** xref:n1ql:n1ql-language-reference/windowfun.adoc[] - *** xref:n1ql:n1ql-language-reference/subqueries.adoc[] - **** xref:n1ql:n1ql-language-reference/correlated-subqueries.adoc[] - **** xref:n1ql:n1ql-language-reference/subquery-examples.adoc[] - *** xref:n1ql:n1ql-language-reference/optimizer-hints.adoc[Hints] - **** xref:n1ql:n1ql-language-reference/query-hints.adoc[] - **** xref:n1ql:n1ql-language-reference/keyspace-hints.adoc[] - *** xref:n1ql:n1ql-language-reference/booleanlogic.adoc[] - *** Statements - **** xref:n1ql:n1ql-language-reference/advise.adoc[] - **** xref:n1ql:n1ql-language-reference/alterindex.adoc[] - **** xref:n1ql:n1ql-language-reference/altersequence.adoc[] - **** xref:n1ql:n1ql-language-reference/begin-transaction.adoc[] - **** xref:n1ql:n1ql-language-reference/build-index.adoc[] - **** xref:n1ql:n1ql-language-reference/commit-transaction.adoc[] - **** xref:n1ql:n1ql-language-reference/createcollection.adoc[] - **** xref:n1ql:n1ql-language-reference/createfunction.adoc[] - **** xref:n1ql:n1ql-language-reference/createindex.adoc[] - ***** xref:n1ql:n1ql-language-reference/indexing-arrays.adoc[] - ***** xref:n1ql:n1ql-language-reference/adaptive-indexing.adoc[] - ***** xref:n1ql:n1ql-language-reference/indexing-meta-info.adoc[] - ***** xref:n1ql:n1ql-language-reference/index-partitioning.adoc[] - **** xref:n1ql:n1ql-language-reference/createprimaryindex.adoc[] - **** xref:n1ql:n1ql-language-reference/createsequence.adoc[] - **** xref:n1ql:n1ql-language-reference/createscope.adoc[] - **** xref:n1ql:n1ql-language-reference/delete.adoc[] - **** xref:n1ql:n1ql-language-reference/dropcollection.adoc[] - **** xref:n1ql:n1ql-language-reference/dropfunction.adoc[] - **** xref:n1ql:n1ql-language-reference/dropindex.adoc[] - **** xref:n1ql:n1ql-language-reference/dropprimaryindex.adoc[] - **** xref:n1ql:n1ql-language-reference/dropsequence.adoc[] - **** xref:n1ql:n1ql-language-reference/dropscope.adoc[] - **** xref:n1ql:n1ql-language-reference/execute.adoc[] - **** xref:n1ql:n1ql-language-reference/execfunction.adoc[] - **** xref:n1ql:n1ql-language-reference/explain.adoc[] - **** xref:n1ql:n1ql-language-reference/explainfunction.adoc[] - **** xref:n1ql:n1ql-language-reference/grant.adoc[] - **** xref:n1ql:n1ql-language-reference/infer.adoc[] - **** xref:n1ql:n1ql-language-reference/insert.adoc[] - **** xref:n1ql:n1ql-language-reference/merge.adoc[] - **** xref:n1ql:n1ql-language-reference/prepare.adoc[] - **** xref:n1ql:n1ql-language-reference/revoke.adoc[] - **** xref:n1ql:n1ql-language-reference/rollback-transaction.adoc[] - **** xref:n1ql:n1ql-language-reference/savepoint.adoc[] - **** xref:n1ql:n1ql-language-reference/selectintro.adoc[SELECT] - ***** xref:n1ql:n1ql-language-reference/select-syntax.adoc[] - ***** xref:n1ql:n1ql-language-reference/selectclause.adoc[] - ***** xref:n1ql:n1ql-language-reference/with.adoc[] - ***** xref:n1ql:n1ql-language-reference/with-recursive.adoc[] - ***** xref:n1ql:n1ql-language-reference/from.adoc[] - ***** xref:n1ql:n1ql-language-reference/hints.adoc[] - ***** xref:n1ql:n1ql-language-reference/join.adoc[] - ***** xref:n1ql:n1ql-language-reference/nest.adoc[] - ***** xref:n1ql:n1ql-language-reference/unnest.adoc[] - ***** xref:n1ql:n1ql-language-reference/comma.adoc[] - ***** xref:n1ql:n1ql-language-reference/let.adoc[] - ***** xref:n1ql:n1ql-language-reference/where.adoc[] - ***** xref:n1ql:n1ql-language-reference/groupby.adoc[] - ***** xref:n1ql:n1ql-language-reference/window.adoc[] - ***** xref:n1ql:n1ql-language-reference/union.adoc[] - ***** xref:n1ql:n1ql-language-reference/orderby.adoc[] - ***** xref:n1ql:n1ql-language-reference/limit.adoc[] - ***** xref:n1ql:n1ql-language-reference/offset.adoc[] - **** xref:n1ql:n1ql-language-reference/set-transaction.adoc[] - **** xref:n1ql:n1ql-language-reference/update.adoc[] - **** xref:n1ql:n1ql-language-reference/updatestatistics.adoc[] - ***** xref:n1ql:n1ql-language-reference/statistics-expressions.adoc[] - ***** xref:n1ql:n1ql-language-reference/statistics-index.adoc[] - ***** xref:n1ql:n1ql-language-reference/statistics-indexes.adoc[] - ***** xref:n1ql:n1ql-language-reference/statistics-delete.adoc[] - **** xref:n1ql:n1ql-language-reference/upsert.adoc[] - ** xref:javascript-udfs:javascript-functions-with-couchbase.adoc[] - *** xref:javascript-udfs:calling-javascript-from-n1ql.adoc[] - *** xref:javascript-udfs:calling-n1ql-from-javascript.adoc[] - *** xref:javascript-udfs:handling-errors-javascript-udf.adoc[] +// Combined nav for Query +* xref:n1ql:query.adoc[] + ** xref:n1ql:n1ql-intro/index.adoc[] + *** xref:n1ql:n1ql-intro/queriesandresults.adoc[] + *** xref:tools:query-workbench.adoc[] + *** xref:tools:cbq-shell.adoc[] + ** xref:guides:query.adoc[] + *** xref:guides:select.adoc[] + *** xref:guides:join.adoc[] + *** xref:guides:nest-unnest.adoc[] + *** xref:guides:group-agg.adoc[] + *** xref:guides:prep-statements.adoc[] + ** xref:guides:indexes.adoc[] + *** xref:guides:create-index.adoc[] + *** xref:guides:place-index.adoc[] + *** xref:guides:defer-index.adoc[] + *** xref:guides:select-index.adoc[] + *** xref:guides:drop-index.adoc[] + *** xref:guides:index-advisor.adoc[] + ** xref:guides:manipulate.adoc[] + *** xref:guides:insert.adoc[] + *** xref:guides:update.adoc[] + *** xref:guides:delete.adoc[] + ** xref:guides:javascript-udfs.adoc[] + *** xref:guides:create-javascript-library.adoc[] + *** xref:guides:create-user-defined-function.adoc[] + *** xref:guides:call-user-defined-function.adoc[] + ** xref:n1ql:advanced.adoc[] + *** xref:n1ql:n1ql-language-reference/cost-based-optimizer.adoc[] + *** xref:guides:cbo.adoc[] + *** xref:n1ql:n1ql-language-reference/transactions.adoc[] + *** xref:guides:transactions.adoc[] + *** xref:n1ql:n1ql-language-reference/flex-indexes.adoc[] + *** xref:n1ql:n1ql-language-reference/time-series.adoc[] + ** xref:n1ql:admin.adoc[] + *** xref:n1ql:n1ql-intro/sysinfo.adoc[] + *** xref:tools:query-monitoring.adoc[] + *** xref:manage:monitor/monitoring-n1ql-query.adoc[] + *** xref:manage:monitor/monitoring-indexes.adoc[] + *** xref:manage:manage-indexes/manage-indexes.adoc[] + *** xref:settings:query-settings.adoc[] + *** xref:n1ql:n1ql-language-reference/n1ql-auditing.adoc[] + *** xref:n1ql:n1ql-language-reference/backfill.adoc[] + ** xref:n1ql:n1ql-language-reference/index.adoc[] + *** xref:n1ql:n1ql-language-reference/conventions.adoc[] + *** xref:n1ql:n1ql-language-reference/reservedwords.adoc[] + *** xref:n1ql:n1ql-language-reference/datatypes.adoc[] + *** xref:n1ql:n1ql-language-reference/literals.adoc[] + *** xref:n1ql:n1ql-language-reference/identifiers.adoc[] + *** xref:n1ql:n1ql-language-reference/operators.adoc[Operators] + **** xref:n1ql:n1ql-language-reference/arithmetic.adoc[] + **** xref:n1ql:n1ql-language-reference/collectionops.adoc[] + **** xref:n1ql:n1ql-language-reference/comparisonops.adoc[] + **** xref:n1ql:n1ql-language-reference/conditionalops.adoc[] + **** xref:n1ql:n1ql-language-reference/constructionops.adoc[] + **** xref:n1ql:n1ql-language-reference/logicalops.adoc[] + **** xref:n1ql:n1ql-language-reference/nestedops.adoc[] + **** xref:n1ql:n1ql-language-reference/sequenceops.adoc[] + **** xref:n1ql:n1ql-language-reference/stringops.adoc[] + *** xref:n1ql:n1ql-language-reference/functions.adoc[Functions] + **** xref:n1ql:n1ql-language-reference/aggregatefun.adoc[] + **** xref:n1ql:n1ql-language-reference/arrayfun.adoc[] + **** xref:n1ql:n1ql-language-reference/bitwisefun.adoc[] + **** xref:n1ql:n1ql-language-reference/comparisonfun.adoc[] + **** xref:n1ql:n1ql-language-reference/condfununknown.adoc[] + **** xref:n1ql:n1ql-language-reference/condfunnum.adoc[] + **** xref:n1ql:n1ql-language-reference/datefun.adoc[] + **** xref:n1ql:n1ql-language-reference/jsonfun.adoc[] + **** xref:n1ql:n1ql-language-reference/metafun.adoc[] + ***** xref:n1ql:n1ql-language-reference/advisor.adoc[] + ***** xref:n1ql:n1ql-language-reference/curl.adoc[] + ***** xref:n1ql:n1ql-language-reference/timeseries.adoc[] + **** xref:n1ql:n1ql-language-reference/numericfun.adoc[] + **** xref:n1ql:n1ql-language-reference/objectfun.adoc[] + **** xref:n1ql:n1ql-language-reference/patternmatchingfun.adoc[] + **** xref:n1ql:n1ql-language-reference/searchfun.adoc[] + **** xref:n1ql:n1ql-language-reference/stringfun.adoc[] + **** xref:n1ql:n1ql-language-reference/tokenfun.adoc[] + **** xref:n1ql:n1ql-language-reference/typefun.adoc[] + **** xref:n1ql:n1ql-language-reference/userfun.adoc[] + **** xref:n1ql:n1ql-language-reference/windowfun.adoc[] + *** xref:n1ql:n1ql-language-reference/subqueries.adoc[] + **** xref:n1ql:n1ql-language-reference/correlated-subqueries.adoc[] + **** xref:n1ql:n1ql-language-reference/subquery-examples.adoc[] + *** xref:n1ql:n1ql-language-reference/optimizer-hints.adoc[Hints] + **** xref:n1ql:n1ql-language-reference/query-hints.adoc[] + **** xref:n1ql:n1ql-language-reference/keyspace-hints.adoc[] + *** xref:n1ql:n1ql-language-reference/booleanlogic.adoc[] + *** Statements + **** xref:n1ql:n1ql-language-reference/advise.adoc[] + **** xref:n1ql:n1ql-language-reference/alterindex.adoc[] + **** xref:n1ql:n1ql-language-reference/altersequence.adoc[] + **** xref:n1ql:n1ql-language-reference/begin-transaction.adoc[] + **** xref:n1ql:n1ql-language-reference/build-index.adoc[] + **** xref:n1ql:n1ql-language-reference/commit-transaction.adoc[] + **** xref:n1ql:n1ql-language-reference/createcollection.adoc[] + **** xref:n1ql:n1ql-language-reference/createfunction.adoc[] + **** xref:n1ql:n1ql-language-reference/createindex.adoc[] + ***** xref:n1ql:n1ql-language-reference/indexing-arrays.adoc[] + ***** xref:n1ql:n1ql-language-reference/adaptive-indexing.adoc[] + ***** xref:n1ql:n1ql-language-reference/indexing-meta-info.adoc[] + ***** xref:n1ql:n1ql-language-reference/index-partitioning.adoc[] + **** xref:n1ql:n1ql-language-reference/createprimaryindex.adoc[] + **** xref:n1ql:n1ql-language-reference/createsequence.adoc[] + **** xref:n1ql:n1ql-language-reference/createscope.adoc[] + **** xref:n1ql:n1ql-language-reference/delete.adoc[] + **** xref:n1ql:n1ql-language-reference/dropcollection.adoc[] + **** xref:n1ql:n1ql-language-reference/dropfunction.adoc[] + **** xref:n1ql:n1ql-language-reference/dropindex.adoc[] + **** xref:n1ql:n1ql-language-reference/dropprimaryindex.adoc[] + **** xref:n1ql:n1ql-language-reference/dropsequence.adoc[] + **** xref:n1ql:n1ql-language-reference/dropscope.adoc[] + **** xref:n1ql:n1ql-language-reference/execute.adoc[] + **** xref:n1ql:n1ql-language-reference/execfunction.adoc[] + **** xref:n1ql:n1ql-language-reference/explain.adoc[] + **** xref:n1ql:n1ql-language-reference/explainfunction.adoc[] + **** xref:n1ql:n1ql-language-reference/grant.adoc[] + **** xref:n1ql:n1ql-language-reference/infer.adoc[] + **** xref:n1ql:n1ql-language-reference/insert.adoc[] + **** xref:n1ql:n1ql-language-reference/merge.adoc[] + **** xref:n1ql:n1ql-language-reference/prepare.adoc[] + **** xref:n1ql:n1ql-language-reference/revoke.adoc[] + **** xref:n1ql:n1ql-language-reference/rollback-transaction.adoc[] + **** xref:n1ql:n1ql-language-reference/savepoint.adoc[] + **** xref:n1ql:n1ql-language-reference/selectintro.adoc[SELECT] + ***** xref:n1ql:n1ql-language-reference/select-syntax.adoc[] + ***** xref:n1ql:n1ql-language-reference/selectclause.adoc[] + ***** xref:n1ql:n1ql-language-reference/with.adoc[] + ***** xref:n1ql:n1ql-language-reference/with-recursive.adoc[] + ***** xref:n1ql:n1ql-language-reference/from.adoc[] + ***** xref:n1ql:n1ql-language-reference/hints.adoc[] + ***** xref:n1ql:n1ql-language-reference/join.adoc[] + ***** xref:n1ql:n1ql-language-reference/nest.adoc[] + ***** xref:n1ql:n1ql-language-reference/unnest.adoc[] + ***** xref:n1ql:n1ql-language-reference/comma.adoc[] + ***** xref:n1ql:n1ql-language-reference/let.adoc[] + ***** xref:n1ql:n1ql-language-reference/where.adoc[] + ***** xref:n1ql:n1ql-language-reference/groupby.adoc[] + ***** xref:n1ql:n1ql-language-reference/window.adoc[] + ***** xref:n1ql:n1ql-language-reference/union.adoc[] + ***** xref:n1ql:n1ql-language-reference/orderby.adoc[] + ***** xref:n1ql:n1ql-language-reference/limit.adoc[] + ***** xref:n1ql:n1ql-language-reference/offset.adoc[] + **** xref:n1ql:n1ql-language-reference/set-transaction.adoc[] + **** xref:n1ql:n1ql-language-reference/update.adoc[] + **** xref:n1ql:n1ql-language-reference/updatestatistics.adoc[] + ***** xref:n1ql:n1ql-language-reference/statistics-expressions.adoc[] + ***** xref:n1ql:n1ql-language-reference/statistics-index.adoc[] + ***** xref:n1ql:n1ql-language-reference/statistics-indexes.adoc[] + ***** xref:n1ql:n1ql-language-reference/statistics-delete.adoc[] + **** xref:n1ql:n1ql-language-reference/upsert.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:javascript-udfs:javascript-functions-with-couchbase.adoc[] + *** xref:tools:udfs-ui.adoc[] + *** xref:javascript-udfs:calling-javascript-from-n1ql.adoc[] + *** xref:javascript-udfs:calling-n1ql-from-javascript.adoc[] + *** xref:javascript-udfs:handling-errors-javascript-udf.adoc[] diff --git a/modules/search/partials/nav.adoc b/modules/search/partials/nav.adoc index 17253712b..1e28b1546 100644 --- a/modules/search/partials/nav.adoc +++ b/modules/search/partials/nav.adoc @@ -1,13 +1,13 @@ * xref:7.6@server:search:search.adoc[] ** xref:7.6@server:search:create-search-indexes.adoc[] - *** xref:7.6@server:search:create-search-index-ui.adoc[] - *** xref:7.6@server:search:create-search-index-rest-api.adoc[] - **** xref:7.6@server:search:search-index-params.adoc[] - *** xref:7.6@server:search:create-quick-index.adoc[] - **** xref:7.6@server:search:quick-index-field-options.adoc[] - **** xref:7.6@server:search:field-data-types-reference.adoc[] - **** xref:7.6@server:search:quick-index-supported-languages.adoc[] - *** xref:7.6@server:search:import-search-index.adoc[] + *** xref:7.6@server:search:create-search-index-ui.adoc[] + *** xref:7.6@server:search:create-search-index-rest-api.adoc[] + **** xref:7.6@server:search:search-index-params.adoc[] + *** xref:7.6@server:search:create-quick-index.adoc[] + **** xref:7.6@server:search:quick-index-field-options.adoc[] + **** xref:7.6@server:search:field-data-types-reference.adoc[] + **** xref:7.6@server:search:quick-index-supported-languages.adoc[] + *** xref:7.6@server:search:import-search-index.adoc[] ** xref:7.6@server:search:view-index-details.adoc[] ** xref:7.6@server:search:run-searches.adoc[] *** xref:7.6@server:search:simple-search-ui.adoc[] @@ -17,10 +17,10 @@ **** xref:7.6@server:fts:fts-search-response.adoc[Search Response] *** xref:7.6@server:search:geo-search-rest-api.adoc[] ** xref:7.6@server:search:search-query-auto-complete.adoc[] - *** xref:7.6@server:search:search-query-auto-complete-ui.adoc[] - *** xref:7.6@server:search:search-query-auto-complete-code.adoc[] + *** xref:7.6@server:search:search-query-auto-complete-ui.adoc[] + *** xref:7.6@server:search:search-query-auto-complete-code.adoc[] ** xref:7.6@server:search:index-aliases.adoc[] - *** xref:7.6@server:search:create-search-index-alias.adoc[] + *** xref:7.6@server:search:create-search-index-alias.adoc[] ** xref:7.6@server:search:customize-index.adoc[] *** xref:7.6@server:search:set-type-identifier.adoc[] *** xref:7.6@server:search:create-type-mapping.adoc[] diff --git a/modules/develop/pages/integrations.adoc b/modules/third-party/pages/integrations.adoc similarity index 99% rename from modules/develop/pages/integrations.adoc rename to modules/third-party/pages/integrations.adoc index bb5416bed..d93c12460 100644 --- a/modules/develop/pages/integrations.adoc +++ b/modules/third-party/pages/integrations.adoc @@ -1,6 +1,7 @@ = Integrations, Connectors, and Tools :page-toclevels: 2 :page-topic-type: reference +:page-aliases: develop:integrations.adoc :description: Integrate Couchbase with your development ecosystem and production and deployment tools. :page-partial: diff --git a/modules/third-party/partials/nav.adoc b/modules/third-party/partials/nav.adoc new file mode 100644 index 000000000..d3008fca1 --- /dev/null +++ b/modules/third-party/partials/nav.adoc @@ -0,0 +1 @@ +* xref:third-party:integrations.adoc[] \ No newline at end of file