我想搜索[0, 10]
中的字词,而字词来自存储为整数的字段“CityId”。我写的内容如下:
String queryStr = "CityId : [0, 10]";
Query query = parser.parse(queryStr);
TopDocs topDocs = searcher.search(queryStr);
答案 0 :(得分:1)
标准QueryParser不支持数值范围。 QueryParser支持的范围查询是Lexicographic,而不是数字。您需要使用NumericRangeQuery:
Query query = NumericRangeQuery.newIntRange("CityId", 0, 10, true, true);
另外,可能最好引用QueryParser documentation来了解Lucene的查询语法。范围查询的上限和下限不用逗号分隔。它应该看起来像myField:[begin TO end]
(但是,这不会是数字范围)。