我想为Grails Searchable Plugin构建搜索查询,它只返回活动对象。 (不会返回'activate'标志设置为false的对象)。这是我的情况。
我有一个Abstract类和一些扩展抽象类的类(例如Person):
class AbstractObject{
boolean active;
DateTime createDate
}
class Person extends AbstractObject{
String name;
String surname;
static searchable=[only:['name','surname','active']]
}
当我删除对象时,我将'active'标志设置为false。
在我使用之前
searchableService.search(myQuery, defaultOperator:"or", max: 10)
但它返回不活动的对象,所以我决定尝试使用Query Builder:
def result=searchableService.search({
must(queryString(myQuery))
must(term('active',false))
}, defaultOperator:"or", max: 10)
不幸的是它什么也没有回报。你知道我做错了什么吗?我的代码应该如何?
答案 0 :(得分:0)
尝试以下,我没有测试过。希望它能解决这个问题。
def finalQuery = "name:${myQuery}* OR surname:${myQuery}* -(active:false)";
def searchResults = Person.search(finalQuery , params)