2016-02-18 54 views
0

我刚刚将Solr集成到了我的nodejs/mongodb应用程序中,以处理我的服务中特定集合的更高级的查询。我使用了mongo连接器来将我的mongodb与Solr数据库同步,并自定义Solr字段以引入必要的字段进行查询。Solr中的内部过滤

有一个visible这个集合中的一个文档的属性,我们用它来确定对象是公开的(被所有人看到)还是私人的(被所有者看到)。在使用Solr之前,我们进行了服务器API调用,以确保visible位在请求中发挥作用,但现在我不确定如何模拟Solr中的功能。

我们的意图是直接从客户端应用程序使用Solr的查询参数与我们的客户端搜索/过滤器页面的Solr。是否有办法确保所有对Solr的调用都附加了一个名为visible = true的过滤器,以确保私人文档不包含在响应中?我不想写在客户端,因为这仍然暴露这些文件。

任何意见将不胜感激!

+0

我认为过滤掉从Solr的结果的唯一方式是使用荧光定量参数与查询一起,但如果你不往其附加倾斜,你总是可以索引的私人并将公共文档分配给2个独立的核心,然后根据用户=来提供其中一个或另一个的结果。 –

回答

1

是的。您可以将参数列表添加到requestHandler的定义中,该请求将fq语句附加到所有请求。 The example from the wiki解决了一个相同的用例:

<lst name="appends"> 
    <!-- no matter what other fq are also used, always restrict to only inStock products --> 
    <str name="fq">inStock:true</str> 
</lst> 
+0

猜猜我错了。谢谢你。 –