我在搜索indexType:2013-06-26T18:30:00Z TO NOW
时收到无效的日期字符串异常。
我得到的堆栈跟踪如下:
Nov 18, 2013 10:19:18 AM org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException: Invalid Date String:'2013-06-26T18'
at org.apache.solr.schema.DateField.parseMath(DateField.java:165)
at org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:301)
at org.apache.solr.schema.TrieField.toInternal(TrieField.java:309)
Solr版本:3.5.0.2011.11.22.14.54.38
虽然当我查看索引时,它的日期值完全相同,所以有点奇怪。
提前致谢。
答案 0 :(得分:4)
查询解析器将您的查询解释为
indexType | 2013-06-26T18
defaultSearchField | 30
defaultSearchField | 00Z
defaultSearchField | TO
defaultSearchField | NOW
尝试改为
indexType:[2013-06-26T18:30:00Z TO NOW]
有关Solr查询语法here的更多信息。
答案 1 :(得分:0)
嗯,首先最简单的,我想正确的方法是将日期范围设置为平方括号[]:
indexType:[2013-06-26T18:30:00Z TO NOW]
另一种方法是在每个冒号之前使用转义序列,如下所示:
indexType:2013-06-26T18\:30\:00Z TO NOW