1

我在使用 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 年“总监”头衔的经验相匹配。

如何过滤掉这条记录?

4

1 回答 1

3

Intead 通过会员搜索和寻找工作现在我们正在寻找工作并寻找那里的会员。

def searchResults = Job.search(query,param)

可能会有所帮助。

于 2013-09-11T13:36:35.533 回答