多索引组合查询(官方文档)

如果不对某一特殊的索引做限制,就会搜索集群中的所有文档。Elasticsearch 转发搜索请求到每一个主分片或者副本分片,汇集查询出的前 10 个结果并返回。

经常的情况下,你想在一个或多个特殊的索引中进行搜索,可以通过在 URL 中指定特殊的索引和类型达到这种效果,如下所示:

路径说明
/_search在所有的索引中搜索所有的类型
/gb/_searchgb 索引中搜索所有的类型
/gb,us/_searchgbus 索引中搜索所有的文档(明确指定多个索引名称,若索引不存在会出现错误)
/g*,u*/_search在任何以 gu 开头的索引中搜索(通配符匹配,无需判断索引是否存在)
/gb/user/_searchgb 索引中搜索 user 类型
/gb,us/user,tweet/_searchgbus 索引中搜索 usertweet 类型
/_all/user,tweet/_search在所有的索引中搜索 usertweet 类型
/index-%7Bnow%2Fd%7D/_search索引名称通过计算表达式指定,如 logstash-{now/d} 表示当前日期,结果形如 index-2024.03.22

当在单一的索引下进行搜索时,Elasticsearch 转发请求到索引的每个分片中(可以是主分片也可以是副本分片),然后从每个分片中收集结果。多索引搜索使用相同的方式工作,只是会涉及到更多的分片。搜索一个有五个主分片的索引和搜索五个各有一个分片的索引,准确来说是等价的。