Lucene在Groovy中搜索一对多关系的问题

时间:2013-06-12 09:19:51

标签: grails grails-plugin lucene

我正面临使用Lucene查询搜索一对多关系的问题。例如。我们有一个包含许多工作的类成员。在成员域类中我们有

//Member Domain Class
static searchable = {
        analyzer "default"
        only = ['memberName']
        job component: true
    }

在求职领域我们有

//Job Domain Class
static searchable = {
        analyzer "default"
        only = ['title','experience']
    }

现在假设我们在Job

中有以下数据

enter image description here

因此,会员1有2年的“经理”经验,4年的“经理”经验。

现在,如果我想搜索拥有4年或更多年经验的“经理”职位的会员,那么我的查询就是

query = “ title:( Manager)  AND  experience:[4 TO *]  ”
searchResults = Member.search(query, params){
}

我没有任何这样的会员,所以它不应该给我任何会员,但它会让我回复会员1,因为它匹配'经理'和4年的'董事'头衔经验。

如何过滤掉此记录?

1 个答案:

答案 0 :(得分:3)

现在我们正在寻找工作并寻找会员,而不是通过会员搜索并寻找工作。

def searchResults = Job.search(query,param)

可能有帮助。