首页/数据/NoSQL 速查/_msearch 一次提交多个查询
Elasticsearch89 条

_msearch 一次提交多个查询

multi search 用 NDJSON 在单个请求里执行多个查询:头部行指定索引与参数,紧随一行查询体,成对出现;适合仪表盘同时拉取多组数据。

NoSQL 速查数据更新于 2026-10-12
接口GET 或 POST /_msearch
格式{"index": "..."} 头行 + 查询体行,成对且顺序固定
返回responses 数组与请求顺序一一对应;单个查询失败只影响自己

示例

示例
POST /_msearch
{ "index": "my-index" }
{ "query": { "match": { "title": "a" } }, "size": 3 }
{ "index": "my-index" }
{ "query": { "term": { "status": "open" } }, "size": 0, "aggs": { "c": { "value_count": { "field": "id" } } } }
头行里可以放 search_type、routing、preference 等参数;空头行 {} 表示使用默认索引。

易错点

  • 每个查询体后必须跟随换行,头部与体错位时整批解析失败
  • 单请求内查询数量过多会占用线程池;仪表盘场景建议控制在几十个以内

数据来源与参考

  • Elasticsearch Guide: Multi search API
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌