我正在使用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搜索Date
这是错误的方法吗?我只能找到关于日期的范围查询,但搜索的确切日期或我找不到的确切日期的一部分。
答案 0 :(得分:2)
您需要指定可搜索属性[日期]
的格式@SearchableProperty(format = "yyyyMMdd")
在某种程度上,它与Grails: Lucene, Compass Query Builder and date ranges
有关