项目地址:http://lucene.apache.org/core/
项目最新版本:4.2.1
相关Jar包下载:http://mirrors.cnnic.cn/apache/lucene/java/4.2.1/
我们还是从最简单的helloworld开始吧,lucene从广义上我们可以把他分为建立索引和查询索引。分别用以下代码来操作下吧。
建立索引
Directory dir; IndexWriter indexWriter; try { dir = FSDirectory.open(new File("D:/index")); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_42); IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_42,analyzer); indexWriter = new IndexWriter(dir, iwc); for(int i = 0 ; i < 100 ; i++){ Document doc = new Document(); doc.add(new StringField("Id", "123456"+i, Store.YES)); doc.add(new TextField("Content", "大家好,我叫xxx"+i, Store.YES)); indexWriter.addDocument(doc); } indexWriter.close(); } catch (IOException e) { e.printStackTrace(); }
查询索引
Directory dir; try { dir = FSDirectory.open(new File("D:/index")); IndexReader reader=DirectoryReader.open(dir); IndexSearcher searcher=new IndexSearcher(reader); Term term=new Term("Id", "1234561"); TermQuery query=new TermQuery(term); TopDocs topdocs=searcher.search(query, 5); ScoreDoc[] scoreDocs=topdocs.scoreDocs; System.out.println("search Totle:" + topdocs.totalHits+"\tmax score:"+topdocs.getMaxScore()); for(int i=0; i < scoreDocs.length; i++) { int doc = scoreDocs[i].doc; Document document = searcher.doc(doc); System.out.println("Id:"+document.get("Id")+"\tcontent:"+document.get("Content")); } reader.close(); } catch (IOException e) { e.printStackTrace(); }