0

アクティブなオブジェクトのみを返す Grails Searchable Plugin の検索クエリを作成したいと考えています。('activate' フラグが false に設定されたオブジェクトは返されません)。これが私の状況です。

私は1つの抽象クラスと、抽象クラスを拡張するいくつかのクラス(Personなど)を持っています:

class AbstractObject{
  boolean active;
  DateTime createDate
}

class Person extends AbstractObject{
  String name;
  String surname;

  static searchable=[only:['name','surname','active']]
}

オブジェクトを削除するときは、「アクティブ」フラグを false に設定します。

使っていた前に

searchableService.search(myQuery, defaultOperator:"or", max: 10)

しかし、それは非アクティブなオブジェクトを返すので、クエリビルダーを試してみることにしました:

def result=searchableService.search({
  must(queryString(myQuery))
  must(term('active',false))
}, defaultOperator:"or", max: 10)

残念ながら、それは何も返しません。私が何を間違っているのか分かりますか?私のコードはどのように見えるべきですか?

4

1 に答える 1

0

試してみてください、私はそれをテストしませんでした。問題が解決することを願っています。

def finalQuery = "name:${myQuery}* OR surname:${myQuery}* -(active:false)";
def searchResults = Person.search(finalQuery , params)
于 2013-09-11T08:03:26.677 に答える