Solr Aliases问题:指向多索引的别名能否搜索,结果是否统一排序
Solr 多索引别名查询结果规则说明
Solr 的 Aliases(别名)完全支持绑定多个底层 Core 或 Collection,这是生产环境非常常用的功能,常见使用场景包括跨时间周期的日志索引聚合、同结构分业务线索引的统一查询等。
针对你问的查询结果展示规则:通过多索引别名发起的搜索请求,返回的是全局统一排序后的结果集,不会按底层索引分批次展示。
底层执行逻辑:协调节点收到指向别名的查询请求后,会把请求转发给别名关联的所有底层索引;每个索引先在本地执行查询、排序逻辑,返回符合要求的Top N结果给协调节点;协调节点会对所有索引返回的结果做全局归并排序,最终返回给客户端的是全局排序后的完整结果。
使用多索引别名查询的注意事项:
- 所有绑定到同一个别名的底层索引,查询、排序用到的字段的类型定义必须保持一致,否则会出现排序异常、字段不存在的报错。
- 如果需要给特定索引的结果设置更高优先级,可以通过
bq(boost query)参数结合Solr内置的_index_元字段实现,示例参数:q=搜索关键词&bq=(_index_:your_index_name)^2,即可把指定索引的结果权重提升1倍。 - 如果业务确实需要按所属索引分批次展示结果,可以添加查询参数
group=true&group.field=_index_,即可实现按索引分组返回结果。
内容的提问来源于stack exchange,提问作者talluri
相关产品推荐
相关产品推荐

