我的 Grails 应用程序正在使用可搜索插件,它建立在 Compass 和 Lucene 之上以提供搜索功能。我有两个可搜索的类,比如 Author 和 Book。我已将这些类映射到搜索索引,因此只能搜索某些字段。
要在两个类中执行搜索,我只需调用
def results = searchableService.search(query)
同时在两个类中进行搜索的一个很好的特性是,该results
对象包含有关包含的结果数量、可用结果数量、分页详细信息等的元数据。
我最近approved
在 Book 类中添加了一个布尔标志,我不希望未经批准的书籍出现在搜索结果中。一种选择是将上面的调用替换为:
def bookResults = Book.search(query + " approved:1")
def authorResults = Author.search(query)
但是,我现在需要弄清楚如何组合两个结果的元数据,这可能很棘手(尤其是分页)。
有没有办法通过单个查询搜索图书和作者,但只返回批准的图书?