一、查询指定id的文档:
1、使用pretty方式展示文档信息,pretty参数可以使返回结果更加美观:
GET http://$user:$passwd@$host:$port/$index/$type/$id?pretty
更多参数请参考:https://www.elastic.co/guide/en/elasticsearch/reference/6.5/common-options.html
2、只查文档的中的所有字段:
GET http://$user:$passwd@$host:$port/$index/$type/$id?_source
3、只查文档的指定字段field1,field2:
GET http://$user:$passwd@$host:$port/$index/$type/$id?_source=$field1,$field2
以上请求如果存在指定id的文档,则返回200 ok的状态码,否则返回404 Not Found的状态码。
二、_search轻量查询:
在查询字符串query中传入所有的参数,比如:
1、查询所有文档:
GET http://$user:$passwd@$host:$port/$index/$type/_search
或者
GET http://$user:$passwd@$host:$port/$index/_search
2、查询多个索引下的所有文档:
GET http://$user:$passwd@$host:$port/$index1,$index2/_search
3、查询多个索引下多个类型的所有文档:
GET http://$user:$passwd@$host:$port/$index1,$index2/$type1,$type2/_search
4、查询以a,b开头的索引的所有文档:
GET http://$user:$passwd@$host:$port/a*,b*/_search
5、查询所有索引中类型是$type1和$type2的所有文档:
GET http://$user:$passwd@$host:$port/_all/$type1,$type2/_search
6、分页查询:
GET http://$user:$passwd@$host:$port/$index/_search?size=5&from=0
7、查询字段中包含$keyword的文档,不管是哪个字段:
GET http://$user:$passwd@$host:$port/$index/$type/_search?q=$keyword
8、查询某个字段中包含$keyword的文档。如果查询条件是多个字段,则多个字段条件用空格隔开。字段名的前缀+表示该查询条件必须匹配,不匹配时对应的文档不返回。字段名的前缀-表示该查询条件必须不匹配,否则对应的文档也不返回。如果字段名前既没有+也没有-,说明该条件是可选的,不是必输的,可能是用来增加相关性评分的:
GET http://$user:$passwd@$host:$port/$index/$type/_search?q=+$field1:$keyword1 -$field2:$keyword2
9、查询某个字段中包含$keyword1或者$keyword2,如果不是查某个字段而且全部字段,那么则可以省去字段名:
GET http://$user:$passwd@$host:$port/$index/$type/_search?q=+$field:($keyword1 $keyword2) +($keyword1 $keyword2)
10、查询某个字段$field要大于$keyword的文档:
GET http://$user:$passwd@$host:$port/$index/$type/_search?q=+$field:>$keyword
11、查询设置超时时间,当超过这个时间时各分片停止继续检索,只把截止到当前时间的检索结果返回,所以返回的数据不全或可能为空:
GET http://$user:$passwd@$host:$port/$index/$type/_search?timeout=10ms
三、多重获取_mget:
通过同时指定多个索引、类型和id,获取多个文档。
1、各文档属于不同的索引和类型 :
GET http://$user:$passwd@$host:$port/_mget
{
"docs": [
{
"_index": $index1,
"_type": $type1,
"_id": $id1
},
{
"_index": $index2,
"_type": $type2,
"_id": $id2
}
]
}
2、各文档属于相同的索引和类型 :
GET http://$user:$passwd@$host:$port/$index/$type/_mget
{
"docs": [
{
"_id": $id1
},
{
"_id": $id2
}
]
}
或者:
GET http://$user:$passwd@$host:$port/$index/$type/_mget
{
"ids": [$id1,$id2]
}
详情请参考:
https://www.elastic.co/guide/en/elasticsearch/reference/6.5/docs-multi-get.html