4

我正在使用 Compass 对内存数据结构中的数据进行查询。它适用于搜索字符串和枚举值,现在我想搜索日期。

搜索条件由@SearchRestriction注释注释。关于 someDate 的示例:

    @SearchRestriction(path="fooBar.someDate" type = SearchRestrictionType.EQUAL)
    String someDate;

在可搜索的数据中,SomeDate 的注释如下:

    @SearchableProperty
    Date someDate;

SomeDate内部可搜索数据由new Date();) 生成,查询字符串为20120802

调试器的情况: 此代码生成如下查询:

    someDate:20120802

someDate是我要查找的字段的名称,并且20120802是按 yyyyMMdd 顺序排列的日期。

问题: 运行此查询时未返回任何结果。我得到一个空列表。查询中的日期与日期对象中的相同。

怎么了?? 这是Date用 Compass 搜索 s 的错误方法吗?我只能找到有关日期的范围查询,但我找不到确切日期或部分确切日期的搜索。

4

1 回答 1

2

您需要指定可搜索属性 [日期] 的格式

@SearchableProperty(format = "yyyyMMdd")

在某种程度上,它与Grails:Lucene、Compass Query Builder 和日期范围有关

于 2012-08-14T19:01:35.680 回答