0

Searchable プラグインのクエリ ビルダーを使用して、一部のコンテンツを検索し、ユーザーが対象ユーザーであるオブジェクトまたは対象ユーザーがグローバルなオブジェクトのみを返すクエリを作成しようとしています。私がしたいコードは次のようになります。

{
  term("content", content)
  or {
    term('reach', 'global')
    term('audience$user', User)
  }
}

しかし、これには「または」はありません。フィールドの 1 つに用語が必要であり、検索可能なクエリ ビルダー DSL で他の 2 つの条件のいずれかが満たされるようにするにはどうすればよいでしょうか?

これはばかげた質問のように思えますが、私はかなり長い間検索してきましたが、答えが見つかりません。

4

2 に答える 2

2

検索可能なプラグインの文法を使用します。

search("+content:${content} +(reach:global OR audience.user.id:${user.id})")

ただし、「audience $ user」の意味がわかりません。

詳細はこちらをご覧ください: http://grails.org/Searchable+Plugin+-+Searching+-+String+Queries http://lucene.apache.org/java/2_4_0/queryparsersyntax.html#Boolean%20operators

于 2011-09-24T06:26:55.103 に答える
0

これは非常に遅い答えですが、ビルダーの正しい方法は

{
   must(term("content", content))
   しなければならない {
      term('リーチ', 'グローバル')
      term('オーディエンス$ユーザー', ユーザー)
   }
}

それとは別に、Audience$userの意味もわかりません。http://grails.1312388.n4.nabble.com/Searchable-plugin-s-query-builder-nested-or-query-td1388307.html
を参照してください。

于 2012-01-25T12:50:14.893 に答える