基于doc字段中的不同值,使用“AND”进行Solr查询

时间:2013-08-01 19:02:11

标签: solr

过去我和solr一起工作过,但大部分搜索都是直截了当的。我们现在遇到的情况是,我们希望搜索可以限制“AND”的结果...使用如下示例:

Doc 1 - >学生ID:123 ClassID:001

Doc 2 - >学生ID:123 ClassID:002

Doc 3 - >学生ID:987 ClassID:001

所需查询的“英语”版本将是“给我所有班级的学生,班级ID为001:ClassID:002。这只会返回学生ID:123,而且学生:987。”

当然,我们的实际查询要比这个b / c复杂得多,这个类也可以有其他属性,比如时间,日等等。但是我想知道我是否可以在完成基本的“AND”过滤方面得到一些帮助第一

这就是我们目前正在实现它的方式,它似乎“似乎”可行,但由于类的数量可以是动态的,这意味着我们需要动态更新mincount。只是好奇是否有“更好”的方式。

q=*:*&fq=(ClassID:001)OR(ClassID:002)&rows=0&group=true&group.field=ClassID&group.facet=true&group.ngroups=true&facet=true&facet.field=ClassID&facet.mincount=2&facet.field=StudentID

我确信还有一种我尚未找到的直接方式,所以我将问题交给专家。感谢帮助!

1 个答案:

答案 0 :(得分:0)

您可以将default operator中的schema.xml设置为OR。这假设所有(或大多数)案例都想要进行OR查询。

然后您可以将查询更改为:

classId:('001' '002')

由于您的类ID是动态的,因此您可以通过加入客户端的classid列表来注入此值。

相关问题