2015-05-31 70 views
0

如何用Grails中的首个匹配字母在Grails中搜索结果? 例如这样的查询:findBy...("Moscow")必须有输出:“mosquite”,“莫斯基诺”等按单词Grails的第一个匹配字母搜索

+1

您可以使用findBy..Like 例如Post.findByTitleLike(“$ {queryString [0..n]}%”),其中n =>您想要考虑的字符数 –

回答

2

什么你希望做的,是容易的,如果范围是非常窄。如果您只想搜索前N个匹配字符 - 您可以使用findBy[domainClass]Like。你可以找到文件here

一个例子是这样的:

def size = params.query.size(); 
def results = Thing.findByNameLike("${params.query[0..size]}%") // search by length of query 

然而,这是缩小了你真正希望做的最有可能的方式。它可能会让你开始,但如果你想认真对待搜索,你需要额外的工具。看看位于here的Searchable插件。它使用Lucene引擎,这是一个了不起的工具,也可能是在您的域中进行基于文本的搜索的最佳方式。

祝你好运!

相关问题