lucene学习之一(简单的demo)
2017-02-08 16:40
288 查看
使用的lucene版本5.5.3
结果:
1 package nyx.test; 2 3 import java.io.File; 4 import java.io.FileReader; 5 import java.io.IOException; 6 import java.nio.file.Paths; 7 8 import org.apache.lucene.analysis.Analyzer; 9 import org.apache.lucene.analysis.standard.StandardAnalyzer; 10 import org.apache.lucene.document.Document; 11 import org.apache.lucene.document.Field.Store; 12 import org.apache.lucene.document.TextField; 13 import org.apache.lucene.index.DirectoryReader; 14 import org.apache.lucene.index.IndexWriter; 15 import org.apache.lucene.index.IndexWriterConfig; 16 import org.apache.lucene.queryparser.classic.ParseException; 17 import org.apache.lucene.queryparser.classic.QueryParser; 18 import org.apache.lucene.search.IndexSearcher; 19 import org.apache.lucene.search.Query; 20 import org.apache.lucene.search.ScoreDoc; 21 import org.apache.lucene.search.TopDocs; 22 import org.apache.lucene.store.Directory; 23 import org.apache.lucene.store.FSDirectory; 24 25 public class LuceneTest { 26 public void index(){ 27 IndexWriter indexWriter = null; 28 try { 29 Analyzer analyzer = new StandardAnalyzer(); 30 Directory directory = FSDirectory.open(Paths.get("d:/index")); 31 //创建内存的索引就用RAM索引 32 //创建IndexWriter 33 IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); 34 indexWriter = new IndexWriter(directory, indexWriterConfig); 35 Document doc = null; 36 File file = new File("D:/xz"); 37 for (File f : file.listFiles()) { 38 doc = new Document(); 39 doc.add(new TextField("content", new FileReader(f))); 40 doc.add(new TextField("fieldname", f.getName(), Store.YES)); 41 doc.add(new TextField("path", f.getAbsolutePath(),Store.YES)); 42 indexWriter.addDocument(doc); 43 } 44 } catch (IOException e) { 45 e.printStackTrace(); 46 } finally { 47 try { 48 if(indexWriter!=null) 49 indexWriter.close(); 50 } catch (Exception e) { 51 e.printStackTrace(); 52 } 53 } 54 } 55 56 public void search() { 57 try { 58 Analyzer analyzer = new StandardAnalyzer(); 59 Directory directory = FSDirectory.open(Paths.get("d:/index")); 60 DirectoryReader reader = DirectoryReader.open(directory); 61 IndexSearcher searcher = new IndexSearcher(reader); 62 QueryParser parser = new QueryParser("content", analyzer); 63 Query query = parser.parse("宁静"); 64 TopDocs docs = searcher.search(query, 10); 65 for (ScoreDoc doc : docs.scoreDocs) { 66 Document document = searcher.doc(doc.doc); 67 System.out.println("文件名:"+"["+document.get("fieldname")+"]"); 68 System.out.println("文件路径:"+"["+document.get("path")+"]"); 69 } 70 } catch (IOException e) { 71 e.printStackTrace(); 72 } catch (ParseException e) { 73 e.printStackTrace(); 74 } 75 76 } 77 }
结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/21/5df1b77b7d0b7680f4529234d6989a9d.png)
相关文章推荐
- Lucene 学习(一):简单demo
- android简单demo学习系例之按钮
- android简单demo学习系例之排版(LinearLayout)[xml-based]
- lucene简单入门demo
- 一个简单的demo学习Android远程Service(AIDL的使用)
- 5、学习lucene之索引操作所用类简单总结
- lucene学习之helloworld(简单实例)
- Lucene学习笔记(一)Building and Installing the Basic Demo
- Ibatis.Net 学习手记一 简单的Demo
- Ibatis.Net 学习手记一 简单的Demo
- lucene-3.6.1简单安装与demo运行 for mac
- android简单demo学习系例之排版(TableLayout)[code-based]
- Silverlight学习(一) 创建Silverlight项目,构建一个简单的Silverlight Demo
- 学习OGRE制作简单人物行走demo(四)
- lucene简单入门demo
- android简单demo学习系例之排版(LinearLayout)[code-based]
- 学习OGRE制作简单人物行走demo(三)
- lucene学习之helloworld(简单实例)
- [MEF] 学习之一 入门级的简单Demo
- Ext.NET学习笔记之3(简单的WEB文件管理器DEMO)