Apache Solr基于long类型时间戳字段的范围查询咨询
Apache Solr基于long类型时间戳字段的范围查询咨询
嗨,我来帮你搞定这个Solr查询的问题!
首先,你提到的updatedAt是long类型的时间戳字段,那我们直接用毫秒级时间戳来做范围查询就可以了。2020年1月1日00:00:00对应的毫秒级时间戳是1577836800000,这个是关键数值。
你需要的“获取2020年1月之后的数据”的查询语句应该是这样的:
?q=updatedAt:[1577836800000 TO *]
我来拆解一下这个查询的含义:
[ ... TO ... ]是Solr里的闭区间范围查询语法,意味着会包含1577836800000这个时间点(也就是2020年1月1日0点整)的数据*是通配符,代表“所有比这个时间戳大的数值”,也就是2020年1月之后的所有数据
如果你的需求是不包含2020年1月1日0点整的数据,只想要严格在这之后的内容,那可以把方括号改成大括号(开区间):
?q=updatedAt:{1577836800000 TO *}
另外要确认一下你的updatedAt字段存储的时间戳单位是不是毫秒级——因为有些场景会用秒级时间戳,但long类型在Solr里通常是存毫秒级的,你用的1577836800000是毫秒级的,完全适配这个场景。
备注:内容来源于stack exchange,提问作者Harun Yılmaz
相关产品推荐
相关产品推荐

