多索引组合查询(官方文档)
如果不对某一特殊的索引做限制,就会搜索集群中的所有文档。Elasticsearch 转发搜索请求到每一个主分片或者副本分片,汇集查询出的前 10 个结果并返回。
经常的情况下,你想在一个或多个特殊的索引中进行搜索,可以通过在 URL 中指定特殊的索引和类型达到这种效果,如下所示:
| 路径 | 说明 |
|---|---|
/_search | 在所有的索引中搜索所有的类型 |
/gb/_search | 在 gb 索引中搜索所有的类型 |
/gb,us/_search | 在 gb 和 us 索引中搜索所有的文档(明确指定多个索引名称,若索引不存在会出现错误) |
/g*,u*/_search | 在任何以 g 或 u 开头的索引中搜索(通配符匹配,无需判断索引是否存在) |
/gb/user/_search | 在 gb 索引中搜索 user 类型 |
/gb,us/user,tweet/_search | 在 gb 和 us 索引中搜索 user 和 tweet 类型 |
/_all/user,tweet/_search | 在所有的索引中搜索 user 和 tweet 类型 |
/index-%7Bnow%2Fd%7D/_search | 索引名称通过计算表达式指定,如 logstash-{now/d} 表示当前日期,结果形如 index-2024.03.22 |
当在单一的索引下进行搜索时,Elasticsearch 转发请求到索引的每个分片中(可以是主分片也可以是副本分片),然后从每个分片中收集结果。多索引搜索使用相同的方式工作,只是会涉及到更多的分片。搜索一个有五个主分片的索引和搜索五个各有一个分片的索引,准确来说是等价的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!
