1

我有两个这样的域类:

class ExhibitionPrint {
  Exhibition exhibition
  Print print

  String title
  String description
  ....


  static searchable = {
      printSizes    component: true
      exhibition    component: true
}
}

class Exhibition {

String title
boolean isPublished
    ....
static hasMany = [exhibitionPrints: ExhibitionPrint]

static searchable = {  
    exhibitionPrints component: true
}
}

我在搜索中使用了闭包,但它似乎不起作用,即使 Exhibition.isPublished 等于 false,我也会得到结果。我有这样的事情:

def searchResult = ExhibitionPrint.search{
must{
         queryString(query)
         term("ExhibitionPrint.exhibition.isPublished", true)
}
}.results

知道如何实现吗?

4

1 回答 1

1

您创建的查询本质上解释为:MUST match (query OR isPublished = true),或者,使用 lucene 的语法+(query isPublished:true)

如果我理解正确,您想要的是它必须匹配两个子句(即:) +query +ispublished:true,因此类似于:

search {
    must(queryString(query))
    must(term("ExhibitionPrint.exhibition.isPublished", true))
}
于 2013-09-06T15:29:48.877 回答