2012-02-01 25 views
0

我在使用Solr排序日期时出现了一个奇怪的问题。 事情是,当我排序它,没关系,如果我们只有这样的日期:01/01/2011,01/02/2011,01/03/2011使用Solr排序日期搞砸了一些日期

但如果我们有错误的日期类型错误:01/01/2011,01/02/2011,01/03/2011,01/04/0011和空值,那么我们有一个问题 它混合了一切。

Solr的工作范围是否存在?这不是一个无效的日期,它只是一个很久以前通过的日期,但仍然有效。

任何想法可能可以帮助我?

对不起,如果我没有提供很多细节,我仍然使用它。别的,只要问一下,我会尽力详细说明。

UPDATE

场就是这样的schema.xml中

<field name="endDate" type="tdate" indexed="true" stored="true"/> 
+0

如果我理解正确,你想在开始时得到01/04/0011?你想要那个空值的地方? – Fuxi 2012-02-01 19:30:01

+0

空值应该在01/04/0011之前。是的,01/04/0011开头 – pringlesinn 2012-02-01 20:18:20

+0

您可以添加模式的字段类型定义吗? – Fuxi 2012-02-01 20:32:01

回答

5

如果没有运行最新的Solr 3.5,你会打至少2条虫子:) 但首先,让失踪(空)值,您可以尝试设置:

sortMissingLast=false 
sortMissingFirst=true 

ontdate字段类型定义(SchemaXml Doc)。这是Solr的新功能,3.5 SOLR-2881

问题二是0001-1000年之间的日期,这是记录为问题SOLR-2772

更多版本:Apache Solr Release Notes

如果你正在运行的Solr的一些老版本,你不能升级,或者我的建议不适合你,总会有另一种方式:)重新编译你的数据,但是作为sint时间戳。

+0

我向经理提供了这个选项,让我们看看他对此有何看法。非常感谢你!!一旦我们有答案,我会标记你的答案 – pringlesinn 2012-02-01 22:40:00