CONSOLEify some search docs

* search/search.asciidoc
* search/request-body.asciidoc
* search/explain.asciidoc
* search/search-shards.asciidoc
This commit is contained in:
Nik Everett 2016-09-14 11:23:25 -04:00
parent 863a199c42
commit 2d568ece2d
4 changed files with 152 additions and 83 deletions

View File

@ -15,35 +15,70 @@ Full query example:
[source,js] [source,js]
-------------------------------------------------- --------------------------------------------------
curl -XGET 'localhost:9200/twitter/tweet/1/_explain' -d '{ GET /twitter/tweet/0/_explain
{
"query" : { "query" : {
"term" : { "message" : "search" } "match" : { "message" : "elasticsearch" }
} }
}' }
-------------------------------------------------- --------------------------------------------------
// CONSOLE
// TEST[setup:twitter]
This will yield the following result: This will yield the following result:
[source,js] [source,js]
-------------------------------------------------- --------------------------------------------------
{ {
"matches" : true, "_index" : "twitter",
"_type" : "tweet",
"_id" : "0",
"matched" : true,
"explanation" : { "explanation" : {
"value" : 0.15342641, "value" : 1.55077,
"description" : "fieldWeight(message:search in 0), product of:", "description" : "sum of:",
"details" : [ { "details" : [ {
"value" : 1.0, "value" : 1.55077,
"description" : "tf(termFreq(message:search)=1)" "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, "value" : 0.0,
"description" : "idf(docFreq=1, maxDocs=1)" "description" : "match on required clause, product of:",
}, { "details" : [ {
"value" : 0.5, "value" : 0.0,
"description" : "fieldNorm(field=message, doc=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` 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 parameter. The specified `q` parameter value is then parsed as if the
@ -52,8 +87,10 @@ explain api:
[source,js] [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. This will yield the same result as the previous request.

View File

@ -7,41 +7,49 @@ example:
[source,js] [source,js]
-------------------------------------------------- --------------------------------------------------
$ curl -XGET 'http://localhost:9200/twitter/tweet/_search' -d '{ GET /twitter/tweet/_search
{
"query" : { "query" : {
"term" : { "user" : "kimchy" } "term" : { "user" : "kimchy" }
} }
} }
'
-------------------------------------------------- --------------------------------------------------
// CONSOLE
// TEST[setup:twitter]
And here is a sample response: And here is a sample response:
[source,js] [source,js]
-------------------------------------------------- --------------------------------------------------
{ {
"took": 1,
"timed_out": false,
"_shards":{ "_shards":{
"total" : 5, "total" : 1,
"successful" : 5, "successful" : 1,
"failed" : 0 "failed" : 0
}, },
"hits":{ "hits":{
"total" : 1, "total" : 1,
"max_score": 1.3862944,
"hits" : [ "hits" : [
{ {
"_index" : "twitter", "_index" : "twitter",
"_type" : "tweet", "_type" : "tweet",
"_id" : "1", "_id" : "0",
"_score": 1.3862944,
"_source" : { "_source" : {
"user" : "kimchy", "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] [float]
=== Parameters === Parameters
@ -105,8 +113,10 @@ matching document was found (per shard).
[source,js] [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 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 `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": { "hits": {
"total": 1, "total": 1,
"max_score": 0, "max_score": 0.0,
"hits": [] "hits": []
} }
} }
-------------------------------------------------- --------------------------------------------------
// TESTRESPONSE[s/"took": 3/"took": $body.took/]
include::request/query.asciidoc[] include::request/query.asciidoc[]

View File

@ -14,49 +14,27 @@ Full example:
[source,js] [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: This will yield the following result:
[source,js] [source,js]
-------------------------------------------------- --------------------------------------------------
{ {
"nodes": { "nodes": ...,
"JklnKbD7Tyqi9TP3_Q_tBg": {
"name": "Rl'nnd",
"transport_address": "inet[/192.168.1.113:9300]"
}
},
"shards": [ "shards": [
[ [
{ {
"index": "twitter", "index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg", "node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true, "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, "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", "index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg", "node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true, "primary": true,
"relocating_node": null,
"shard": 2,
"state": "STARTED"
}
],
[
{
"index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"relocating_node": null,
"shard": 1, "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: And specifying the same request, this time with a routing value:
[source,js] [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: This will yield the following result:
[source,js] [source,js]
-------------------------------------------------- --------------------------------------------------
{ {
"nodes": { "nodes": ...,
"JklnKbD7Tyqi9TP3_Q_tBg": {
"name": "Rl'nnd",
"transport_address": "inet[/192.168.1.113:9300]"
}
},
"shards": [ "shards": [
[ [
{ {
"index": "twitter", "index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg", "node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true, "primary": true,
"relocating_node": null, "shard": 0,
"shard": 2, "state": "STARTED",
"state": "STARTED" "allocation_id": {"id":"0TvkCyF7TAmM1wHP4a42-A"},
"relocating_node": null
} }
], ],
[ [
@ -117,14 +124,19 @@ This will yield the following result:
"index": "twitter", "index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg", "node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true, "primary": true,
"relocating_node": null, "shard": 1,
"shard": 4, "state": "STARTED",
"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 This time the search will only be executed against two of the shards, because
routing values have been specified. routing values have been specified.

View File

@ -17,38 +17,48 @@ twitter index:
[source,js] [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: We can also search within specific types:
[source,js] [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 We can also search all tweets with a certain tag across several indices
(for example, when each user has his own index): (for example, when each user has his own index):
[source,js] [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` Or we can search all tweets across all available indices using `_all`
placeholder: placeholder:
[source,js] [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: Or even search across all indices and all types:
[source,js] [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 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 1000 shards. The reason is that such large numbers of shards make the job of