lucene学习笔记
2017-11-16 16:26
330 查看
版本:lucene5.5
全文搜索基本由三部分组成:
- 索引部分
- 分词部分
- 搜索部分
创建索引基本步骤:
1.创建Directory
1
2
2.创建IndexWrider
1
2
3.创建document对象,并添加域对象,再通过IndexWriter添加文档
1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
搜索部分基本步骤
http://m.blog.csdn.net/linyuxxin/article/details/51298090[/code]
全文搜索基本由三部分组成:
- 索引部分
- 分词部分
- 搜索部分
创建索引基本步骤:
1.创建Directory
Directory directory =new RAMDirectory();// 创建在内存的索引 Directory directory = FSDirectory.open(Paths.get("路径")); //创建在硬盘上
1
2
2.创建IndexWrider
IndexWriterConfig iwc = new IndexWriterConfig(new StandardAnalyzer()); //分词器 IndexWriter idw = new IndexWriter(directory, iwc);
1
2
3.创建document对象,并添加域对象,再通过IndexWriter添加文档
//3.创建document对象 Document doc = null; //4.为Document对象添加field File f= new File("F:\\测试\\example"); for(File file: f.listFiles()){ doc = new Document(); doc.add(new Field("content",new FileReader(file))); doc.add(new Field("filename",file.getName(),Field.Store.YES,Field.Index.NOT_ANALYZED)); doc.add(new Field("path",file.getAbsolutePath(),Field.Store.YES,Field.Index.NOT_ANALYZED));//此处的Field是3.x版本 //5.通过IndexWriter 添加文档 idw.addDocument(doc); }
1
2
3
4
5
6
7
8
9
10
11
12
FieldType type = new FieldType(); type.setIndexOptions(IndexOptions.DOCS);//域的索引选项 type.setTokenized(false);//是否分词 type.setStored(true);//是否存储 doc.add(new Field("path",file.getAbsolutePath(),type)); //5.x版本
1
2
3
4
5
搜索部分基本步骤
//1.创建Directory Directory directory = FSDirectory.open(Paths.get("F:\\测试\\index")); //创建在硬盘上 //2.创建IndexReader IndexReader reader = DirectoryReader.open(directory); //3.根据IndexReader 创建IndexSearch IndexSearcher searcher = new IndexSearcher(reader); //4.创建搜索的Query //创建parser来确定要搜索文件的内容,第一个参数表示搜索的域 QueryParser parser = new QueryParser("content", new StandardAnalyzer()); //创建Query 表示搜索域为content中包含 的文档 Query query = parser.parse("black"); //5.根据seacher搜索并且返回TopDocs TopDocs tds = searcher.search(query, 10);//10是搜索的数目 //6.根据TopDocs获取ScoreDoc对象,评分对象 ScoreDoc[] sds=tds.scoreDocs; for(ScoreDoc sd:sds){ //7.根据seacher和ScordDoc对象获取具体的Document对象 Document d = searcher.doc(sd.doc); //8.根据Document对象获取需要的值 System.out.println(d.get("filename")+"["+d.get("path")+"]"); } reader.close(); //9.关闭reader
http://m.blog.csdn.net/linyuxxin/article/details/51298090[/code]
相关文章推荐
- 【转载】Lucene学习笔记(六)
- Lucene-学习笔记 (版本3,5VS 5.3)
- Lucene 学习笔记(一)——基本对象及结构
- lucene学习笔记
- lucene3.6.0索引操作的学习笔记
- 全文检索lucene学习笔记(三)
- 全文检索lucene学习笔记(四)
- Lucene 3.5.0学习笔记
- 【转载】Lucene学习笔记(七)
- Lucene学习笔记(4)将M$Word转为HTML
- lucene 学习笔记
- 【Lucene学习笔记】基本使用和认识
- Lucene 学习笔记(二)——搜索方式(一)
- lucene3.6.0索引操作的学习笔记
- Lucene全文检索学习笔记(一):lucene的应用
- Lucene学习笔记(一)
- 【转载】Lucene学习笔记(八)--完
- Lucene学习笔记-内存与文件索引的简单操作
- LUCENE学习笔记
- lucene学习笔记(三)lucene搜索查询