2012-10-24 56 views
0

我想找到一些允许在搜索查询中使用Apache Lucene语法的应用程序数据。我按日期搜索数据,并希望从具体日期 - 具体日期查找数据。我怎样才能做到这一点?Apache Lucene - 按具体日期搜索

查询:

date: [2010-10-4 TO 2010-10-4] 

date: 2010-10-4 

不起作用。

回答

1

简短回答:在Lucene中没有日期查询语法的“标准”。你需要找出你的应用支持的格式。

长答案:在过去的几年中,Lucene保留了数字数据的特殊编码。最有可能的是,索引中的日期保持时间戳格式。这意味着查询解析器需要接受查询,咀嚼它并吐出时间戳。查询原始时间戳并不是很实际 - 至少对于人类而言 - 并且您的查询解析器可能有一些它能够理解的预定义格式。

例如,Solr有pre-defined set of supported date/time formats,并且能够将这些解析为时间戳。

不要忘了Lucene只是一个库,每个应用程序(包括Solr和你正在使用的)都是按照他们喜欢的方式使用它的。

+0

感谢您对这个信息。对于我对Apache Lucene的一般性问题感到抱歉。 – Mirek

+0

没问题!我希望这对未来的某个人仍然有用。 – mindas

0

我找到了解决方案。 对于一个conrete一天,查询搜索:

date: [2010-10-4T00:00:00 TO 2010-10-4T23:59:59] 

是正确的

+0

它只对你的应用程序正确。其他应用程序可以(并且确实)实现他们自己的日期格式。 – mindas