2013-02-27 5 views
0

У меня есть вопрос о поисковом плагине:Grails плагин с возможностью поиска Критерии

У меня есть два домена:

class Ads { 
     static searchable = true 
     String fromCity 
     String toCity 
     User user 
    static constraints = { 
    } 
} 
class User { 
    String username 
    String password 
} 

И я разработал свою собственную поисковую страницу с два полем (fromCity, toCity). иметь что-то вроде:

def listResults = searchableService.search("NewYork","Miami") 

Так что я хотел бы знать, как я могу дать мой метод поиска этого к Criteria Field.

def srchResults = searchableService.search(??????) 

Я буду так благодарен, если кто-то может мне помочь.

ответ

1

Сначала вам нужно определить закрываемое для поиска закрытие в вашем классе домена. Например,

static searchable = { 
     analyzer "simple" 
     only = ['firstName','uuid'] 
     firstName boost: 5.0 
    } 

Затем вы можете выполнить поиск следующим образом.

def searchResults = SomeDomain.search(textToSearch + "*" + " -(firstName: ${myName})", params) 

-(firstName: ${myName}) это удалить свое имя из результатов поиска, так же вы можете и или другие поля в зависимости от вашей логики.

оператор по умолчанию «и» где, как вы можете изменить оператор, см следующего примера

defaultOperator - Either "and" or "or". Default is to defer to the global Compass setting, which is "and" if not otherwise set by you. 

search("mango chutney", defaultOperator: "or") 
// ==> as if the query was "mango OR chutney" 
//  without the option it would be like "mango AND chutney" 

Для более подробной информации смотрите документацию. Searchable Plugin Documentation

Сообщите мне, если вам нужна помощь.

More Help On Compass См. Раздел 12.5.1. Синтаксис строки запроса

 Смежные вопросы

  • Нет связанных вопросов^_^