步骤:
1)创建IndexSearcher对象
2)创建QueryParser对象
3)创建Query对象来封装关键字
4)用IndexSearcher对象去索引库中查询符合条件的前100条记录,不足100条记录的以实际为准
5)获取符合条件的编号
6)用indexSearcher对象去索引库中查询编号对应的Document对象
7)将Document对象中的所有属性取出,再封装回JavaBean对象中去,并加入到集合中保存,以备将之用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| @Test public void findIndexDB() throws Exception {
Directory directory = FSDirectory.open(new File(“E:/createIndexDB”));
IndexSearcher indexSearcher = new IndexSearcher(directory);
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30); QueryParser queryParser = new QueryParser(Version.LUCENE_30, “userName”, analyzer);
String keyWords = “钟”;
Query query = queryParser.parse(keyWords);
TopDocs topDocs = indexSearcher.search(query, 100);
for (int i = 0; i < topDocs.scoreDocs.length; i++) { ScoreDoc scoreDoc = topDocs.scoreDocs[i]; int no = scoreDoc.doc;
Document document = indexSearcher.doc(no);
String id = document.get(“id”); String userName = document.get(“userName”); String sal = document.get(“sal”); User user = new User(id, userName, sal); System.out.println(user); }
|