繁体   English   中英

在Lucene / Solr中,Join和BlockJoin有什么区别?

[英]In Lucene/Solr what is the difference between Join and BlockJoin?

联接被描述为伪联接,因为它更等效于SQL内部查询。 尽管BlockJoin 被描述为更像SQL连接,但需要复杂的索引架构,但该架构可以预期您要进行的所有可能的连接。 有人可以解释如何在索引时间和查询时间实现这些功能之间的区别。 对性能有什么影响?

我不认为blockjoinquery是Solr函数。 我认为它的Lucene功能。

solr联接不会对from查询中的文档进行评分,并且不会返回合并的结果。 因此,最好将其用作过滤器查询。 这将允许主query.to得分。

另一方面,Block Join确实使用评分并返回两个结果。(不是100%确定)

您还可以使用querytime连接。 这具有服务评分选项。 这也是一个Lucene功能,但不需要特殊的索引块。 我已经将其与solr查询解析器插件结合使用。 与blockjoin相比,性能要低一些,但可以。

我只使用了solr join和querytimejoin,所以我不能说太多关于blockjoin的内容。

据我了解,BlockJoin用于连接同一核心内的嵌套/子文档。 联接用于联接到单独的核心。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM