使用Solr排序日期会弄乱一些日期

时间:2012-02-01 18:18:44

标签: java sorting date solr

使用Solr排序日期时遇到了一个奇怪的问题。 问题是,当我对它进行排序时,如果我们只有这样的日期就可以了:01/01 / 2011,01 / 02 / 2011,01 / 03/2011

但如果我们错误输入日期错误,例如:01/01 / 2011,01 / 02 / 2011,01 / 03/2011, 01/04/0011 以及空值,那我们就有问题了 它混合了一切。

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

任何可能对我有帮助的想法?

很抱歉,如果我没有提供很多细节,我仍然是新用的。还有别的,请问我会更好地详细说明。

更新

schema.xml

上的字段是这样的
<field name="endDate" type="tdate" indexed="true" stored="true"/>

1 个答案:

答案 0 :(得分:5)

如果你没有运行最新的Solr 3.5,你可能会遇到至少2个错误:) 但首先,要在开头获取缺失(null)值,您可以尝试设置:

sortMissingLast=false
sortMissingFirst=true

关于tdate字段类型定义(SchemaXml Doc)。这是Solr 3.5 SOLR-2881

中的新功能

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

有关发布的更多信息:Apache Solr Release Notes

如果您运行的是旧版本的Solr并且无法升级,或者我的建议不适合您,则总有另一种方法:)重新索引您的数据,但作为sint时间戳。