我想找到一些允许在搜索查询中使用Apache Lucene语法的应用程序数据。我按日期搜索数据,并希望从具体日期 - 具体日期查找数据。我怎样才能做到这一点?Apache Lucene - 按具体日期搜索
查询:
date: [2010-10-4 TO 2010-10-4]
或
date: 2010-10-4
不起作用。
我想找到一些允许在搜索查询中使用Apache Lucene语法的应用程序数据。我按日期搜索数据,并希望从具体日期 - 具体日期查找数据。我怎样才能做到这一点?Apache Lucene - 按具体日期搜索
查询:
date: [2010-10-4 TO 2010-10-4]
或
date: 2010-10-4
不起作用。
简短回答:在Lucene中没有日期查询语法的“标准”。你需要找出你的应用支持的格式。
长答案:在过去的几年中,Lucene保留了数字数据的特殊编码。最有可能的是,索引中的日期保持时间戳格式。这意味着查询解析器需要接受查询,咀嚼它并吐出时间戳。查询原始时间戳并不是很实际 - 至少对于人类而言 - 并且您的查询解析器可能有一些它能够理解的预定义格式。
例如,Solr有pre-defined set of supported date/time formats,并且能够将这些解析为时间戳。
不要忘了Lucene只是一个库,每个应用程序(包括Solr和你正在使用的)都是按照他们喜欢的方式使用它的。
我找到了解决方案。 对于一个conrete一天,查询搜索:
date: [2010-10-4T00:00:00 TO 2010-10-4T23:59:59]
是正确的
它只对你的应用程序正确。其他应用程序可以(并且确实)实现他们自己的日期格式。 – mindas
感谢您对这个信息。对于我对Apache Lucene的一般性问题感到抱歉。 – Mirek
没问题!我希望这对未来的某个人仍然有用。 – mindas