我尝试索引然后使用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\"");
但它没有用。
答案 0 :(得分:1)
QueryParser
无法处理数字。您可以使用NumericRangeQuery
进行搜索:
Query query = NumericRangeQuery.newIntRange("userType", 1, 1, true, true);