0

我正在使用 Searchable 插件的查询构建器来尝试构建一个查询,该查询搜索一些内容并且只返回用户是受众或受众是全球的对象。我想要的代码类似于:

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

但是对此没有“或”,我怎么说我希望我的一个字段有一个术语并且有两个其他条件之一满足可搜索的查询构建器 DSL?

这似乎是一个愚蠢的问题,但我已经搜索了很长时间,但找不到答案。

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

这是一个很晚的答案,但与建设者的正确方法是

{
   必须(术语(“内容”,内容))
   必须 {
      术语(“到达”,“全球”)
      term('audience$user', 用户)
   }
}

除此之外,我也不确定您对Audience$user的含义。
http://grails.1312388.n4.nabble.com/Searchable-plugin-s-query-builder-nested-or-query-td1388307.html

于 2012-01-25T12:50:14.893 回答