我在使用 Lucene 查询搜索一对多关系时遇到问题。例如,我们有一个包含许多工作的类成员。在成员域类中,我们有
//Member Domain Class
static searchable = {
analyzer "default"
only = ['memberName']
job component: true
}
在工作领域类中,我们有
//Job Domain Class
static searchable = {
analyzer "default"
only = ['title','experience']
}
现在假设我们在 Job 中有以下数据
所以成员 1 有 2 年的“经理”经验和 4 年的“主管”经验。
现在,如果我想搜索具有 4 年或以上经验的“经理”头衔的成员,那么我的查询是
query = “ title:( Manager) AND experience:[4 TO *] ”
searchResults = Member.search(query, params){
}
我没有任何这样的成员,所以它不应该返回任何成员,但它会返回成员 1,因为它与“经理”头衔和 4 年“总监”头衔的经验相匹配。
如何过滤掉这条记录?