0

我过去曾与 solr 合作过,但大多数情况下搜索都是直截了当的。我们现在遇到了一种情况,我们希望搜索可以限制“AND”上的结果......使用如下示例:

Doc 1 --> StudentID:123 ClassID: 001

Doc 2 --> StudentID:123 ClassID:002

Doc 3 --> StudentID:987 ClassID:001

所需查询的“英语”版本将是“给我所有班级中具有 classID:001 和 ClassID:002 的学生。这只会返回 StudentID:123 而忽略 Student: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

我确信有一个我还没有找到的直接方法,所以我把这个问题交给了专家。帮助表示赞赏!

4

1 回答 1

0

你可以设置你default operatorschema.xml成为OR。这假设所有(或大多数)案例都希望进行 OR 查询。

然后你可以改变你的查询是这样的:

classId:('001' '002')

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

于 2013-08-08T06:03:17.147 回答