Lucene--002创建搜索

来源:互联网 发布:什么游戏不要网络也能玩 编辑:程序博客网 时间:2024/05/17 01:10
具体步骤:
1  创建Directory
2  创建IndexReader3  根据IndexReader创建IndexSearcher4  创建搜索的Query5  根据searcher搜索并且返回TopDocs6  根据TopDocs获取ScoreDoce对象7  根据searcher和ScoreDoc对象获取具体的Document对象8  根据Document对象获取需要的值
public void searcher(){      try {          //1  创建Directory          Directory directory = FSDirectory.open(new File("d:/lucene/index01"));          //2  创建IndexReader          IndexReader reader =IndexReader.open(directory);          //3  根据IndexReader创建IndexSearcher          IndexSearcher indexSearcher=new IndexSearcher(reader);          //4  创建搜索的Query          //创建parser来确定要搜索文件的内容,第二个参数表示要搜索的域          QueryParser queryParser= new QueryParser(Version.LUCENE_35,"content",new StandardAnalyzer(Version.LUCENE_35));          //创建query,表示搜索域为content中包含java的文档          Query query = queryParser.parse("java"); //搜索包含java的文件          //5  根据searcher搜索并且返回TopDocs          TopDocs tds =indexSearcher.search(query,10); //搜索10条          //6  根据TopDocs获取ScoreDoce对象          ScoreDoc[] sds = tds.scoreDocs;          for(ScoreDoc sd:sds){              //7   根据searcher和ScoreDoc对象获取具体的Document对象              Document d=indexSearcher.doc(sd.doc);              //8   根据Document对象获取需要的值              System.out.println(d.get("filename")+"["+d.get("path"));          }          //9 关闭reader          reader.clone();      } catch (IOException e) {          e.printStackTrace();      } catch (ParseException e) {          e.printStackTrace();      }  }
测试:
@Test    public  void  testSearch(){        HelloLucene h1= new HelloLucene();        h1.searcher();    }



0 0