检查grails可搜索查询中的活动标志

时间:2013-09-05 08:46:40

标签: grails grails-searchable searchable-plugin

我想为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)

不幸的是它什么也没有回报。你知道我做错了什么吗?我的代码应该如何?

1 个答案:

答案 0 :(得分:0)

尝试以下,我没有测试过。希望它能解决这个问题。

def finalQuery = "name:${myQuery}* OR surname:${myQuery}* -(active:false)";
def searchResults = Person.search(finalQuery , params)