elastic mget
Posted 一只宅男的自我修养
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elastic mget相关的知识,希望对你有一定的参考价值。
转自:https://www.cnblogs.com/zhaijunming5/p/6424800.html
GET /library/books/1
{ "_index": "library", "_type": "books", "_id": "1", "_version": 1, "found": true, "_source": { "title": "Elasticsearch:the definitive guide", "name": { "first": "zachary", "last": "tong" }, "publish_date": "2017-02-19", "price": "49.99" } }
GET /library/books/2
{ "_index": "library", "_type": "books", "_id": "2", "_version": 1, "found": true, "_source": { "title": "Elasticsearch:the definitive guide", "name": { "first": "zachary", "last": "tong" }, "publish_date": "2017-02-19", "price": "59.99" } }
multi get
多字段查询可以设置多个文档查询条件,每个查询条件在结构上都比较类似
GET /_mget { "docs": [ { "_index" : "library", "_type" : "books", "_id" : "1" }, { "_index" : "library", "_type" : "books", "_id" : "2" } ] }
当然,在查询条件中,body中_index字段也可以放在查询字符串中
GET /library/_mget { "docs": [ { "_type" : "books", "_id" : "1" }, { "_type" : "books", "_id" : "2" } ] }
对于type也是一样:
GET /library/books/_mget { "docs": [ { "_id" : "1" }, { "_id" : "2" } ] }
如果索引和类型都放在查询URL中,那么字段ID就可以放在一个数组中:
GET /library/books/_mget { "ids" : ["1","2"] }
如果想要查询不通类型的相同ID,就需要指定类型名称
GET /test/_mget/ { "docs" : [ { "_type":"typeA", "_id" : "1" }, { "_type":"typeB", "_id" : "1" } ] }
#这个例子不适用上面的测试数据
Fields过滤
fields过滤是获取指定的字段
代码
GET /_mget { "docs" : [ { "_index":"library", "_type" : "books", "_id" : "1", "fields" : ["publish_date","price"] }, { "_index":"library", "_type" : "books", "_id" : "2", "fields" : ["publish_date","price"] } ] }
结果
{ "docs": [ { "_index": "library", "_type": "books", "_id": "1", "_version": 1, "found": true, "fields": { "publish_date": [ "2017-02-19" ], "price": [ "49.99" ] } }, { "_index": "library", "_type": "books", "_id": "2", "_version": 1, "found": true, "fields": { "publish_date": [ "2017-02-19" ], "price": [ "59.99" ] } } ] }
以上是关于elastic mget的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch partial update+mget+bulk
Elasticsearchelasticsearch里面的关于批量读取mget的用法