2015-05-31 88 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引擎,這是一個了不起的工具,也可能是在您的域中進行基於文本的搜索的最佳方式。

祝你好運!

相關問題