Grails:Lucene、Compass Query Builder 和日期范围 [英] Grails: Lucene, Compass Query Builder and date ranges
问题描述
我的 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屋!