我正在为索引对象构建一个lucene查询,以确定当前时间是否在开始时间和结束时间之间。我无法得到确切的lucene查询。
org.apache.lucene.search.Query luceneQuery5=queryBuilder3.bool()
.must(queryBuilder3.keyword().onFields("TimeDependentProfileKey").matching("TimeKey").createQuery())
.must(queryBuilder3.range().onField("StartTime").above(new Time(0)).createQuery())
.must(queryBuilder3.range().onField("StopTime").below(new Time(0)).createQuery()).createQuery();`
生成的lucene查询如下所示:
+TimeDependentProfileKey:3 +StartTime:[19700101000000000 TO *] +StopTime:[* TO 19700101000000000]
如何更改时间戳的格式,有人可以帮助我。
答案 0 :(得分:0)
通过搜索日期对象,您将格式化为休眠。我会考虑你指定的功能,虽然可能不太理想。如果您想使用自己的格式,您必须处理字符串,格式一致,并确保您的格式适用于排序和范围查询作为字符串。
如果您希望为您设置休眠句柄格式化日期,则需要使用@DateBridge(resolution = ...)
annotation定义日期字段。这确保了hibernate将格式化日期对于lucene中的正确范围查询和排序有效,并允许您使用日期对象而不是字符串查询字段。