[DOCS] Reorganised common API conventions

This commit is contained in:
Clinton Gormley 2013-10-13 16:46:56 +02:00
parent 4316b13880
commit 9a062e465c
7 changed files with 94 additions and 52 deletions

View File

@ -1,8 +1,44 @@
[[api-common-options]] [[api-conventions]]
= Common API Options = API Conventions
[partintro]
--
The *elasticsearch* REST APIs are exposed using:
* <<modules-http,JSON over HTTP>>,
* <<modules-thrift,thrift>>,
* <<modules-memcached,memcached>>.
The conventions listed in this chapter can be applied throughout the REST
API, unless otherwise specified.
* <<multi-index>>
* <<common-options>>
--
[[multi-index]]
== Multiple Indices
Most APIs that refer to an `index` paramter support execution across multiple indices,
using simple `test1,test2,test3` notation (or `_all` for all indices). It also
support wildcards, for example: `test*`, and the ability to "add" (`+`)
and "remove" (`-`), for example: `+test*,-test3`.
All multi indices API support the `ignore_indices` option. Setting it to
`missing` will cause indices that do not exists to be ignored from the
execution. By default, when its not set, the request will fail.
NOTE: Single index APIs such as the <<docs>> and the
<<indices-aliases,single-index `alias` APIs>> do not support multiple indices.
[[common-options]]
== Common options
The following options can be applied to all of the REST APIs.
[float] [float]
== Pretty Results === Pretty Results
When appending `?pretty=true` to any request made, the JSON returned When appending `?pretty=true` to any request made, the JSON returned
will be pretty formatted (use it for debugging only!). Another option is will be pretty formatted (use it for debugging only!). Another option is
@ -11,7 +47,7 @@ to set `format=yaml` which will cause the result to be returned in the
[float] [float]
== Human readable output === Human readable output
Statistics are returned in a format suitable for humans Statistics are returned in a format suitable for humans
(eg `"exists_time": "1h"` or `"size": "1kb"`) and for computers (eg `"exists_time": "1h"` or `"size": "1kb"`) and for computers
@ -23,13 +59,13 @@ consumption. The default for the `human` flag is
`false`. added[1.00.Beta,Previously defaulted to `true`] `false`. added[1.00.Beta,Previously defaulted to `true`]
[float] [float]
== Parameters === Parameters
Rest parameters (when using HTTP, map to HTTP URL parameters) follow the Rest parameters (when using HTTP, map to HTTP URL parameters) follow the
convention of using underscore casing. convention of using underscore casing.
[float] [float]
== Boolean Values === Boolean Values
All REST APIs parameters (both request parameters and JSON body) support All REST APIs parameters (both request parameters and JSON body) support
providing boolean "false" as the values: `false`, `0`, `no` and `off`. providing boolean "false" as the values: `false`, `0`, `no` and `off`.
@ -37,13 +73,13 @@ All other values are considered "true". Note, this is not related to
fields within a document indexed treated as boolean fields. fields within a document indexed treated as boolean fields.
[float] [float]
== Number Values === Number Values
All REST APIs support providing numbered parameters as `string` on top All REST APIs support providing numbered parameters as `string` on top
of supporting the native JSON number types. of supporting the native JSON number types.
[float] [float]
== Result Casing === Result Casing
All REST APIs accept the `case` parameter. When set to `camelCase`, all All REST APIs accept the `case` parameter. When set to `camelCase`, all
field names in the result will be returned in camel casing, otherwise, field names in the result will be returned in camel casing, otherwise,
@ -51,13 +87,13 @@ underscore casing will be used. Note, this does not apply to the source
document indexed. document indexed.
[float] [float]
== JSONP === JSONP
All REST APIs accept a `callback` parameter resulting in a All REST APIs accept a `callback` parameter resulting in a
http://en.wikipedia.org/wiki/JSONP[JSONP] result. http://en.wikipedia.org/wiki/JSONP[JSONP] result.
[float] [float]
== Request body in query string === Request body in query string
For libraries that don't accept a request body for non-POST requests, For libraries that don't accept a request body for non-POST requests,
you can pass the request body as the `source` query string parameter you can pass the request body as the `source` query string parameter

View File

@ -4,7 +4,7 @@
[partintro] [partintro]
-- --
["float",id="cluster-nodes"] ["float",id="cluster-nodes"]
== Nodes == Node specification
Most cluster level APIs allow to specify which nodes to execute on (for Most cluster level APIs allow to specify which nodes to execute on (for
example, getting the node stats for a node). Nodes can be identified in example, getting the node stats for a node). Nodes can be identified in
@ -14,7 +14,7 @@ example, here are some sample executions of nodes info:
[source,js] [source,js]
-------------------------------------------------- --------------------------------------------------
# Local # Local
curl localhost:9200/_cluster/nodes/_local curl localhost:9200/_cluster/nodes/_local
# Address # Address
curl localhost:9200/_cluster/nodes/10.0.0.3,10.0.0.4 curl localhost:9200/_cluster/nodes/10.0.0.3,10.0.0.4

View File

@ -4,11 +4,22 @@
[partintro] [partintro]
-- --
This section describes the REST APIs *elasticsearch* provides (mainly) This section describes the following CRUD APIs:
using JSON. The API is exposed using
<<modules-http,HTTP>>, .Single document APIs
<<modules-thrift,thrift>>, * <<docs-index_>>
<<modules-memcached,memcached>>. * <<docs-get>>
* <<docs-delete>>
* <<docs-update>>
.Multi-document APIs
* <<docs-multi-get>>
* <<docs-bulk>>
* <<docs-bulk-udp>>
* <<docs-delete-by-query>>
NOTE: All CRUD APIs are single-index APIs. The `index` parameter accepts a single
index name, or an `alias` which points to a single index.
-- --

View File

@ -3,6 +3,8 @@
include::setup.asciidoc[] include::setup.asciidoc[]
include::api-conventions.asciidoc[]
include::docs.asciidoc[] include::docs.asciidoc[]
include::search.asciidoc[] include::search.asciidoc[]
@ -21,7 +23,5 @@ include::modules.asciidoc[]
include::index-modules.asciidoc[] include::index-modules.asciidoc[]
include::common-options.asciidoc[]
include::glossary.asciidoc[] include::glossary.asciidoc[]

View File

@ -3,17 +3,9 @@
[partintro] [partintro]
-- --
["float",id="search-multi-index"]
== Multiple Indices
All search APIs support execution across multiple indices, using simple Most search APIs are <<search-multi-index-type,multi-index&#44; multi-type>>, with the
`test1,test2,test3` notation (or `_all` for all indices). It also exception of the <<search-explain>> and <<search-percolate>> endpoints.
support wildcards, for example: `test*`, and the ability to "add" (`+`)
and "remove" (`-`), for example: `+test*,-test3`.
All multi indices API support the `ignore_indices` option. Setting it to
`missing` will cause indices that do not exists to be ignored from the
execution. By default, when its not set, the request will fail.
[float] [float]
[[search-routing]] [[search-routing]]

View File

@ -3,7 +3,10 @@
The explain api computes a score explanation for a query and a specific The explain api computes a score explanation for a query and a specific
document. This can give useful feedback whether a document matches or document. This can give useful feedback whether a document matches or
didn't match a specific query. didn't match a specific query.
The `index` and `type` parameters expect a single index and a single
type respectively.
[float] [float]
=== Usage === Usage
@ -61,45 +64,45 @@ This will yield the same result as the previous request.
[horizontal] [horizontal]
`fields`:: `fields`::
Allows to control which fields to return as part of the Allows to control which fields to return as part of the
document explained (support `_source` for the full document). document explained (support `_source` for the full document).
`routing`:: `routing`::
Controls the routing in the case the routing was used Controls the routing in the case the routing was used
during indexing. during indexing.
`parent`:: `parent`::
Same effect as setting the routing parameter. Same effect as setting the routing parameter.
`preference`:: `preference`::
Controls on which shard the explain is executed. Controls on which shard the explain is executed.
`source`:: `source`::
Allows the data of the request to be put in the query Allows the data of the request to be put in the query
string of the url. string of the url.
`q`:: `q`::
The query string (maps to the query_string query). The query string (maps to the query_string query).
`df`:: `df`::
The default field to use when no field prefix is defined within The default field to use when no field prefix is defined within
the query. Defaults to _all field. the query. Defaults to _all field.
`analyzer`:: `analyzer`::
The analyzer name to be used when analyzing the query The analyzer name to be used when analyzing the query
string. Defaults to the analyzer of the _all field. string. Defaults to the analyzer of the _all field.
`analyze_wildcard`:: `analyze_wildcard`::
Should wildcard and prefix queries be analyzed or Should wildcard and prefix queries be analyzed or
not. Defaults to false. not. Defaults to false.
`lowercase_expanded_terms`:: `lowercase_expanded_terms`::
Should terms be automatically lowercased Should terms be automatically lowercased
or not. Defaults to true. or not. Defaults to true.
`lenient`:: `lenient`::
If set to true will cause format based failures (like If set to true will cause format based failures (like
providing text to a numeric field) to be ignored. Defaults to false. providing text to a numeric field) to be ignored. Defaults to false.
`default_operator`:: `default_operator`::
The default operator to be used, can be AND or The default operator to be used, can be AND or
OR. Defaults to OR. OR. Defaults to OR.

View File

@ -11,7 +11,7 @@ that match the query. The query can either be provided using a simple
All search APIs can be applied across multiple types within an index, and All search APIs can be applied across multiple types within an index, and
across multiple indices with support for the across multiple indices with support for the
<<search-multi-index,multi index syntax>>. For <<multi-index,multi index syntax>>. For
example, we can search on all documents across all types within the example, we can search on all documents across all types within the
twitter index: twitter index: