按单词 Grails 中的第一个匹配字母搜索

Search by the first match letters in word Grails

如何在Grails中通过word中的第一个匹配字母搜索Grails中的结果? 例如这样的查询:findBy...("Moscow") 必须有输出:"mosquite"、"moschino" 等

如果范围 非常 狭窄,那么您在这里要做的事情很容易。如果您只想搜索前 N 个匹配的字符 - 您可以使用 findBy[domainClass]Like。您可以找到文档 here.

一个例子是这样的:

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

但是,这最有可能缩小您真正想要做的事情的范围。它可能会让您入门,但是,如果您想认真对待搜索,您需要额外的工具。查看位于 here. It uses the Lucene 引擎的 Searchable 插件,这是一个了不起的工具,可能是在您的域中进行基于文本的搜索的最佳方式。

祝你好运!