我设置了一个具有 2 个节点、2 个分片和 2 个副本的 SolrCloud。 我的 Join 查询在单个 solr 实例中工作正常,但此 SolrCloud 设置存在一些问题。
fq = {!从=student_id_i加入到=student_id_i} sf_meta_class:学生
q = sf_meta_class:书籍
我想问题主要出在分片部分,因为我得到了几乎(不完全是)一半的结果集,而不是整个结果集。 我在这里做错了什么吗?或者Solr从来不支持多个分片的Join查询?
我曾尝试将分片明确地放在搜索查询中,如下所示:
仍然对我不起作用。
编辑: 显然 SolrCloud 不会加入分片中的查询。 在 https://cwiki.apache.org/confluence/display/solr/SolrPerformanceProblems
上找到它你可以使用
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/
不幸的是Solr 不支持这一点。 已经创建了一个问题,但与此同时,如果您可以将任意一组文档减少到其自己的集合(例如单独的
sf_meta_class:Books
),Solr 确实支持跨集合连接。需要注意的是,您需要确保较小的集合没有分片并且存在于每个节点上。