Lucene中涉及整数的范围查询的形成

Lucene中涉及整数的范围查询的形成,lucene,Lucene,我正在Lucene索引中搜索其开始时间字段值小于或等于我的时间(t)且完成时间字段值大于我的时间(t)的文档。这里的开始时间、结束时间和我的时间都是hh:mm格式。我把它们都转换成一个等于hh*60+mm的整数值。 现在我想检查我的时间值是否在与开始时间关联的值和与完成时间关联的值之间 但在这里我遇到了几个问题。详情如下: 1.我无法向索引中添加具有整数值的字段 2.我不明白如何在Lucene中形成这个涉及整数的范围查询 因此,如果有人帮助我解决这个问题,我将不胜感激。谢谢。1:使用,例如: d

我正在Lucene索引中搜索其开始时间字段值小于或等于我的时间(t)且完成时间字段值大于我的时间(t)的文档。这里的开始时间、结束时间和我的时间都是hh:mm格式。我把它们都转换成一个等于hh*60+mm的整数值。 现在我想检查我的时间值是否在与开始时间关联的值和与完成时间关联的值之间

但在这里我遇到了几个问题。详情如下:

1.我无法向索引中添加具有整数值的字段

2.我不明白如何在Lucene中形成这个涉及整数的范围查询

因此,如果有人帮助我解决这个问题,我将不胜感激。谢谢。

1:使用,例如:

document.add(new IntField("starttime", 1234, Field.Store.YES));
2:,只需像starttime:[1234到1345],或者您可以自己创建一个

Query rangeQuery = NumericRangeQuery.newIntRange("starttime", 1234, 1345, false, false);
或者,对于大于,可以通过为其中一个值传递null来打开范围

Query rangeQuery = NumericRangeQuery.newIntRange("starttime", 1234, null, false, false);

先生,我不能将IntField与我的Lucene一起使用,即Lucene 3.6.2。不是所有版本的Lucene都支持它吗?不是,Lucene 4.0附带了类型化类Numerics。你想要的。如果我理解的话,Lucene 3.4提供了对queryparser中数值范围查询的支持,因此您应该对此很满意,NumericRangeQuery API没有太大变化。谢谢您,先生:)我已经下载了Lucene 4.3.0,现在我正在使用该版本。如果您刚刚开始使用Lucene,我认为使用4.x是谨慎的。如果您已经有了一个使用3.x的重要代码库,那么可能会对您有所帮助。是的,先生,我是Lucene的初学者。为了合并Lucene 4.3.0,我不需要在代码中做太多更改。我已经做了。谢谢,先生:)