Elasticsearch:可以进行批量搜索吗?

Elasticsearch: is bulk search possible?

我知道支持批量索引操作。但是否可以对搜索查询做同样的事情?我想发送许多不同的不相关查询(进行 precision/recall 测试),使用批量查询可能会更快

是的,您可以使用 multi search API/_msearch 端点一次性发送任意数量的查询。

curl -XPOST localhost:9200/_msearch -d '
{"index" : "test1"}
{"query" : {"match_all" : {}}, "from" : 0, "size" : 10}
{"index" : "test2"}
{"query" : {"match_all" : {}}}
'

您将获得一个 responses 数组,每个查询的响应顺序与请求中的顺序相同。

注:

  1. 确保用换行符分隔每一行
  2. 确保在最后一个查询后添加额外的换行符。