Grails:Lucene、Compass Query Builder 和日期范围 [英] Grails: Lucene, Compass Query Builder and date ranges

查看:15
本文介绍了Grails:Lucene、Compass Query Builder 和日期范围的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的 grails 项目中有可搜索的插件.我让它在工作中索引 4 个不同的表.不幸的是,每个表都有一个名称不同的日期字段.有些被命名为 createdAt,有些被命名为 publishedOn,等等......

I have the searchable plugin working with my grails project. I have it indexing 4 different tables at work. Unfortunately, each table has a date field that is named differently. Some are named createdAt, some named publishedOn, etc...

在我的搜索中,我需要从这些字段中获取特定日期范围内的项目.有没有办法做到这一点?我在该插件的文档中看到了一个特定实例,但它没有考虑到我必须处理的不同字段名称.

Within my search, I need to get items that are within a specific date range out of those fields. Is there a way to do this? I've seen one specific instance in the documentation for the plugin, but it doesn't take into account different field names like I have to deal with.

推荐答案

您可以配置域类以覆盖或为不同名称的属性提供额外的 Lucene 索引条目.

you can configure your domain classes to override or provide additional Lucene index entries for a property under different names.

因此,假设您有一个具有publishedOn"属性的类,但您希望该属性可以作为publishedOn"和createdAt"进行搜索.您将执行以下操作:

So, suppose that you have a class with a 'publishedOn' property, but you want that property to be searchable as both 'publishedOn' and 'createdAt'. You would do something like the following:

class ADomainClass {
    Date publishedOn

    static searchable = {
       'publishedOn' format:'yyyyMMdd'
       'publishedOn' name: 'createdAt', format 'yyyyMMdd'
    }
}

如果您只想将其作为createdAt"进行搜索,那么只需省略第一个可搜索"条目.

If you only want it to be searchable as 'createdAt', then just leave out the first 'searchable' entry.

这篇关于Grails:Lucene、Compass Query Builder 和日期范围的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆