1.4.2 solr字段类型
(1.4.2.1) 字段类型定义和字段类型属性.
(1.4.2.2) solr附带的字段类型
(1.4.2.3) 使用货币和汇率
(1.4.2.4) 使用Dates(日期)
(1.4.2.5) 使用枚举字段
(1.4.2.6) 使用外部文件和程序
(1.4.2.7) 字段属性使用案例
使用Dates(日期)
日期格式
solr的TrieDateField(DateField已经弃用)字段类型,表示精确到毫秒的时间点.在XML Schema 规范中所使用的格式是一个严格的日期事件的规范表示格式.
YYYY-MM-DDThh:mm:ssZ:
YYYY:年
MM:月
DD:日
hh:24进制小时
mm:分钟
ss:秒
Z:表示UTC时间
注意:没有时区可以指定,这个日期字符串一般表示UTC时间.这里有一个例子:
1972-05-20T17:33:18Z
你可以选择加入部分小数,不允许在末尾加0,任何精确度超出毫秒的均被忽略掉:
1972-05-20T17:33:18.772Z
1972-05-20T17:33:18.77Z
1972-05-20T17:33:18.7Z
Date的数学运算
solr的日期字段类型同样支持日期的数学运算表达式,这使它很容易的及时创建时间相对于固定的时刻而言,当前时间可以用"NOW"来表示:
日期数学运算语法
日期表达式可以添加一些指定单位的时间数字,也可以对当前时间通过指定的单位来四舍五入.表达式可以链式的,从左到右执行.斜杠"/"表示四舍五入.
例子:
表示两个月之后的当前时间点:NOW+2MONTHS
表示一天以前的时间点:NOW-1DAY
表示当前小时开始:NOW/HOUR
下面计算(精确到毫秒)未来6个月又3天的时间点,然后四舍五入时间到天(day):
NOW+6MONTHS+3DAYS/DAY
混合方式:1972-05-20T17:33:18.772Z+6MONTHS+3DAYS/DAY
请求参数
NOW
example:
q=solr&fq=start_date:[* TO NOW]&NOW=1384387200000
TZ
默认的,所有日期的数学表达式都是相对于UTC时区来评估的.TZ属性可以指定时区.来覆盖默认的UTC时区.
例如,这个请求对当前月的每一天使用分面范围查询,时区为UTC.
http://localhost:8983/solr/select?q=*:*&facet.range=my_date_field&facet=true
&facet.range.start=NOW/MONTH&facet.range.end=NOW/MONTH%2B1MONTH&facet.range.gap=%2B1DAY
结果:
0
0
0
0
0
0
0
指定时区:
http://localhost:8983/solr/select?q=*:*&facet.range=my_date_field&facet=true
&facet.range.start=NOW/MONTH&facet.range.end=NOW/MONTH%2B1MONTH&facet.range.gap=%2B1DAY
&TZ=America/Los_Angeles
结果:
0
0
0
0
0
0
0
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com