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

问题描述 投票:0回答:3

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

fq = {!从=student_id_i加入到=student_id_i} sf_meta_class:学生

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 solrcloud
3个回答
2
投票

你可以使用

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
投票

不幸的是Solr 不支持这一点。 已经创建了一个问题,但与此同时,如果您可以将任意一组文档减少到其自己的集合(例如单独的

sf_meta_class:Books
),Solr 确实支持跨集合连接。需要注意的是,您需要确保较小的集合没有分片并且存在于每个节点上。


© www.soinside.com 2019 - 2024. All rights reserved.