24 solr
在我的SOLR中有日期字段(published_date),值的格式为"2012-09-26T10:08:09.123Z"
我如何通过简单的输入搜索,如"2012-09-10"而不是完整的ISO日期格式.
SOLR有可能吗?我试过了
fq=[2012-09-24%20TO%20NOW]
它应该通过过滤结果大于发布日期2012-09-24并且小于NOW返回.
但它返回的数据与2012-09-23的发布日期相同,如下所示
<float name="score">2.8183863</float>
<str name="name">Local Team Inspires Obama</str>
<date name="published_date">2012-09-23T07:44:53.123Z</date>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
提前致谢.
Khr*_*riz 43
如果你想获得上周的出版物,你可以做一些像:
&fq=published_date:[NOW-7DAY/DAY TO NOW]
Run Code Online (Sandbox Code Playgroud)
但是如果你想要一个具体的日期,你必须以SOLR日期格式进行:
&fq=published_date:[2013-07-17T00:00:00Z TO NOW]
Run Code Online (Sandbox Code Playgroud)
我希望有所帮助
Ahm*_*lem 14
最简单的Solr日期形式是关键字'NOW',它指的是当前的日期和时间.它在Solr中区分大小写,但Lucid查询解析器将允许它在任何情况下.如果没有指定明确的日期或日期数学,则可以使用'NOW',或者如果指定日期数学而没有明确的日期,则可以使用它.
使用基于ISO 8601的格式在Solr中写入明确的日期,该格式由yyyy-mm-ddThh:mm:ss.mmmZ形式的字符串组成,其中'yyyy'是四位数年份,第一个'mm '是两位数的月份,'dd'是两位数的日子,'T'是强制字面字母'T'表示时间跟随,'hh'是两位数小时('00'到'' 23'),第二个'mm'是两位数分钟('00'到'59'),'ss'是两位数秒('00'到'59'),可选'.mmm'是一个句点前面的三位数毫秒,'Z'是表示时间是UTC('祖鲁')的强制文字字母'Z'.毫秒部分,包括其领先期,是可选的.毫秒不需要尾随零.
For example:
    2008-01-01T00:00:00Z
    2008-01-01T00:00:00
    2008-01-01T00:00 same as [2008-01-01T00:00:00Z TO 2008-01-01T00:00:59Z]
    2008-01-01T00: same as [2008-01-01T00:00:00Z TO 2008-01-01T00:59:59Z]
    2008-01-01T same as [2008-01-01T00:00:00Z TO 2008-01-01T23:59:59Z]
    2008-01-01 same as [2008-01-01T00:00:00Z TO 2008-01-01T23:59:59Z]
    2008-01 same as [2008-01-01T00:00:00Z TO 2008-01-31T23:59:59Z]
    2008 same as [2008-01-01T00:00:00Z TO 2008-12-31T23:59:59Z]
Run Code Online (Sandbox Code Playgroud)
感谢Solr 文档
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           55924 次  |  
        
|   最近记录:  |