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

时间:2019-09-03 15:45:14

标签: solr solrcloud

我已经设置了一个带有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查询?

我曾尝试将分片明确地放在搜索查询中,如下所示:

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

仍然对我不起作用。

编辑: 显然,SolrCloud不会在Shards中加入查询。 在https://cwiki.apache.org/confluence/display/solr/SolrPerformanceProblems

上找到了它

2 个答案:

答案 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确实支持跨集合的联接。需要注意的是,您需要确保较小的集合没有被分片,并且存在于每个节点上。