Elasticsearch之简单查询

一、查询指定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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值