CONSOLEify some search docs
* search/search.asciidoc * search/request-body.asciidoc * search/explain.asciidoc * search/search-shards.asciidoc
This commit is contained in:
parent
863a199c42
commit
2d568ece2d
|
@ -15,35 +15,70 @@ Full query example:
|
|||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
curl -XGET 'localhost:9200/twitter/tweet/1/_explain' -d '{
|
||||
GET /twitter/tweet/0/_explain
|
||||
{
|
||||
"query" : {
|
||||
"term" : { "message" : "search" }
|
||||
"match" : { "message" : "elasticsearch" }
|
||||
}
|
||||
}'
|
||||
}
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[setup:twitter]
|
||||
|
||||
This will yield the following result:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
{
|
||||
"matches" : true,
|
||||
"_index" : "twitter",
|
||||
"_type" : "tweet",
|
||||
"_id" : "0",
|
||||
"matched" : true,
|
||||
"explanation" : {
|
||||
"value" : 0.15342641,
|
||||
"description" : "fieldWeight(message:search in 0), product of:",
|
||||
"value" : 1.55077,
|
||||
"description" : "sum of:",
|
||||
"details" : [ {
|
||||
"value" : 1.0,
|
||||
"description" : "tf(termFreq(message:search)=1)"
|
||||
"value" : 1.55077,
|
||||
"description" : "weight(message:elasticsearch in 0) [PerFieldSimilarity], result of:",
|
||||
"details" : [ {
|
||||
"value" : 1.55077,
|
||||
"description" : "score(doc=0,freq=1.0 = termFreq=1.0\n), product of:",
|
||||
"details" : [ {
|
||||
"value" : 1.3862944,
|
||||
"description" : "idf(docFreq=1, docCount=5)",
|
||||
"details" : [ ]
|
||||
}, {
|
||||
"value" : 1.1186441,
|
||||
"description" : "tfNorm, computed from:",
|
||||
"details" : [
|
||||
{ "value" : 1.0, "description" : "termFreq=1.0", "details" : [ ] },
|
||||
{ "value" : 1.2, "description" : "parameter k1", "details" : [ ] },
|
||||
{ "value" : 0.75, "description" : "parameter b", "details" : [ ] },
|
||||
{ "value" : 5.4, "description" : "avgFieldLength", "details" : [ ] },
|
||||
{ "value" : 4.0, "description" : "fieldLength", "details" : [ ] }
|
||||
]
|
||||
} ]
|
||||
} ]
|
||||
}, {
|
||||
"value" : 0.30685282,
|
||||
"description" : "idf(docFreq=1, maxDocs=1)"
|
||||
}, {
|
||||
"value" : 0.5,
|
||||
"description" : "fieldNorm(field=message, doc=0)"
|
||||
"value" : 0.0,
|
||||
"description" : "match on required clause, product of:",
|
||||
"details" : [ {
|
||||
"value" : 0.0,
|
||||
"description" : "# clause",
|
||||
"details" : [ ]
|
||||
}, {
|
||||
"value" : 1.0,
|
||||
"description" : "_type:tweet, product of:",
|
||||
"details" : [
|
||||
{ "value" : 1.0, "description" : "boost", "details" : [ ] },
|
||||
{ "value" : 1.0, "description" : "queryNorm", "details" : [ ] }
|
||||
]
|
||||
} ]
|
||||
} ]
|
||||
}
|
||||
}
|
||||
--------------------------------------------------
|
||||
// TESTRESPONSE
|
||||
|
||||
There is also a simpler way of specifying the query via the `q`
|
||||
parameter. The specified `q` parameter value is then parsed as if the
|
||||
|
@ -52,8 +87,10 @@ explain api:
|
|||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
curl -XGET 'localhost:9200/twitter/tweet/1/_explain?q=message:search'
|
||||
GET /twitter/tweet/0/_explain?q=message:search
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[setup:twitter]
|
||||
|
||||
This will yield the same result as the previous request.
|
||||
|
||||
|
|
|
@ -7,41 +7,49 @@ example:
|
|||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XGET 'http://localhost:9200/twitter/tweet/_search' -d '{
|
||||
GET /twitter/tweet/_search
|
||||
{
|
||||
"query" : {
|
||||
"term" : { "user" : "kimchy" }
|
||||
}
|
||||
}
|
||||
'
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[setup:twitter]
|
||||
|
||||
And here is a sample response:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
{
|
||||
"took": 1,
|
||||
"timed_out": false,
|
||||
"_shards":{
|
||||
"total" : 5,
|
||||
"successful" : 5,
|
||||
"total" : 1,
|
||||
"successful" : 1,
|
||||
"failed" : 0
|
||||
},
|
||||
"hits":{
|
||||
"total" : 1,
|
||||
"max_score": 1.3862944,
|
||||
"hits" : [
|
||||
{
|
||||
"_index" : "twitter",
|
||||
"_type" : "tweet",
|
||||
"_id" : "1",
|
||||
"_id" : "0",
|
||||
"_score": 1.3862944,
|
||||
"_source" : {
|
||||
"user" : "kimchy",
|
||||
"postDate" : "2009-11-15T14:12:12",
|
||||
"message" : "trying out Elasticsearch"
|
||||
"message": "trying out Elasticsearch",
|
||||
"date" : "2009-11-15T14:12:12",
|
||||
"likes" : 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
--------------------------------------------------
|
||||
// TESTRESPONSE[s/"took": 1/"took": $body.took/]
|
||||
|
||||
[float]
|
||||
=== Parameters
|
||||
|
@ -105,8 +113,10 @@ matching document was found (per shard).
|
|||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XGET 'http://localhost:9200/_search?q=tag:wow&size=0&terminate_after=1'
|
||||
GET /_search?q=message:elasticsearch&size=0&terminate_after=1
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[setup:twitter]
|
||||
|
||||
The response will not contain any hits as the `size` was set to `0`. The
|
||||
`hits.total` will be either equal to `0`, indicating that there were no
|
||||
|
@ -128,12 +138,12 @@ be set to `true` in the response.
|
|||
},
|
||||
"hits": {
|
||||
"total": 1,
|
||||
"max_score": 0,
|
||||
"max_score": 0.0,
|
||||
"hits": []
|
||||
}
|
||||
}
|
||||
--------------------------------------------------
|
||||
|
||||
// TESTRESPONSE[s/"took": 3/"took": $body.took/]
|
||||
|
||||
include::request/query.asciidoc[]
|
||||
|
||||
|
|
|
@ -14,49 +14,27 @@ Full example:
|
|||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
curl -XGET 'localhost:9200/twitter/_search_shards'
|
||||
GET /twitter/_search_shards
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[s/^/PUT twitter\n/]
|
||||
|
||||
This will yield the following result:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
{
|
||||
"nodes": {
|
||||
"JklnKbD7Tyqi9TP3_Q_tBg": {
|
||||
"name": "Rl'nnd",
|
||||
"transport_address": "inet[/192.168.1.113:9300]"
|
||||
}
|
||||
},
|
||||
"nodes": ...,
|
||||
"shards": [
|
||||
[
|
||||
{
|
||||
"index": "twitter",
|
||||
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
|
||||
"primary": true,
|
||||
"relocating_node": null,
|
||||
"shard": 3,
|
||||
"state": "STARTED"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"index": "twitter",
|
||||
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
|
||||
"primary": true,
|
||||
"relocating_node": null,
|
||||
"shard": 4,
|
||||
"state": "STARTED"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"index": "twitter",
|
||||
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
|
||||
"primary": true,
|
||||
"relocating_node": null,
|
||||
"shard": 0,
|
||||
"state": "STARTED"
|
||||
"state": "STARTED",
|
||||
"allocation_id": {"id":"0TvkCyF7TAmM1wHP4a42-A"},
|
||||
"relocating_node": null
|
||||
}
|
||||
],
|
||||
[
|
||||
|
@ -64,52 +42,81 @@ This will yield the following result:
|
|||
"index": "twitter",
|
||||
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
|
||||
"primary": true,
|
||||
"relocating_node": null,
|
||||
"shard": 2,
|
||||
"state": "STARTED"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"index": "twitter",
|
||||
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
|
||||
"primary": true,
|
||||
"relocating_node": null,
|
||||
"shard": 1,
|
||||
"state": "STARTED"
|
||||
"state": "STARTED",
|
||||
"allocation_id": {"id":"fMju3hd1QHWmWrIgFnI4Ww"},
|
||||
"relocating_node": null
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"index": "twitter",
|
||||
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
|
||||
"primary": true,
|
||||
"shard": 2,
|
||||
"state": "STARTED",
|
||||
"allocation_id": {"id":"Nwl0wbMBTHCWjEEbGYGapg"},
|
||||
"relocating_node": null
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"index": "twitter",
|
||||
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
|
||||
"primary": true,
|
||||
"shard": 3,
|
||||
"state": "STARTED",
|
||||
"allocation_id": {"id":"bU_KLGJISbW0RejwnwDPKw"},
|
||||
"relocating_node": null
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"index": "twitter",
|
||||
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
|
||||
"primary": true,
|
||||
"shard": 4,
|
||||
"state": "STARTED",
|
||||
"allocation_id": {"id":"DMs7_giNSwmdqVukF7UydA"},
|
||||
"relocating_node": null
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
--------------------------------------------------
|
||||
// TESTRESPONSE[s/"nodes": ...,/"nodes": $body.nodes,/]
|
||||
// TESTRESPONSE[s/JklnKbD7Tyqi9TP3_Q_tBg/$body.shards.0.0.node/]
|
||||
// TESTRESPONSE[s/0TvkCyF7TAmM1wHP4a42-A/$body.shards.0.0.allocation_id.id/]
|
||||
// TESTRESPONSE[s/fMju3hd1QHWmWrIgFnI4Ww/$body.shards.1.0.allocation_id.id/]
|
||||
// TESTRESPONSE[s/Nwl0wbMBTHCWjEEbGYGapg/$body.shards.2.0.allocation_id.id/]
|
||||
// TESTRESPONSE[s/bU_KLGJISbW0RejwnwDPKw/$body.shards.3.0.allocation_id.id/]
|
||||
// TESTRESPONSE[s/DMs7_giNSwmdqVukF7UydA/$body.shards.4.0.allocation_id.id/]
|
||||
|
||||
And specifying the same request, this time with a routing value:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
curl -XGET 'localhost:9200/twitter/_search_shards?routing=foo,baz'
|
||||
GET /twitter/_search_shards?routing=foo,baz
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[s/^/PUT twitter\n/]
|
||||
|
||||
This will yield the following result:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
{
|
||||
"nodes": {
|
||||
"JklnKbD7Tyqi9TP3_Q_tBg": {
|
||||
"name": "Rl'nnd",
|
||||
"transport_address": "inet[/192.168.1.113:9300]"
|
||||
}
|
||||
},
|
||||
"nodes": ...,
|
||||
"shards": [
|
||||
[
|
||||
{
|
||||
"index": "twitter",
|
||||
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
|
||||
"primary": true,
|
||||
"relocating_node": null,
|
||||
"shard": 2,
|
||||
"state": "STARTED"
|
||||
"shard": 0,
|
||||
"state": "STARTED",
|
||||
"allocation_id": {"id":"0TvkCyF7TAmM1wHP4a42-A"},
|
||||
"relocating_node": null
|
||||
}
|
||||
],
|
||||
[
|
||||
|
@ -117,14 +124,19 @@ This will yield the following result:
|
|||
"index": "twitter",
|
||||
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
|
||||
"primary": true,
|
||||
"relocating_node": null,
|
||||
"shard": 4,
|
||||
"state": "STARTED"
|
||||
"shard": 1,
|
||||
"state": "STARTED",
|
||||
"allocation_id": {"id":"fMju3hd1QHWmWrIgFnI4Ww"},
|
||||
"relocating_node": null
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
--------------------------------------------------
|
||||
// TESTRESPONSE[s/"nodes": ...,/"nodes": $body.nodes,/]
|
||||
// TESTRESPONSE[s/JklnKbD7Tyqi9TP3_Q_tBg/$body.shards.0.0.node/]
|
||||
// TESTRESPONSE[s/0TvkCyF7TAmM1wHP4a42-A/$body.shards.0.0.allocation_id.id/]
|
||||
// TESTRESPONSE[s/fMju3hd1QHWmWrIgFnI4Ww/$body.shards.1.0.allocation_id.id/]
|
||||
|
||||
This time the search will only be executed against two of the shards, because
|
||||
routing values have been specified.
|
||||
|
|
|
@ -17,38 +17,48 @@ twitter index:
|
|||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XGET 'http://localhost:9200/twitter/_search?q=user:kimchy'
|
||||
GET /twitter/_search?q=user:kimchy
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[setup:twitter]
|
||||
|
||||
We can also search within specific types:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XGET 'http://localhost:9200/twitter/tweet,user/_search?q=user:kimchy'
|
||||
GET /twitter/tweet,user/_search?q=user:kimchy
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[setup:twitter]
|
||||
|
||||
We can also search all tweets with a certain tag across several indices
|
||||
(for example, when each user has his own index):
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XGET 'http://localhost:9200/kimchy,elasticsearch/tweet/_search?q=tag:wow'
|
||||
GET /kimchy,elasticsearch/tweet/_search?q=tag:wow
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[s/^/PUT kimchy\nPUT elasticsearch\n/]
|
||||
|
||||
Or we can search all tweets across all available indices using `_all`
|
||||
placeholder:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XGET 'http://localhost:9200/_all/tweet/_search?q=tag:wow'
|
||||
GET /_all/tweet/_search?q=tag:wow
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[setup:twitter]
|
||||
|
||||
Or even search across all indices and all types:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XGET 'http://localhost:9200/_search?q=tag:wow'
|
||||
GET /_search?q=tag:wow
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
// TEST[setup:twitter]
|
||||
|
||||
By default elasticsearch rejects search requests that would query more than
|
||||
1000 shards. The reason is that such large numbers of shards make the job of
|
||||
|
|
Loading…
Reference in New Issue