我想搜索 中的术语[0, 10]
,术语来自存储为整数的“CityId”字段。我写的内容如下:
String queryStr = "CityId : [0, 10]";
Query query = parser.parse(queryStr);
TopDocs topDocs = searcher.search(queryStr);
我想搜索 中的术语[0, 10]
,术语来自存储为整数的“CityId”字段。我写的内容如下:
String queryStr = "CityId : [0, 10]";
Query query = parser.parse(queryStr);
TopDocs topDocs = searcher.search(queryStr);
标准 QueryParser 不支持数字范围。QueryParser 支持的范围查询是字典式的,而不是数字式的。为此,您需要使用NumericRangeQuery:
Query query = NumericRangeQuery.newIntRange("CityId", 0, 10, true, true);
此外,最好参考QueryParser 文档了解 Lucene 的查询语法是什么样的。范围查询上限和下限不以逗号分隔。它应该看起来像myField:[begin TO end]
(同样,这不会是一个数字范围)。