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

时间:2013-04-02 18:33:15

标签: join solr lucene

Join被描述为伪连接,因为它更像是一个SQL内部查询。 而BlockJoin is described更像是一个SQL连接,但需要一个复杂的索引模式,而这个模式预测了你想要做的所有可能的连接。 有人可以解释这些功能在如何在索引时和查询时实现它们之间的区别。对绩效有何影响?

2 个答案:

答案 0 :(得分:0)

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

solr join不会对from查询中的文档进行评分,也不会返回组合结果。所以最好用作过滤查询。这将允许主查询。得分。

另一方面,阻止加入确实使用得分并返回两个结果。(不是100%肯定)

您还可以使用querytime join。这有serval评分选项。这也是一个lucene功能,但不需要特殊的索引块。我已经将它与solr查询解析器插件结合使用了。性能比blockjoin低一点,但它可以工作。

我只使用过solr join和querytimejoin所以我真的不能说关于blockjoin。

答案 1 :(得分:0)

据我了解,BlockJoin用于加入同一核心内的嵌套/子文档。加入是为了加入一个单独的核心。