2013-09-06 1 views
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 

어떤 생각이 어떻게 구현하기 : 나는 이런 일이?

답변

1

필수적으로 당신이 해석을 만든 쿼리 : MUST match (query OR isPublished = true), 또는, 루씬의 구문 +(query isPublished:true)

내가 당신이 원하는 것은이 두 절을 (즉 : +query +ispublished:true)과 일치해야한다는 것입니다, 제대로 이해하고를 사용하므로 예 :

search { 
    must(queryString(query)) 
    must(term("ExhibitionPrint.exhibition.isPublished", true)) 
} 
+0

thx @femtoRgon, 이제 올바르게 작동합니다. D –

관련 문제