Grails: Lucene, Compass Query Builder and date ranges
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.
you can configure your domain classes to override or provide additional Lucene index entries for a property under different names.
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'
}
}
If you only want it to be searchable as 'createdAt', then just leave out the first 'searchable' entry.
精彩评论