diff --git a/modules/guides/pages/cbo.adoc b/modules/guides/pages/cbo.adoc index d092152fe..0f302aba6 100644 --- a/modules/guides/pages/cbo.adoc +++ b/modules/guides/pages/cbo.adoc @@ -86,7 +86,7 @@ The following code activates the Cost-Based Optimizer for subsequent requests on -- ==== -For more information and examples, refer to xref:settings:query-settings.adoc[Settings and Parameters]. +For more information and examples, refer to xref:n1ql:n1ql-manage/query-settings.adoc[]. == Updating Statistics diff --git a/modules/guides/pages/prep-statements.adoc b/modules/guides/pages/prep-statements.adoc index 88ef97c6f..0e2c65be1 100644 --- a/modules/guides/pages/prep-statements.adoc +++ b/modules/guides/pages/prep-statements.adoc @@ -40,7 +40,7 @@ include::partial$query-context.adoc[tag=step] .Query [source,sqlpp] ---- -include::settings:example$param-names.n1ql[tag=statement] +include::n1ql:example$settings/param-names.n1ql[tag=statement] ---- To execute this query, the parameters must be supplied by name. @@ -55,7 +55,7 @@ include::partial$query-context.adoc[tag=step] .Query [source,sqlpp] ---- -include::settings:example$param-numbers.n1ql[tag=statement] +include::n1ql:example$settings/param-numbers.n1ql[tag=statement] ---- To execute this query, the parameters must be supplied as a list, in order of the placeholder numbers. @@ -70,7 +70,7 @@ include::partial$query-context.adoc[tag=step] .Query [source,sqlpp] ---- -include::settings:example$param-positions.n1ql[tag=statement] +include::n1ql:example$settings/param-positions.n1ql[tag=statement] ---- To execute this query, the parameters must be supplied as a list, in the order in which the placeholders appear in the statement. @@ -117,17 +117,17 @@ The following query supplies positional parameter values, using the cbq shell. [source,sqlpp] ---- -include::settings:example$param-numbers.n1ql[tags=**] +include::n1ql:example$settings/param-numbers.n1ql[tags=**] ---- The following query supplies named parameter values, using the cbq shell. [source,sqlpp] ---- -include::settings:example$param-names.n1ql[tags=**] +include::n1ql:example$settings/param-names.n1ql[tags=**] ---- -For more information and examples, refer to xref:settings:query-settings.adoc[Settings and Parameters]. +For more information and examples, refer to xref:n1ql:n1ql-manage/query-settings.adoc[]. -- .NET:: 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 5f18402fe..e05a42aef 100644 --- a/modules/learn/pages/services-and-indexes/indexes/index-replication.adoc +++ b/modules/learn/pages/services-and-indexes/indexes/index-replication.adoc @@ -17,7 +17,7 @@ :install-sample-buckets: xref:manage:manage-settings/install-sample-buckets.adoc :query: xref:n1ql:query.adoc :query-preferences: xref:tools:query-workbench.adoc#query-preferences -:scan_consistency: xref:settings:query-settings.adoc#scan_consistency +:scan_consistency: xref:n1ql:n1ql-manage/query-settings.adoc#scan_consistency [abstract] The _Index Service_ ensures availability and performance through _replication_ and _partitioning_. diff --git a/modules/n1ql/examples/settings/node-level-settings.jsonc b/modules/n1ql/examples/settings/node-level-settings.jsonc new file mode 100644 index 000000000..4660e03da --- /dev/null +++ b/modules/n1ql/examples/settings/node-level-settings.jsonc @@ -0,0 +1,38 @@ +{ + "atrcollection": "", + "auto-prepare": false, + "cleanupclientattempts": true, + "cleanuplostattempts": true, + "cleanupwindow": "1m0s", + "completed": { + "aborted": null, + "threshold": 1000 + }, + "completed-limit": 4000, + "completed-threshold": 1000, + "controls": false, + "cpuprofile": "", + "debug": false, + "functions-limit": 16384, + "keep-alive-length": 16384, + "loglevel": "INFO", + "max-index-api": 4, + "max-parallelism": 1, + "memory-quota": 0, + "memprofile": "", + "mutexprofile": false, + "n1ql-feat-ctrl": 76, + "numatrs": 1024, + "pipeline-batch": 16, + "pipeline-cap": 512, + "plus-servicers": 16, + "prepared-limit": 16384, + "pretty": false, + "profile": "off", + "request-size-cap": 67108864, + "scan-cap": 512, + "servicers": 4, + "timeout": 0, + "txtimeout": "0s", + "use-cbo": true +} \ No newline at end of file diff --git a/modules/n1ql/examples/settings/node-level-settings.sh b/modules/n1ql/examples/settings/node-level-settings.sh new file mode 100644 index 000000000..c582ed1bd --- /dev/null +++ b/modules/n1ql/examples/settings/node-level-settings.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# tag::curl[] +curl http://localhost:8093/admin/settings -u user:pword +# end::curl[] \ No newline at end of file diff --git a/modules/n1ql/examples/settings/param-names.n1ql b/modules/n1ql/examples/settings/param-names.n1ql new file mode 100644 index 000000000..5f8fccaa4 --- /dev/null +++ b/modules/n1ql/examples/settings/param-names.n1ql @@ -0,0 +1,9 @@ +/* tag::arguments[] */ +\SET -@country "France"; +\SET -$altitude 500; +/* end::arguments[] */ + +/* tag::statement[] */ +SELECT COUNT(*) FROM airport +WHERE country = $country AND geo.alt > @altitude; +/* end::statement[] */ \ No newline at end of file diff --git a/modules/n1ql/examples/settings/param-numbers.n1ql b/modules/n1ql/examples/settings/param-numbers.n1ql new file mode 100644 index 000000000..83121fa65 --- /dev/null +++ b/modules/n1ql/examples/settings/param-numbers.n1ql @@ -0,0 +1,8 @@ +/* tag::arguments[] */ +\SET -args ["France", 500]; +/* end::arguments[] */ + +/* tag::statement[] */ +SELECT COUNT(*) FROM airport +WHERE country = $1 AND geo.alt > @2; +/* end::statement[] */ \ No newline at end of file diff --git a/modules/n1ql/examples/settings/param-positions.n1ql b/modules/n1ql/examples/settings/param-positions.n1ql new file mode 100644 index 000000000..697b37d6b --- /dev/null +++ b/modules/n1ql/examples/settings/param-positions.n1ql @@ -0,0 +1,8 @@ +/* tag::arguments[] */ +\SET -args ["France", 500]; +/* end::arguments[] */ + +/* tag::statement[] */ +SELECT COUNT(*) FROM airport +WHERE country = ? AND geo.alt > ?; +/* end::statement[] */ \ No newline at end of file diff --git a/modules/n1ql/examples/settings/save-node-level-settings.sh b/modules/n1ql/examples/settings/save-node-level-settings.sh new file mode 100644 index 000000000..ddbac3034 --- /dev/null +++ b/modules/n1ql/examples/settings/save-node-level-settings.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# tag::curl[] +curl http://localhost:8093/admin/settings -u user:pword -o ./query_settings.json +# end::curl[] \ No newline at end of file diff --git a/modules/n1ql/pages/n1ql-intro/cbq.adoc b/modules/n1ql/pages/n1ql-intro/cbq.adoc index eb2ec8860..6928b0367 100644 --- a/modules/n1ql/pages/n1ql-intro/cbq.adoc +++ b/modules/n1ql/pages/n1ql-intro/cbq.adoc @@ -450,7 +450,7 @@ $ ./cbq -e http://localhost:8091 -qc "travel-sample.inventory" `--timeout` | string (duration) a| Sets the query timeout parameter. -For more information, see xref:settings:query-settings.adoc#timeout_req[timeout]. +For more information, see xref:n1ql:n1ql-manage/query-settings.adoc#timeout_req[timeout]. Shell command: <> `-timeout` diff --git a/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc b/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc index 22f38794c..b76520519 100644 --- a/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc +++ b/modules/n1ql/pages/n1ql-intro/queriesandresults.adoc @@ -101,7 +101,7 @@ When the query context is not set, it defaults to the `default` namespace, with * To set the query context in the Query Workbench, use the the xref:tools:query-workbench.adoc#query-context[query context] drop-down menu in the Query Editor. -* To set the query context from the cbq shell or the REST API, use the xref:settings:query-settings.adoc#query_context[query_context] request-level parameter. +* To set the query context from the cbq shell or the REST API, use the xref:n1ql:n1ql-manage/query-settings.adoc#query_context[query_context] request-level parameter. .Tenant separation [IMPORTANT] @@ -148,7 +148,7 @@ This is particularly useful when there are many query parameters, and ensuring t 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]. +For more information and examples, refer to xref:n1ql:n1ql-manage/query-settings.adoc#section_srh_tlm_n1b[Named Parameters and Positional Parameters]. [#prepare-stmts] == Query Optimization Using Prepared Statements diff --git a/modules/n1ql/pages/n1ql-language-reference/advisor.adoc b/modules/n1ql/pages/n1ql-language-reference/advisor.adoc index 090216322..fc340960b 100644 --- a/modules/n1ql/pages/n1ql-language-reference/advisor.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/advisor.adoc @@ -18,7 +18,7 @@ :sys-tasks-cache: {monitor}#sys-tasks-cache :index-advisor: xref:tools:query-workbench.adoc#index-advisor -:completed-limit: xref:settings:query-settings.adoc#completed-limit +:completed-limit: xref:n1ql:n1ql-manage/query-settings.adoc#completed-limit {description} There are two main scenarios for using this function. diff --git a/modules/n1ql/pages/n1ql-language-reference/begin-transaction.adoc b/modules/n1ql/pages/n1ql-language-reference/begin-transaction.adoc index 8ea295264..94ca1012b 100644 --- a/modules/n1ql/pages/n1ql-language-reference/begin-transaction.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/begin-transaction.adoc @@ -15,8 +15,8 @@ :execute: xref:n1ql:n1ql-language-reference/execute.adoc :transactions: xref:n1ql:n1ql-language-reference/transactions.adoc :preparation: xref:n1ql:n1ql-language-reference/transactions.adoc#preparation -:tximplicit: xref:settings:query-settings.adoc#tximplicit -:txid: xref:settings:query-settings.adoc#txid +:tximplicit: xref:n1ql:n1ql-manage/query-settings.adoc#tximplicit +:txid: xref:n1ql:n1ql-manage/query-settings.adoc#txid // Related links :overview: xref:learn:data/transactions.adoc diff --git a/modules/n1ql/pages/n1ql-language-reference/commit-transaction.adoc b/modules/n1ql/pages/n1ql-language-reference/commit-transaction.adoc index dcd8d5ab6..c88209673 100644 --- a/modules/n1ql/pages/n1ql-language-reference/commit-transaction.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/commit-transaction.adoc @@ -6,7 +6,7 @@ // Cross-references :durability: xref:learn:data/durability.adoc :edit-bucket: xref:manage:manage-buckets/edit-bucket.adoc -:durability_level: xref:settings:query-settings.adoc#durability_level +:durability_level: xref:n1ql:n1ql-manage/query-settings.adoc#durability_level :transactions: xref:n1ql:n1ql-language-reference/transactions.adoc :preparation: xref:n1ql:n1ql-language-reference/transactions.adoc#preparation 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 ff24ede7f..5c4768469 100644 --- a/modules/n1ql/pages/n1ql-language-reference/cost-based-optimizer.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/cost-based-optimizer.adoc @@ -5,7 +5,7 @@ :description: 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. // Cross-references -:query-settings: xref:settings:query-settings.adoc +:query-settings: xref:n1ql:n1ql-manage/query-settings.adoc :queryUseCBO: {query-settings}#queryUseCBO :use-cbo-srv: {query-settings}#use-cbo-srv :use_cbo_req: {query-settings}#use_cbo_req diff --git a/modules/n1ql/pages/n1ql-language-reference/curl.adoc b/modules/n1ql/pages/n1ql-language-reference/curl.adoc index 0baab2c69..01e8084fa 100644 --- a/modules/n1ql/pages/n1ql-language-reference/curl.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/curl.adoc @@ -594,7 +594,7 @@ FROM CURL("http://Administrator:password@127.0.0.1:8094/api/index/fts_index/quer The following example uses the `CURL()` function with a WHERE clause. It uses the Yahoo finance API to find the day's low value (i.e `DaysLow`) of HDP stock and finds all the documents in the `users` keyspace that have `min_threshold` attribute value greater than the DaysLow stock value. -For this example, unset the query context using the xref:tools/query-workbench.adoc#query-context[query context] drop-down menu in the Query Workbench, or the xref:settings:query-settings.adoc#query_context[query_context] request-level parameter. +include::ROOT:partial$query-context.adoc[tag=unset] // TODO: completely overhaul this to use `travel-sample`.tenant_agent_00.users diff --git a/modules/n1ql/pages/n1ql-language-reference/execute.adoc b/modules/n1ql/pages/n1ql-language-reference/execute.adoc index 97fb3733c..e018659dc 100644 --- a/modules/n1ql/pages/n1ql-language-reference/execute.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/execute.adoc @@ -111,7 +111,7 @@ include::example$utility/execute-numbers.n1ql[] ==== Alternatively, you can specify named parameters and positional parameters using the {sqlpp} REST API (`/query/service` endpoint), the `cbq` command line tool, or a software development kit (SDK). Named parameters can be specified as request-level parameters, and positional parameters can be specified using the `args` parameter. -Refer to xref:settings:query-settings.adoc[Query Settings] for more information. +See xref:n1ql:n1ql-manage/query-settings.adoc[] for more information. When you specify parameters with the USING clause, you cannot also specify parameters at the same time using the {sqlpp} REST API, the `cbq` command line tool, or an SDK. When you do this, the query service returns error `5003`: "cannot have both USING clause and request parameters". diff --git a/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc b/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc index a2d73e432..bb4cf5fa2 100644 --- a/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/flex-indexes.adoc @@ -14,7 +14,7 @@ :isstring: xref:n1ql-language-reference/typefun.adoc#isstring :isnumber: xref:n1ql-language-reference/typefun.adoc#isnumber :covering-indexes: xref:n1ql:n1ql-language-reference/covering-indexes.adoc -:query-settings: xref:settings:query-settings.adoc +:query-settings: xref:n1ql:n1ql-manage/query-settings.adoc :fts-creating-indexes: xref:fts:fts-creating-indexes.adoc :inserting-a-child-field: xref:fts:fts-creating-indexes.adoc#inserting-a-child-field :pre-constructed-analyzers: xref:fts:fts-using-analyzers.adoc#pre-constructed-analyzers @@ -98,7 +98,7 @@ Assuming that there is no search function in the query predicate, there are two For full details, refer to {index-type}[USE Clause]. * Set the `use_fts` request-level parameter to `true`. -For full details, refer to {query-settings}[Settings and Parameters]. +For full details, refer to {query-settings}[]. When using an index hint, you may specify preferred indexes by name, or simply specify the preferred index type -- `FTS` or `GSI`. It is possible to specify mixed index types. diff --git a/modules/n1ql/pages/n1ql-language-reference/insert.adoc b/modules/n1ql/pages/n1ql-language-reference/insert.adoc index 6e04e7877..15720c751 100644 --- a/modules/n1ql/pages/n1ql-language-reference/insert.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/insert.adoc @@ -25,7 +25,7 @@ :from-keyspace-ref: {from}#from-keyspace-ref :as-clause: {from}#section_ax5_2nx_1db -:query-settings: xref:settings:query-settings.adoc +:query-settings: xref:n1ql:n1ql-manage/query-settings.adoc :pipeline_batch_req: {query-settings}#pipeline_batch_req :pipeline-batch-srv: {query-settings}#pipeline-batch-srv :max_parallelism_req: {query-settings}#max_parallelism_req diff --git a/modules/n1ql/pages/n1ql-language-reference/merge.adoc b/modules/n1ql/pages/n1ql-language-reference/merge.adoc index a993488f5..0a30a5523 100644 --- a/modules/n1ql/pages/n1ql-language-reference/merge.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/merge.adoc @@ -5,7 +5,7 @@ :authorization-overview: xref:learn:security/authorization-overview.adoc :bucket-expiration: xref:learn:data/expiration.adoc -:preserve_expiration: xref:settings:query-settings.adoc#preserve_expiration +:preserve_expiry: xref:n1ql:n1ql-manage/query-settings.adoc#preserve_expiry :logical-hierarchy: xref:n1ql-intro/sysinfo.adoc#logical-hierarchy :selectclause: xref:n1ql-language-reference/selectclause.adoc :subqueries: xref:n1ql-language-reference/subqueries.adoc @@ -746,7 +746,7 @@ If the airport does not exist in the `airport` keyspace, a new record is created include::example$dml/ansi-merge-expire.n1ql[] ---- -Note that it is possible to preserve the document expiration using the request-level {preserve_expiration}[preserve_expiration] parameter. +Note that it is possible to preserve the document expiration using the request-level {preserve_expiry}[preserve_expiry] parameter. ==== .Lookup merge with expression source diff --git a/modules/n1ql/pages/n1ql-language-reference/n1ql-error-codes.adoc b/modules/n1ql/pages/n1ql-language-reference/n1ql-error-codes.adoc index 5296c7a97..405755759 100644 --- a/modules/n1ql/pages/n1ql-language-reference/n1ql-error-codes.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/n1ql-error-codes.adoc @@ -612,10 +612,11 @@ Connecting with this user may not be possible.` | `Request has exceeded memory quota` a| The query request exceeded the set Query Memory Quota. -You can set a memory quota with the Couchbase Server UI, the REST API, or the CLI. For more information, see xref:settings:query-settings.adoc[Query Settings and Parameters]. +You can set a memory quota with the Couchbase Server UI, the REST API, or the CLI. +For more information, see xref:n1ql:n1ql-manage/query-settings.adoc[]. * To set a memory quota with the UI, see xref:manage:manage-settings/general-settings.adoc#query-settings[Query Settings] in the General settings for Couchbase Server. -* To set a memory quota with the REST API, see xref:settings:query-settings.adoc#queryMemoryQuota[queryMemoryQuota] in Query Settings and Parameters. +* To set a memory quota with the REST API, see the cluster-level xref:n1ql:n1ql-manage/query-settings.adoc#queryMemoryQuota[queryMemoryQuota] setting. * To set a memory quota with the CLI, see xref:cli:cbcli/couchbase-cli-setting-query.adoc[setting-query] in the CLI Reference. |=== diff --git a/modules/n1ql/pages/n1ql-language-reference/prepare.adoc b/modules/n1ql/pages/n1ql-language-reference/prepare.adoc index bedfde4c4..674d42c1f 100644 --- a/modules/n1ql/pages/n1ql-language-reference/prepare.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/prepare.adoc @@ -197,7 +197,7 @@ The process is similar to creating a prepared statement without a local name: The auto-prepare feature is inactive by default. You can turn the auto-prepare feature on or off using the `auto-prepare` service-level query setting. -For more details, refer to xref:settings:query-settings.adoc#auto-prepare[Query Settings]. +For more details, refer to xref:n1ql:n1ql-manage/query-settings.adoc#auto-prepare[]. Auto-prepare is disabled for {sqlpp} requests which contain parameters, if they do not use the PREPARE statement. @@ -214,7 +214,7 @@ You can use this when you need to execute the prepared statement again. The auto-execute feature is inactive by default. You can turn the auto-execute feature on or off using the `auto_execute` request-level query setting. -For more details, refer to xref:settings:query-settings.adoc#auto_execute[Query Settings]. +For more details, refer to xref:n1ql:n1ql-manage/query-settings.adoc#auto_execute[]. The auto-execute feature only works for {sqlpp} requests which actually contain the PREPARE statement. Prepared statements created by the <> feature are not executed by the auto-execute feature. diff --git a/modules/n1ql/pages/n1ql-language-reference/time-series.adoc b/modules/n1ql/pages/n1ql-language-reference/time-series.adoc index 7b0b6ccbf..aa3ddd1e4 100644 --- a/modules/n1ql/pages/n1ql-language-reference/time-series.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/time-series.adoc @@ -15,7 +15,7 @@ :import-documents: xref:manage:import-documents/import-documents.adoc :bucket-expiration: xref:learn:data/expiration.adoc :document-expiration: xref:java-sdk:howtos:kv-operations.adoc#document-expiration -:preserve_expiration: xref:settings:query-settings.adoc#preserve_expiration +:preserve_expiration: xref:n1ql:n1ql-manage/query-settings.adoc#preserve_expiration :n1ql-language-reference: xref:n1ql-language-reference :update: {n1ql-language-reference}/update.adoc :insert: {n1ql-language-reference}/insert.adoc diff --git a/modules/n1ql/pages/n1ql-language-reference/transactions.adoc b/modules/n1ql/pages/n1ql-language-reference/transactions.adoc index 222a70d05..d6c6706a2 100644 --- a/modules/n1ql/pages/n1ql-language-reference/transactions.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/transactions.adoc @@ -30,27 +30,27 @@ :n1ql-rest-api: xref:n1ql:n1ql-rest-api/index.adoc // Settings cross-references -:txid: xref:settings:query-settings.adoc#txid -:tximplicit: xref:settings:query-settings.adoc#tximplicit -:txstmtnum: xref:settings:query-settings.adoc#txstmtnum -:kvtimeout: xref:settings:query-settings.adoc#kvtimeout -:txtimeout_req: xref:settings:query-settings.adoc#txtimeout_req -:txtimeout-srv: xref:settings:query-settings.adoc#txtimeout-srv -:queryTxTimeout: xref:settings:query-settings.adoc#queryTxTimeout -:atrcollection_req: xref:settings:query-settings.adoc#atrcollection_req -:atrcollection-srv: xref:settings:query-settings.adoc#atrcollection-srv -:cleanupclientattempts: xref:settings:query-settings.adoc#cleanupclientattempts -:cleanuplostattempts: xref:settings:query-settings.adoc#cleanuplostattempts -:cleanupwindow: xref:settings:query-settings.adoc#cleanupwindow -:queryCleanupClientAttempts: xref:settings:query-settings.adoc#queryCleanupClientAttempts -:queryCleanupLostAttempts: xref:settings:query-settings.adoc#queryCleanupLostAttempts -:queryCleanupWindow: xref:settings:query-settings.adoc#queryCleanupWindow -:numatrs_req: xref:settings:query-settings.adoc#numatrs_req -:numatrs-srv: xref:settings:query-settings.adoc#numatrs-srv -:queryNumAtrs: xref:settings:query-settings.adoc#queryNumAtrs -:scan_consistency: xref:settings:query-settings.adoc#scan_consistency -:durability_level: xref:settings:query-settings.adoc#durability_level -:transactional-scan-consistency: xref:settings:query-settings.adoc#transactional-scan-consistency +:txid: xref:n1ql:n1ql-manage/query-settings.adoc#txid +:tximplicit: xref:n1ql:n1ql-manage/query-settings.adoc#tximplicit +:txstmtnum: xref:n1ql:n1ql-manage/query-settings.adoc#txstmtnum +:kvtimeout: xref:n1ql:n1ql-manage/query-settings.adoc#kvtimeout +:txtimeout_req: xref:n1ql:n1ql-manage/query-settings.adoc#txtimeout_req +:txtimeout-srv: xref:n1ql:n1ql-manage/query-settings.adoc#txtimeout-srv +:queryTxTimeout: xref:n1ql:n1ql-manage/query-settings.adoc#queryTxTimeout +:atrcollection_req: xref:n1ql:n1ql-manage/query-settings.adoc#atrcollection_req +:atrcollection-srv: xref:n1ql:n1ql-manage/query-settings.adoc#atrcollection-srv +:cleanupclientattempts: xref:n1ql:n1ql-manage/query-settings.adoc#cleanupclientattempts +:cleanuplostattempts: xref:n1ql:n1ql-manage/query-settings.adoc#cleanuplostattempts +:cleanupwindow: xref:n1ql:n1ql-manage/query-settings.adoc#cleanupwindow +:queryCleanupClientAttempts: xref:n1ql:n1ql-manage/query-settings.adoc#queryCleanupClientAttempts +:queryCleanupLostAttempts: xref:n1ql:n1ql-manage/query-settings.adoc#queryCleanupLostAttempts +:queryCleanupWindow: xref:n1ql:n1ql-manage/query-settings.adoc#queryCleanupWindow +:numatrs_req: xref:n1ql:n1ql-manage/query-settings.adoc#numatrs_req +:numatrs-srv: xref:n1ql:n1ql-manage/query-settings.adoc#numatrs-srv +:queryNumAtrs: xref:n1ql:n1ql-manage/query-settings.adoc#queryNumAtrs +:scan_consistency: xref:n1ql:n1ql-manage/query-settings.adoc#scan_consistency +:durability_level: xref:n1ql:n1ql-manage/query-settings.adoc#durability_level +:transactional-scan-consistency: xref:n1ql:n1ql-manage/query-settings.adoc#transactional-scan-consistency // Related links :begin-transaction: xref:n1ql-language-reference/begin-transaction.adoc diff --git a/modules/n1ql/pages/n1ql-language-reference/update.adoc b/modules/n1ql/pages/n1ql-language-reference/update.adoc index d257a6871..4a86d6540 100644 --- a/modules/n1ql/pages/n1ql-language-reference/update.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/update.adoc @@ -10,7 +10,7 @@ :meta: xref:n1ql-language-reference/metafun.adoc#meta :returning-clause: xref:n1ql-language-reference/insert.adoc#returning-clause :use-keys-clause: xref:n1ql-language-reference/hints.adoc#use-keys-clause -:preserve_expiration: xref:settings:query-settings.adoc#preserve_expiration +:preserve_expiry: xref:n1ql:n1ql-manage/query-settings.adoc#preserve_expiry :from: xref:n1ql-language-reference/from.adoc :from-keyspace-ref: {from}#from-keyspace-ref @@ -178,7 +178,7 @@ expiration:: An integer, or an expression resolving to an integer, representing the {document-expiration}[document expiration] in seconds. [NOTE] -If the document expiration is not specified, the document expiration is set according to the request-level {preserve_expiration}[preserve_expiration] parameter. +If the document expiration is not specified, the document expiration is set according to the request-level {preserve_expiry}[preserve_expiry] parameter. If this is `true`, the existing document expiration is preserved; if `false`, the document expiration defaults to `0`, meaning the document expiration is the same as the {bucket-expiration}[bucket or collection expiration]. [[unset-clause]] @@ -202,7 +202,7 @@ update-for:: <> icon:caret-down[] [NOTE] You cannot use the UNSET clause to unset the document expiration. To unset the document expiration, set the document expiration to `0`. -Alternatively, if the request-level {preserve_expiration}[preserve_expiration] parameter is set to `false`, simply update the document without specifying the document expiration. +Alternatively, if the request-level {preserve_expiry}[preserve_expiry] parameter is set to `false`, simply update the document without specifying the document expiration. [[update-for]] === FOR Clause @@ -387,7 +387,7 @@ include::example$dml/update-set-expire.n1ql[] include::example$dml/update-preserve-expire.n1ql[] ---- -Note that it is possible to preserve the document expiration using the request-level {preserve_expiration}[preserve_expiration] parameter. +Note that it is possible to preserve the document expiration using the request-level {preserve_expiry}[preserve_expiry] parameter. ==== [[example-9]] @@ -402,7 +402,7 @@ Set the document expiration to 0 to unset the document expiration. include::example$dml/update-unset-expire.n1ql[] ---- -Alternatively, if the request-level {preserve_expiration}[preserve_expiration] parameter is set to `false`, and you update the document without specifying the document expiration, the document expiration defaults to 0. +Alternatively, if the request-level {preserve_expiry}[preserve_expiry] parameter is set to `false`, and you update the document without specifying the document expiration, the document expiration defaults to 0. .Query [source,sqlpp] diff --git a/modules/n1ql/pages/n1ql-language-reference/upsert.adoc b/modules/n1ql/pages/n1ql-language-reference/upsert.adoc index 6e8c2d4ed..2333b03dc 100644 --- a/modules/n1ql/pages/n1ql-language-reference/upsert.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/upsert.adoc @@ -9,7 +9,7 @@ :logical-hierarchy: xref:n1ql-intro/sysinfo.adoc#logical-hierarchy :paths: xref:n1ql-intro/queriesandresults.adoc#paths :document-expiration: xref:java-sdk:howtos:kv-operations.adoc#document-expiration -:preserve_expiration: xref:settings:query-settings.adoc#preserve_expiration +:preserve_expiry: xref:n1ql:n1ql-manage/query-settings.adoc#preserve_expiry :from: xref:n1ql-language-reference/from.adoc :from-keyspace-ref: {from}#from-keyspace-ref @@ -181,7 +181,7 @@ Also enables you to set the {document-expiration}[expiration] of the upserted do For details, refer to {values-clause}[VALUES Clause]. [NOTE] -When updating a document, if the document expiration is not specified, the document expiration is set according to the request-level {preserve_expiration}[preserve_expiration] parameter. +When updating a document, if the document expiration is not specified, the document expiration is set according to the request-level {preserve_expiry}[preserve_expiry] parameter. If this is `true`, the existing document expiration is preserved; if `false`, the document expiration defaults to `0`, meaning the document expiration is the same as the {bucket-expiration}[bucket or collection expiration]. [[insert-select]] @@ -199,7 +199,7 @@ Also enables you to set the {document-expiration}[expiration] of the upserted do For details, refer to {insert-select}[Insert Select]. [NOTE] -When updating a document, if the document expiration is not specified, the document expiration is set according to the request-level {preserve_expiration}[preserve_expiration] parameter. +When updating a document, if the document expiration is not specified, the document expiration is set according to the request-level {preserve_expiry}[preserve_expiry] parameter. If this is `true`, the existing document expiration is preserved; if `false`, the document expiration defaults to `0`, meaning the document expiration is the same as the {bucket-expiration}[bucket or collection expiration]. //// diff --git a/modules/n1ql/pages/admin.adoc b/modules/n1ql/pages/n1ql-manage/index.adoc similarity index 96% rename from modules/n1ql/pages/admin.adoc rename to modules/n1ql/pages/n1ql-manage/index.adoc index bb765fc34..6acdbdb92 100644 --- a/modules/n1ql/pages/admin.adoc +++ b/modules/n1ql/pages/n1ql-manage/index.adoc @@ -43,4 +43,4 @@ You can monitor and manage queries using the Couchbase Web Console, the command 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[] +* xref:n1ql:n1ql-manage/query-settings.adoc[] diff --git a/modules/n1ql/pages/n1ql-manage/query-settings.adoc b/modules/n1ql/pages/n1ql-manage/query-settings.adoc new file mode 100644 index 000000000..57f24c6db --- /dev/null +++ b/modules/n1ql/pages/n1ql-manage/query-settings.adoc @@ -0,0 +1,609 @@ += Configure Queries +:description: You can configure the Query service using cluster-level query settings, node-level query settings, and request-level query parameters. +:page-aliases: manage:manage-settings/query-settings, settings:query-settings +:tabs: + +// External cross-references +:rest-cluster-query-settings: xref:rest-api:rest-cluster-query-settings.adoc +:general-settings-query-settings: xref:manage:manage-settings/general-settings.adoc#query-settings +:couchbase-cli-setting-query: xref:cli:cbcli/couchbase-cli-setting-query.adoc +:n1ql-rest-api-admin: xref:n1ql:n1ql-rest-api/admin.adoc +:n1ql-rest-api-index: xref:n1ql:n1ql-rest-api/index.adoc +:cbq-shell: xref:n1ql:n1ql-intro/cbq.adoc +:rest-intro: xref:rest-api:rest-intro.adoc +:query-preferences: xref:tools:query-workbench.adoc#query-preferences + +// Pass through HTML table styles for this page + +ifdef::basebackend-html[] +++++ + +++++ +endif::[] + +[abstract] +{description} + +include::ROOT:partial$component-signpost.adoc[] + +== Overview + +There are three ways of configuring the Query service: + +* Specify cluster-level settings for all nodes running the Query service in the cluster. +* Specify node-level settings for a single node running the Query service. +* Specify parameters for individual requests. + +You must set and use cluster-level query settings, node-level query settings, and request-level parameters in different ways. + +.Comparison of Query Settings and Parameters +[cols="216s,145,145,145,230"] +|=== +| | Set Per | Set By | Set On | Set Via + +| Cluster-level query settings ^[<>]^ +| Cluster +| System administrator +| Server side +| The CLI, cURL statements, or the UI + +| Node-level query settings ^[<>]^ +| Service Node +| System administrator +| Server side +| cURL statements + +| Request-level parameters +| Request (statement) +| Each user +| Client side +| `cbq` shell, cURL statements, client programming, or the UI +|=== + +[#service-level] +NOTE: Cluster-level settings and node-level settings are collectively referred to as [def]_service-level settings_. + +[#query-setting-levels-and-equivalents] +== How Setting Levels Interact + +Some query settings are cluster-level, node-level, or request-level only. +Other query settings apply to more than one level with slightly different names. + +[#cluster-level-and-node-level] +=== How Cluster-Level Settings Affect Node-Level Settings + +If a cluster-level setting has an equivalent node-level setting, then changing the cluster-level setting overwrites the node-level setting for all Query nodes in the cluster. + +You can change a node-level setting for a single node to be different to the equivalent cluster-level setting. +Changing the node-level setting does not affect the equivalent cluster-level setting. +However, you should note that the node-level setting may be overwritten by subsequent changes at the cluster-level. +In particular, specifying query settings via the CLI or the UI makes changes at the cluster-level. + +[#node-level-and-request-level] +=== How Node-Level Settings Affect Request-Level Parameters + +If a request-level parameter has an equivalent node-level setting, the node-level setting _usually_ acts as the default for the request-level parameter, as described in the tables below. +Setting a request-level parameter overrides the equivalent node-level setting. + +Furthermore, for numeric values, if a request-level parameter has an equivalent node-level setting, the node-level setting dictates the upper-bound value of the request-level parameter. +For example, if the node-level `timeout` is set to 500, then the request-level parameter cannot be set to 501 or any value higher. + +== All Query Settings + +.Single-Level Settings -- Not Equivalent +[.fixed-width, cols="1,1,1"] +|=== +| Cluster-Level Only Settings | Node-Level Only Settings | Request-Level Only Parameters + +a| [%hardbreaks] +<> +<> +<> + +a| [%hardbreaks] +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> + +a| [%hardbreaks] +<> +<> +<> +<> +<> +<> +<> (deprecated) +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +|=== + +.Equivalent Settings for Cluster-Level and Node-Level +[.fixed-width, cols="1,1,1"] +|=== +| Cluster-Level Name | Node-Level Name | Request-Level Name + +a| [%hardbreaks] +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> + +a| [%hardbreaks] +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> + +a| N/A +|=== + +.Equivalent Settings for Node-Level and Request-Level +[.fixed-width, cols="1,1,1"] +|=== +| Cluster-Level Name | Node-Level Name | Request-Level Name + +a| N/A + +a| [%hardbreaks] +<> +<> +<> +<> + +a| [%hardbreaks] +<> +<> +<> +<> +|=== + +.Equivalent Settings for Cluster-Level, Node-Level, and Request-Level +[.fixed-width, cols="1,1,1"] +|=== +| Cluster-Level Name | Node-Level Name | Request-Level Name + +a| [%hardbreaks] +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> + +a| [%hardbreaks] +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> + +a| [%hardbreaks] +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +|=== + +[[cluster-level-query-settings]] +== Cluster-Level Query Settings + +To set a cluster-level query setting, do one of the following: + +* Use the {general-settings-query-settings}[Advanced Query Settings] in the Couchbase Web Console. +* Use the {couchbase-cli-setting-query}[setting-query] command at the command line. +* Make a REST API call to the {rest-cluster-query-settings}[Query Settings REST API] (`/settings/querySettings` endpoint). + +[tabs] +==== +Web Console:: ++ +-- +To set cluster-level settings in the Web Console: + +. Go to menu:Settings[General] and click *Advanced Query Settings* to display the settings. + +. Specify the settings and click btn:[Save]. + +image::manage:manage-settings/query-settings-top.png["The top of the Advanced Query Settings",274,218] +-- + +Command Line:: ++ +-- +To set cluster-level settings at the command line, use the `couchbase-cli setting-query` command. + +''' + +The following example retrieves the current cluster-level settings: + +[source,sh] +---- +couchbase-cli setting-query -c http://localhost:8091 -u Administrator \ + -p password --get +---- + +The following example sets the cluster-level maximum parallelism and log level settings: + +[source,sh] +---- +couchbase-cli setting-query -c http://localhost:8091 -u Administrator \ + -p password --set --log-level debug --max-parallelism 4 +---- +-- + +REST API:: ++ +-- +To set cluster-level settings with the REST API, specify the parameters in the request body. + +''' + +The following example retrieves the current cluster-level settings: + +[source,sh] +---- +curl -v -u Administrator:password \ +http://localhost:8091/settings/querySettings +---- + +The following example sets the cluster-level maximum parallelism and log level settings: + +[source,sh] +---- +curl -v -X POST -u Administrator:password \ +http://localhost:8091/settings/querySettings \ +-d 'queryLogLevel=debug' \ +-d 'queryMaxParallelism=4' +---- +-- +==== + +The table below contains details of all cluster-level query settings. + +.Cluster-Level Query Settings +include::rest-api:partial$query-settings/definitions.adoc[tag=settings] + +[[_access]] +**Access** +include::rest-api:partial$query-settings/definitions.adoc[tag=access] + +[[service-level-query-settings]] +== Node-Level Query Settings + +To set a node-level query setting: + +* Make a REST API call to the {n1ql-rest-api-admin}[Admin REST API] (`/admin/settings` endpoint). + +You cannot set a query setting for an individual node using the Couchbase Web Console or the command line. + +[tabs] +==== +REST API:: ++ +-- +To set node-level settings with the REST API, specify the parameters in the request body. + +''' + +The following example retrieves the current node-level settings: + +[source,sh] +---- +include::example$settings/node-level-settings.sh[tag=curl] +---- + +The following example sets the node-level profile parameter: + +[source,sh] +---- +curl http://localhost:8093/admin/settings -u user:pword \ + -H 'Content-Type: application/json' \ + -d '{"profile": "phases"}' +---- + +For more examples, see xref:manage:monitor/monitoring-n1ql-query.adoc[]. +-- +==== + +The table below contains details of all node-level query settings. + +.Node-Level Query Settings +[[_settings]] +include::n1ql:partial$n1ql-rest-api/admin/definitions.adoc[tag=settings] + +[#section_nnj_sjk_k1b] +== Request-Level Parameters + +To set a request-level parameter, do one of the following: + +* Use the {query-preferences}[Run-Time Preferences] window in the Query Workbench. +* Use the {cbq-shell}[cbq] shell at the command line. +* Make a REST API call to the {n1ql-rest-api-index}[] (`/query/service` endpoint). +* Use an SDK client program. + +Generally, use the `cbq` shell or the Query Workbench as a sandbox to test queries on your local machine. +Use a REST API call or an SDK client program for your production queries. + +[tabs] +==== +Web Console:: ++ +-- +To set request-level preferences in the Query Workbench: + +. Go to menu:Query[Workbench] and click the cog icon icon:cog[] to display the Run-Time Preferences window. + +. Specify the preferences -- if a preference is not explicitly listed, click btn:[+] next to *Named Parameters* and add its name and value. + +. Click btn:[Save Preferences]. + +image::tools:query-workbench-preferences.png["The Run-Time Preferences window",266,350] + +For more examples, see the xref:guides:transactions.adoc#settings[Couchbase Transactions] guide. +-- + +Command Line:: ++ +-- +To set request-level parameters in `cbq`, use the `\SET` command. +The parameter name must be prefixed by a hyphen. + +''' + +The following example sets the request-level timeout, pretty-print, and max parallelism parameters, and runs a query: + +[source,sqlpp] +---- +\SET -timeout "30m"; +\SET -pretty true; +\SET -max_parallelism 3; +SELECT * FROM "world" AS hello; +---- + +For more examples, see xref:cli:cbq-tool.adoc#cbq-parameter-manipulation[Parameter Manipulation] in the cbq documentation. +-- + +REST API:: ++ +-- +To set request-level parameters with the REST API, specify the parameters in the request body or the query URI. + +''' + +The following example sets the request-level timeout, pretty-print, and max parallelism parameters, and runs a query: + +[source,sh] +---- +curl http://localhost:8093/query/service -u Administrator:password \ + -d 'statement=SELECT * FROM "world" AS hello; + & timeout=30m + & pretty=true + & max_parallelism=3' +---- + +For more examples, see the xref:n1ql:n1ql-rest-api/examplesrest.adoc[Query Service REST API examples]. +-- +==== + +The table below contains details of all request-level parameters, along with examples. + +.Request-Level Parameters +include::n1ql:partial$n1ql-rest-api/query/definitions.adoc[tag=settings] + +[[_credentials]] +**Credentials** +include::n1ql:partial$n1ql-rest-api/query/definitions.adoc[tag=credentials] + +[discrete,#transactional-scan-consistency] +===== Transactional Scan Consistency + +If the request contains a `BEGIN TRANSACTION` statement, or a DML statement with the <> parameter set to `true`, then the <> parameter sets the [def]__transactional scan consistency__. +If you specify a transactional scan consistency of `request_plus`, `statement_plus`, or `at_plus`, or if you specify no transactional scan consistency, the transactional scan consistency is set to `request_plus`; otherwise, the transactional scan consistency is set as specified. + +.Transactional scan consistency +[%header, cols="2"] +|=== +| Scan consistency at start of transaction +| Transactional scan consistency + +| Not set +| `request_plus` + +| `not_bounded` +| `not_bounded` + +| `request_plus` + + `statement_plus` + + `at_plus` +| `request_plus` +|=== + +Any DML statements within the transaction that have no scan consistency set will inherit from the transactional scan consistency. +Individual DML statements within the transaction may override the transactional scan consistency. +If you specify a scan consistency of `not_bounded` for a statement within the transaction, the scan consistency for the statement is set as specified. +When you specify a scan consistency of `request_plus`, `statement_plus`, or `at_plus` for a statement within the transaction, the scan consistency for the statement is set to `request_plus`. + +However, `request_plus` consistency is not supported for statements using a full-text index. +If any statement within the transaction uses a full-text index, by means of the SEARCH function or the Flex Index feature, the scan consistency is set to `not_bounded` for the duration of the full-text search. + +.Overriding the transactional scan consistency +[%header, cols="2"] +|=== +| Scan consistency for statement within transaction +| Inherited scan consistency + +| Not set +| Transactional scan consistency + + (`not_bounded` for full-text search) + +| `not_bounded` +| `not_bounded` + +| `request_plus` + + `statement_plus` + + `at_plus` +| `request_plus` + + (`not_bounded` for full-text search) +|=== + +[#section_srh_tlm_n1b] +== Named Parameters and Positional Parameters + +You can add placeholder parameters to a statement, so that you can safely supply variable values when you run the statement. +A placeholder parameter may be a named parameter or a positional parameter. + +* To add a named parameter to a query, enter a dollar sign `$` or an at sign `@` followed by the parameter name. + +* To add a positional parameter to a query, enter a dollar sign `$` or an at sign `@` followed by the number of the parameter, or enter a question mark `?`. + +To run a query containing placeholder parameters, you must supply values for the parameters. + +* The <> request-level parameter enables you to supply a value for a named parameter. +The name of this property is a dollar sign `$` or an at sign `@` followed by the parameter name. + +* The <> request-level parameter enables you to supply a list of values for positional parameters. + +You can supply the values for placeholder parameters using any of the methods used to specify <>. + +=== Examples + +include::ROOT:partial$query-context.adoc[tag=section] + +.Named Parameters +==== +The following query uses named parameter placeholders. +The parameter values are supplied using the cbq shell. + +[source,sqlpp] +---- +include::example$settings/param-names.n1ql[tags=**] +---- + +The named parameters and named parameter placeholders in this example use a mixture of `@` and `$` symbol prefixes. +You can use either of these symbols as preferred. +==== + +.Numbered Positional Parameters +==== +The following query uses numbered positional parameter placeholders. +The parameter values are supplied using the cbq shell. + +[source,sqlpp] +---- +include::example$settings/param-numbers.n1ql[tag=**] +---- + +In this case, the first positional parameter value is used for the placeholder numbered `$1`, the second positional parameter value is used for the placeholder numbered `@2`, and so on. + +The numbered positional parameter placeholders in this example use a mixture of `@` and `$` symbol prefixes. +You can use either of these symbols as preferred. +==== + +.Unnumbered Positional Parameters +==== +The following query uses unnumbered positional parameter placeholders. +The parameter values are supplied using the cbq shell. + +[source.no-callouts,sqlpp] +---- +include::example$settings/param-positions.n1ql[tag=**] +---- + +In this case, the first positional parameter value is used for the first `?` placeholder, the second positional parameter value is used for the second `?` placeholder, and so on. +==== + +For more details and examples, including examples using SDKs, see the xref:guides:prep-statements.adoc[] guide. + +== Related Links + +* For more details about the {sqlpp} REST API, refer to {n1ql-rest-api-index}[]. +* For more details about the Admin REST API, refer to {n1ql-rest-api-admin}[]. +* For more details about the Query Settings API, refer to {rest-cluster-query-settings}[]. +* For more details about API content and settings, refer to {rest-intro}[]. diff --git a/modules/n1ql/partials/n1ql-language-reference/transaction-id.adoc b/modules/n1ql/partials/n1ql-language-reference/transaction-id.adoc index 2182bc5b8..82abe32e2 100644 --- a/modules/n1ql/partials/n1ql-language-reference/transaction-id.adoc +++ b/modules/n1ql/partials/n1ql-language-reference/transaction-id.adoc @@ -1,4 +1,4 @@ -:txid: xref:settings:query-settings.adoc#txid +:txid: xref:n1ql:n1ql-manage/query-settings.adoc#txid If you are using the Query REST API, you must set the {txid}[txid] query parameter to specify the transaction ID. diff --git a/modules/n1ql/partials/nav.adoc b/modules/n1ql/partials/nav.adoc index d22df5869..c664ed7ca 100644 --- a/modules/n1ql/partials/nav.adoc +++ b/modules/n1ql/partials/nav.adoc @@ -32,13 +32,13 @@ *** 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-manage/index.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-manage/query-settings.adoc[] ** xref:n1ql:n1ql-language-reference/index.adoc[] *** xref:n1ql:n1ql-language-reference/conventions.adoc[] *** xref:n1ql:n1ql-language-reference/reservedwords.adoc[]