我正在使用Grails 2.3.x和Searchable插件
想象一下下一个域类书(String Author,String Title,Date pubDate);
我需要使用不同的字段进行搜索,例如;
我想在Field1: 03/03/2014
和Field2: 04/04/2014
之间搜索出版日期(pubDate),
例如:Field1: 03/03/2014
和Field2: 04/04/2014
之间标题为X和pubDate的图书
无论如何使用可搜索的插件进行不同参数的搜索?
非常感谢。
编辑:
我在哪里需要编写该代码?
def search = {
...
Book.search {
gt("pubDate", field1)
lt("pubDate", field2)
}
}
答案 0 :(得分:0)
Searchable提供了一个应该完成此任务的搜索构建器。您可以像这样进行搜索:
Book.search {
gt("pubDate", field1)
lt("pubDate", field2)
}
和
Book.search {
term("title", x)
gt("pubDate", field1)
lt("pubDate", field2)
}
该代码将在索引中搜索符合条件的所有Book
个对象,并返回List
个Book
个。您可以将其放在控制器或服务中。例如,这是控制器操作中的样子:
def searchBooks(String title, Date pubDate) {
def books = Book.search(result: 'every') {
term('title', title)
gt('pubDate', pubDate)
}
render view: 'list', [bookList: books]
}
请参阅此文档:http://grails.org/Searchable+Plugin+-+Searching+-+Query+Builder