Lucene没有搜索号码字段

时间:2015-06-08 19:18:23

标签: lucene

我尝试索引然后使用lucene搜索整数字段。但它没有找到任何东西(文本字段搜索得很好)。

Document doc = new Document();    
//UserType = 1
doc.add(new IntField("userType", user.getType().getId(), Field.Store.YES));
FSDirectory dir = FSDirectory.open(FileSystems.getDefault().getPath(indexDir));
IndexWriterConfig config = new IndexWriterConfig(new StandardAnalyzer());
writer = new IndexWriter(dir, config);
writer.addDocument(doc);

对于搜索,我尝试使用下一个查询:

1) new QueryParser(defautField, new StandartAnalyzer()).parse("userType:1");
2) new QueryParser(defautField, new StandartAnalyzer()).parse("userType:[1 TO 1]");
3) new QueryParser(defautField, new StandartAnalyzer()).parse("userType:\"1\"");

但它没有用。

1 个答案:

答案 0 :(得分:1)

QueryParser无法处理数字。您可以使用NumericRangeQuery进行搜索:

Query query = NumericRangeQuery.newIntRange("userType", 1, 1, true, true);