2013-09-05 3 views
0

Я хотел бы построить поисковый запрос для Grails Searchable Plugin, который вернет мне только активные объекты. (Не будет возвращать объекты с установленным флажком «активировать» false). Это моя ситуация.Проверка активного флага в grails searchable query

У меня есть один абстрактный класс, и некоторые классы, которые расширяют абстрактный класс (например, человека):

class AbstractObject{ 
    boolean active; 
    DateTime createDate 
} 

class Person extends AbstractObject{ 
    String name; 
    String surname; 

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

И когда я удалить объект я установить «активный» флаг ложной.

Прежде чем я использовал

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

но он возвращает объект, которые являются неактивными, поэтому я решил попробовать с Query Builder:

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

Unforunately она ничего не возвращает. Вы знаете, что я делаю неправильно? Как должен выглядеть мой код?

ответ

0

Попробуйте следовать, я не тестировал его. Надеюсь, что это решит проблему.

def finalQuery = "name:${myQuery}* OR surname:${myQuery}* -(active:false)"; 
def searchResults = Person.search(finalQuery , params) 
Смежные вопросы