Java Apache Lucene 6 QueryParser范围查询无法使用IntPoint

Java Apache Lucene 6 QueryParser范围查询无法使用IntPoint,java,lucene,Java,Lucene,我正在使用Lucene 6 newIntPoint,我想做一些范围搜索 使用IntPoint.newRangeQuery搜索有效并返回正确的文档,但是当我使用QueryParser(经典)或新的StandardQueryParser时,不会返回任何内容 // This works Query query = IntPoint.newRangeQuery("duration",1,20); System.out.println(query); //This doesn't work Query

我正在使用Lucene 6 new
IntPoint
,我想做一些范围搜索

使用
IntPoint.newRangeQuery
搜索有效并返回正确的文档,但是当我使用
QueryParser
(经典)或新的
StandardQueryParser
时,不会返回任何内容

// This works
Query query =  IntPoint.newRangeQuery("duration",1,20);
System.out.println(query);

//This doesn't work
QueryParser parser = new QueryParser("name", analyzer);
Query query = parser.parse("duration:[1 TO 20]");
System.out.println(query);

//This doesn't work
StandardQueryParser queryParserHelper = new StandardQueryParser();
Query query = queryParserHelper.parse("timestamp:[1 TO 20]", "timestamp");
System.out.println(query);



// In all 3 cases it prints: timestamp:[1 TO 20]

这是一个bug还是我遗漏了什么?

这不是bug,我不会说你遗漏了什么,真的。QueryParser不支持IntPoint字段或任何其他数字(PointValue)字段类型。QueryParser语法中的范围查询将始终生成一个
TermRangeQuery
,该查询将根据倒排索引中的词典顺序搜索该字段,这不适用于搜索PointValue字段。使用
IntPoint.newRangeQuery
和类似方法生成这些是正确的做法