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]
|
[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.
|
||||||
|
|
||||||
|
|
|
@ -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[]
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue