我已经设置了一个带有2个节点,2个分片和2个副本的SolrCloud。 我的Join查询在单个solr实例中运行良好,并且此SolrCloud设置存在一些问题。
fq = {!join from = student_id_i to = student_id_i} sf_meta_class:学生
q = sf_meta_class:图书
我猜主要是Sharding部分的问题,因为我得到了(几乎不完全)结果集的一半,而不是整个结果集。 我在这里做错什么吗?还是Solr从不支持带有多个分片的Join查询?
我曾尝试将分片明确地放在搜索查询中,如下所示:
仍然对我不起作用。
编辑: 显然,SolrCloud不会在Shards中加入查询。 在https://cwiki.apache.org/confluence/display/solr/SolrPerformanceProblems
上找到了它答案 0 :(得分:1)
您可以使用
fq = {!join method="crossCollection" fromIndex="yourCollection" from=student_id_i to=student_id_i}
Solr开始支持多分片的分布式联接查询:http://www.kmwllc.com/index.php/2020/07/15/the-cross-collection-join-query/
答案 1 :(得分:0)
很遗憾,Solr不支持此功能。 An issue已创建,但是与此同时,如果您可以将任意一组文档缩减为它自己的集合(例如单独的sf_meta_class:Books
),Solr确实支持跨集合的联接。需要注意的是,您需要确保较小的集合没有被分片,并且存在于每个节点上。