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 查询?
我试过像这样将碎片明确地放在搜索查询中:
我还是不行。
编辑:
显然 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/
我设置了一个具有 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 查询?
我试过像这样将碎片明确地放在搜索查询中:
我还是不行。
编辑: 显然 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/