Lucene5(1)简单示例
来源:互联网 发布:爱站网ip反查域名 编辑:程序博客网 时间:2024/04/27 01:12
NO BIBI亮代码
private IndexWriter writer;private IndexReader reader;// lucene索引存放了路径private static final String INDEX_DIR = "E:/LuceneIndex";/** * 实例化写索引 */public IndexWriter getIndexWriter(String indexDir) throws Exception { if (writer == null) { Analyzer analyzer = getAnalyzer(); IndexWriterConfig writerConfig = new IndexWriterConfig(analyzer); // Directory ramDirectory= new RAMDirectory();//索引写入内存 // 索引存储磁盘位置 Directory directory = FSDirectory.open(Paths.get(indexDir)); writer = new IndexWriter(directory, writerConfig); } return writer;}/** * 获取读索引实体,并打印读到的索引信息 */public IndexReader getIndexReader(String indexDir) throws IOException { if (reader == null) { Directory directory = FSDirectory.open(Paths.get(indexDir)); reader = DirectoryReader.open(directory); // 通过reader可以有效的获取到文档的数量 System.out.println("当前存储的文档数:" + reader.numDocs()); System.out.println("当前存储的文档数,包含回收站的文档:" + reader.maxDoc()); System.out.println("回收站的文档数:" + reader.numDeletedDocs()); } return reader;}/** * 关闭写索引 */public void close() throws Exception { writer.close(); reader.close();}/** * 获取分词器 */private Analyzer getAnalyzer(){ return new StandardAnalyzer();}@Testpublic void testWriter() throws Exception { IndexWriter writer = getIndexWriter(INDEX_DIR); Document document = new Document();// 实例化一个文档 // 添加一个文档信息,相当于一个数据库表字段 document.add(new TextField("name", "hello world", Field.Store.YES)); document.add(new TextField("describes", "测试luence", Field.Store.YES)); writer.addDocument(document); writer.close();}@Testpublic void testReader() throws Exception { IndexReader reader = getIndexReader(INDEX_DIR); IndexSearcher searcher = new IndexSearcher(reader); // 指定Document被搜索的属性 QueryParser parser = new QueryParser("describes", getAnalyzer()); // 指定索引内容 Query query = parser.parse("试"); // 搜索前十个 TopDocs hits = searcher.search(query, 10); for (ScoreDoc sd : hits.scoreDocs) { Document doc = searcher.doc(sd.doc); System.out.println(doc.get("name") + "[describes]=" + doc.get("describes")); } reader.close();}
阅读全文
0 0
- Lucene5(1)简单示例
- Lucene5.x简单示例教程
- Lucene5.x简单示例教程
- Lucene5 一个简单的Demo
- lucene5.3.1+IKAnalyer 构建简单搜索引擎
- lucene5.1 fst源码分析(BooleanQuery分析)
- Lucene5学习之LuceneUtils工具类简单封装
- Lucene5学习之LuceneUtils工具类简单封装
- Lucene5学习之LuceneUtils工具类简单封装的例子
- lucene5.3.1简单增删改查、评分、分页
- Lucene5 学习笔记(1) —— Hello World
- java awt简单示例1
- Quarts 官方简单示例1
- 1-1简单的C程序示例
- VclZip 3.10.1的简单使用示例
- lucene4.1多域查询简单示例
- C语言简单示例(文件读写1)
- Liferay6.1简单增删改查示例
- 第十七课 创建和操纵表
- SpringBoot添加JSP
- tensorflow编程: Inputs and Readers
- POJ 2318 TOYS
- gcc,make,gdb命令用法
- Lucene5(1)简单示例
- Unable to convert classes into dex format 解决方案之一
- Android 7 源码分析系列导读
- bzoj1537 [POI2005]Aut- The Bus 树状数组+DP。
- 洛谷1531 线段树模板:区间最值
- CF 438D The Child and Sequence(线段树取模)
- 1029. 旧键盘(20)--PAT乙级
- N条线段求交的扫描算法
- 无约束最优化方法