SolrCloud 是否支持分片间的 Join 查询?

Does SolrCloud support Join queries between shards?

我设置了一个具有 2 个节点、2 个分片和 2 个副本的 SolrCloud。 我的 Join 查询在单个 solr 实例中运行良好,但此 SolrCloud 设置存在一些问题。

fq = {!join from=student_id_i to=student_id_i} sf_meta_class:Students

q = sf_meta_class: 书籍

我想问题主要出在分片部分,因为我得到了几乎(不完全)一半的结果集,而不是整个结果集。 我在这里做错了什么吗?或者 Solr 从不支持多个分片的 Join 查询?

我试过像这样将碎片明确地放在搜索查询中:

http://localhost:8983/solr/core1/select?shards=solr1:8983/solr/core1,solr2:8983/solr/core1&indent=true&q=ipod+solr

我还是不行。

编辑: 显然 SolrCloud 不加入碎片中的查询。 发现于 https://cwiki.apache.org/confluence/display/solr/SolrPerformanceProblems

很遗憾,Solr 不支持此功能。 An issue 已创建,但与此同时,如果您可以将任一文档集减少到其自己的集合(例如单独的 sf_meta_class:Books),Solr 确实支持跨集合加入。需要注意的是,您需要确保较小的集合未分片并且存在于每个节点上。

您可以使用

fq = {!join method="crossCollection" fromIndex="yourCollection" from=student_id_i to=student_id_i} 

Solr 开始支持 multi-sharded,分布式连接查询:http://www.kmwllc.com/index.php/2020/07/15/the-cross-collection-join-query/