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

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

最佳答案

您可以配置域类以使用不同名称覆盖或提供其他Lucene索引条目。

因此,假设您有一个带有'publishedOn'属性的类,但是您希望该属性既可以作为'publishedOn'也可以作为'createdAt'进行搜索。您将执行以下操作:

class ADomainClass {
    Date publishedOn

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

如果您只希望将其搜索为“createdAt”,则只需省略第一个“searchable”条目即可。

09-10 21:23