elasticsearch批量获取文档
- 使用es提供的Multi Get API实现
获取指定的一系列id的文档列表
#获取指定的一系列id的文档列表 GET /_mget { "docs":[ { "_index":"lib", "_type":"user", "_id":1 },{ "_index":"lib", "_type":"user", "_id":2 },{ "_index":"lib", "_type":"user", "_id":3 } ] } #结果 { "docs": [ { "_index": "lib", "_type": "user", "_id": "1", "_version": 1, "found": true, "_source": { "first_name": "Jane", "last_name": "bill", "age": 18, "about": "I like to collect rock albums", "interests": [ "music" ] } }, { "_index": "lib", "_type": "user", "_id": "2", "_version": 1, "found": true, "_source": { "first_name": "Jane", "last_name": "tom", "age": 22, "about": "I like to collect rock albums", "interests": [ "music" ] } }, { "_index": "lib", "_type": "user", "_id": "3", "_version": 1, "found": true, "_source": { "first_name": "Jane", "last_name": "rose", "age": 18, "about": "I like to collect rock albums", "interests": [ "music" ] } } ] }
指定字段获取
#指定字段获取 GET /_mget { "docs":[ { "_index":"lib", "_type":"user", "_id":1, "_source":"interests" }, { "_index":"lib", "_type":"user", "_id":2, "_source":["age","interests"] } ] } #结果 { "docs": [ { "_index": "lib", "_type": "user", "_id": "1", "_version": 1, "found": true, "_source": { "interests": [ "music" ] } }, { "_index": "lib", "_type": "user", "_id": "2", "_version": 1, "found": true, "_source": { "interests": [ "music" ], "age": 22 } } ] }
获取同索引类型下的不同文档
GET /lib/user/_mget { "docs":[ { "_id":1 },{ "_type":"user", "_id":2 } ] } #结果 { "docs": [ { "_index": "lib", "_type": "user", "_id": "1", "_version": 1, "found": true, "_source": { "first_name": "Jane", "last_name": "bill", "age": 18, "about": "I like to collect rock albums", "interests": [ "music" ] } }, { "_index": "lib", "_type": "user", "_id": "2", "_version": 1, "found": true, "_source": { "first_name": "Jane", "last_name": "tom", "age": 22, "about": "I like to collect rock albums", "interests": [ "music" ] } } ] } #简化 GET /lib/user/_mget { "ids":["1","2"] }