The search request can be executed with a search DSL, which includes the Query DSL, within its body. Here is an example:
$ curl -XGET 'http://localhost:9200/twitter/tweet/_search' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}
'
And here is a sample response:
{
:ref:`_shards <es-guide-reference-api-search-{>` s <es-guide-reference-api-search-{>`
"total" : 5,
"successful" : 5,
"failed" : 0
},
:ref:`hits <es-guide-reference-api-search-{>` s <es-guide-reference-api-search-{>`
"total" : 1,
"hits" : [
{
"_index" : "twitter",
"_type" : "tweet",
"_id" : "1",
"_source" : {
"user" : "kimchy",
"postDate" : "2009-11-15T14:12:12",
"message" : "trying out Elastic Search"
}
}
]
}
}
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. |
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. |
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.