Solr加入和分面可能吗?

时间:2014-07-18 02:09:23

标签: join solr facet

一些背景信息: 在我们的应用程序中,我们需要更新大量记录 经常。我调查了solr子文档,但它需要更新两者 孩子和父文件。因此,我正在研究补充 在辅助文件中经常更新的信息"有一个习惯 定义" parent-id"可用于与静态"父级连接的字段 文件&#34 ;. - 基本上滚动我自己的子文档功能。

这种方法满足了我的所有要求,除了一个。我怎么能够 面对辅助文件中存在的一个字段?

首先,这是我的测试核心索引(4个文档+ 4个辅助文档)的主要转储 https://gist.github.com/anonymous/2774b54e667778c71492

接下来,这里只是对aux的一个简单的facet查询。虽然这有效,但它 只返回辅助文件 https://gist.github.com/anonymous/a58b87576b895e467c68

最后,我使用SOLR连接调整查询( https://wiki.apache.org/solr/Join)返回主要文件(它是 但是,分面没有结果。这就是我所希望的人 在此列表中可以回答。 这是该查询的要点 https://gist.github.com/anonymous/f3a287ab726f35b142cf

任何答案,建议?

谢谢

2 个答案:

答案 0 :(得分:3)

更新我的任务结果。 1.可以使用一些自定义编码 2.我们决定翻转main和aux文档,将facetable字段放在主文档中。虽然构造等效查询(对标准SOLR查询)是一个PITA - 涉及主要子句,附加到主查询的嵌套查询和过滤子句,但这种方法有效。

见讨论 http://lucene.472066.n3.nabble.com/How-do-I-get-faceting-to-work-with-Solr-JOINs-td4147785.html#a4148838

答案 1 :(得分:1)

您将无法使用Join支持进行操作,因为它不允许您对未返回的文档(仅查询)中的字段执行任何操作。整个功能仅限于根据字段中的值查找文档,并且不会合并文档或使其可用于Solr中的其他功能。

然而,Block Join支持可能会更幸运,但has its own caveats as well(例如删除文档和保持内容同步)。