我在 Lucene 3.0.3 中有一个数字字段,它与范围查询完美配合。如果我们切换到 TermQuery,它不会产生任何结果。例如:
Document doc = new Document();
String name = "geolongitude";
NumericField numericField = new NumericField(name);
double value = 29.0753505;
String valueAsString = "29.0753505";
numericField.setDoubleValue(value);
doc.add(numericField);
indexWriter.addDocument(doc);
indexWriter.commit();
indexWriter.close();
IndexSearcher indexSearcher = new IndexSearcher(open);
Query termQ = new TermQuery(new Term(name, valueAsString));
TopDocs search = indexSearcher.search(termQ, 10);
在这种情况下,我没有得到任何结果。我试图弄清楚是否存在任何“NumericTermQuery”,但找不到。我可以做一些棘手的事情(对我正在搜索的术语进行范围查询),但我不喜欢这个解决方案。
谢谢!