如何通过Grails中单词中的第一个匹配字母在Grails中搜索结果?
例如这样的查询:findBy...("Moscow")
必须有输出:“mosquite”,“moschino”等。
答案 0 :(得分: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引擎,这是一个了不起的工具,可能是在您的域中进行基于文本的搜索的最佳方式。
祝你好运!