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
数组,每个查询的响应顺序与请求中的顺序相同。
注:
- 确保用换行符分隔每一行
- 确保在最后一个查询后添加额外的换行符。
我知道支持批量索引操作。但是否可以对搜索查询做同样的事情?我想发送许多不同的不相关查询(进行 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
数组,每个查询的响应顺序与请求中的顺序相同。
注:
- 确保用换行符分隔每一行
- 确保在最后一个查询后添加额外的换行符。