119 lines
3.4 KiB
Plaintext
119 lines
3.4 KiB
Plaintext
[[search-request-body]]
|
|
== Request Body Search
|
|
|
|
The search request can be executed with a search DSL, which includes the
|
|
<<query-dsl,Query DSL>>, within its body. Here is an
|
|
example:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
$ curl -XGET 'http://localhost:9200/twitter/tweet/_search' -d '{
|
|
"query" : {
|
|
"term" : { "user" : "kimchy" }
|
|
}
|
|
}
|
|
'
|
|
--------------------------------------------------
|
|
|
|
And here is a sample response:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
{
|
|
"_shards":{
|
|
"total" : 5,
|
|
"successful" : 5,
|
|
"failed" : 0
|
|
},
|
|
"hits":{
|
|
"total" : 1,
|
|
"hits" : [
|
|
{
|
|
"_index" : "twitter",
|
|
"_type" : "tweet",
|
|
"_id" : "1",
|
|
"_source" : {
|
|
"user" : "kimchy",
|
|
"postDate" : "2009-11-15T14:12:12",
|
|
"message" : "trying out Elasticsearch"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
|
|
[float]
|
|
=== Parameters
|
|
|
|
[cols="<,<",options="header",]
|
|
|=======================================================================
|
|
|Name |Description
|
|
|`timeout` |A search timeout, bounding the search request to be executed
|
|
within the specified time value and bail with the hits accumulated up to
|
|
that point when expired. Defaults to no timeout. See <<time-units>>.
|
|
|
|
|`from` |The starting from index of the hits to return. Defaults to `0`.
|
|
|
|
|`size` |The number of hits to return. Defaults to `10`.
|
|
|
|
|`search_type` |The type of the search operation to perform. Can be
|
|
`dfs_query_then_fetch`, `dfs_query_and_fetch`, `query_then_fetch`,
|
|
`query_and_fetch`. Defaults to `query_then_fetch`. See
|
|
<<search-request-search-type,_Search Type_>> for
|
|
more details on the different types of search that can be performed.
|
|
|
|
|coming[1.4.0] `terminate_after` |The maximum number of documents to collect for
|
|
each shard, upon reaching which the query execution will terminate early.
|
|
If set, the response will have a boolean field `terminated_early` to
|
|
indicate whether the query execution has actually terminated_early.
|
|
Defaults to no terminate_after.
|
|
|=======================================================================
|
|
|
|
Out of the above, the `search_type` is the one that can not be passed
|
|
within the search request body, and in order to set it, it must be
|
|
passed as a request REST parameter.
|
|
|
|
The rest of the search request should be passed within the body itself.
|
|
The body content can also be passed as a REST parameter named `source`.
|
|
|
|
Both HTTP GET and HTTP POST can be used to execute search with body.
|
|
Since not all clients support GET with body, POST is allowed as well.
|
|
|
|
|
|
include::request/query.asciidoc[]
|
|
|
|
include::request/from-size.asciidoc[]
|
|
|
|
include::request/sort.asciidoc[]
|
|
|
|
include::request/source-filtering.asciidoc[]
|
|
|
|
include::request/fields.asciidoc[]
|
|
|
|
include::request/script-fields.asciidoc[]
|
|
|
|
include::request/fielddata-fields.asciidoc[]
|
|
|
|
include::request/post-filter.asciidoc[]
|
|
|
|
include::request/highlighting.asciidoc[]
|
|
|
|
include::request/rescore.asciidoc[]
|
|
|
|
include::request/search-type.asciidoc[]
|
|
|
|
include::request/scroll.asciidoc[]
|
|
|
|
include::request/preference.asciidoc[]
|
|
|
|
include::request/explain.asciidoc[]
|
|
|
|
include::request/version.asciidoc[]
|
|
|
|
include::request/index-boost.asciidoc[]
|
|
|
|
include::request/min-score.asciidoc[]
|
|
|
|
include::request/named-queries-and-filters.asciidoc[]
|