grails可搜索插件:如何使属性仅用于排序,而不用于搜索

时间:2014-04-25 15:16:39

标签: grails-2.0 grails-plugin grails-controller compass-lucene grails-searchable

我在项目中使用可搜索的插件。我有一个简单的域名,如下所示

    Class User {
        String title
        String Description
        int vote
        Date date
            }
    static searchable = {
            only: ['description','title','vote','date']
            date name: 'sortableTitle1', index: 'not_analyzed'
            vote name: 'sortableTitle2', index: 'not_analyzed'

}

我的需要是将投票和约会作为可排序的元素。在搜索时不应该考虑 我也知道,它可以通过使用下面的代码来完成

date name: 'sortableTitle1', index: 'not_analyzed' store:'no'

但是在这种情况下,对象的结果列表将不包含日期属性,因此无法在gsp中显示以进行显示。
因此,我如何才能使用日期'用于显示,排序而不是用于在我的gsp中搜索的元素。

1 个答案:

答案 0 :(得分:1)

我无法添加新评论,所以这是我答案的下一部分:

  

如何设置类的映射:

您可以在映射(documentation)中声明集合的默认排序顺序。

我希望这是你需要的!

文档中的示例:

To"替换",例如:

def airports = Airport.list(sort:'name')

您可以使用

class Airport {
    …
    static mapping = {
        sort name: "desc"
    }
}

我的回答的第一部分:

  

可能不是最好的事情,但这就是我为此所做的   问题:我为我的班级设置了一个映射,而Searchable帮助了   我得到了Ids。使用id,我使用getAll方法获取所有对象   (自动按映射排序)。