过去我和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
我确信还有一种我尚未找到的直接方式,所以我将问题交给专家。感谢帮助!
答案 0 :(得分:0)
您可以将default operator
中的schema.xml
设置为OR
。这假设所有(或大多数)案例都想要进行OR查询。
然后您可以将查询更改为:
classId:('001' '002')
由于您的类ID是动态的,因此您可以通过加入客户端的classid
列表来注入此值。