使用Lucene的IndexReader读取索引文件的信息
来源:互联网 发布:bt下载软件 编辑:程序博客网 时间:2024/05/17 20:34
/*前面学习了创建索引的方法是IndexWriter,这里所使用的是读取所创建的
* 索引的方法IndexReader.
* 和他的子类
* MultiReader
* */
package indexReader;
import java.io.IOException;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.MultiReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermDocs;
public class IndexReader{
private String INDEX_STORE_PATH = "E:\\Lucene项目\\目标文件";
IndexWriter writer = null;
org.apache.lucene.index.IndexReader reader = null;
public IndexReader(){
try{
//创建索引
writer = new IndexWriter(INDEX_STORE_PATH, new StandardAnalyzer(), true);
writer.setUseCompoundFile(false);
Document doc1 = new Document();
Document doc2 = new Document();
Document doc3 = new Document();
Field f1 = new Field("bookname", "钢铁是怎样炼成的", Field.Store.YES, Field.Index.TOKENIZED);
Field f2 = new Field("bookname", "英雄儿女", Field.Store.YES, Field.Index.TOKENIZED);
Field f3 = new Field("bookname", "篱笆女人和狗", Field.Store.YES, Field.Index.TOKENIZED);
doc1.add(f1);
doc2.add(f2);
doc3.add(f3);
writer.addDocument(doc1);
writer.addDocument(doc2);
writer.addDocument(doc3);
writer.close();
//使用IndexReader读取索引
reader = MultiReader.open(INDEX_STORE_PATH);
System.out.println("索引文档列表 : ");
for(int i = 0; i < reader.numDocs(); i++){
System.out.println(reader.document(i));
}
//输出当前索引的版本信息
System.out.println("索引版本: " + reader.getVersion());
//输出当前的索引文件的数量
System.out.println("索引的文本数量: " + reader.numDocs());
//构造一个词条并在索引中查找
System.out.println("============================");
System.out.println("查找词条女---------->开始查找");
Term term1 = new Term("bookname", "女");
TermDocs docs = reader.termDocs(term1);
while(docs.next()){
System.out.println("---------查找中------------");
System.out.println("含有查找的<"+ term1 +">的Document的编号为" + docs.doc());
System.out.println("Term在文档中出现的次数" + docs.freq());
System.out.println("----------------------------");
}
reader.close();
}catch(IOException e){
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
IndexReader IR = new IndexReader();
}
}
* 索引的方法IndexReader.
* 和他的子类
* MultiReader
* */
package indexReader;
import java.io.IOException;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.MultiReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermDocs;
public class IndexReader{
private String INDEX_STORE_PATH = "E:\\Lucene项目\\目标文件";
IndexWriter writer = null;
org.apache.lucene.index.IndexReader reader = null;
public IndexReader(){
try{
//创建索引
writer = new IndexWriter(INDEX_STORE_PATH, new StandardAnalyzer(), true);
writer.setUseCompoundFile(false);
Document doc1 = new Document();
Document doc2 = new Document();
Document doc3 = new Document();
Field f1 = new Field("bookname", "钢铁是怎样炼成的", Field.Store.YES, Field.Index.TOKENIZED);
Field f2 = new Field("bookname", "英雄儿女", Field.Store.YES, Field.Index.TOKENIZED);
Field f3 = new Field("bookname", "篱笆女人和狗", Field.Store.YES, Field.Index.TOKENIZED);
doc1.add(f1);
doc2.add(f2);
doc3.add(f3);
writer.addDocument(doc1);
writer.addDocument(doc2);
writer.addDocument(doc3);
writer.close();
//使用IndexReader读取索引
reader = MultiReader.open(INDEX_STORE_PATH);
System.out.println("索引文档列表 : ");
for(int i = 0; i < reader.numDocs(); i++){
System.out.println(reader.document(i));
}
//输出当前索引的版本信息
System.out.println("索引版本: " + reader.getVersion());
//输出当前的索引文件的数量
System.out.println("索引的文本数量: " + reader.numDocs());
//构造一个词条并在索引中查找
System.out.println("============================");
System.out.println("查找词条女---------->开始查找");
Term term1 = new Term("bookname", "女");
TermDocs docs = reader.termDocs(term1);
while(docs.next()){
System.out.println("---------查找中------------");
System.out.println("含有查找的<"+ term1 +">的Document的编号为" + docs.doc());
System.out.println("Term在文档中出现的次数" + docs.freq());
System.out.println("----------------------------");
}
reader.close();
}catch(IOException e){
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
IndexReader IR = new IndexReader();
}
}
0 0
- 使用Lucene的IndexReader读取索引文件的信息
- 索引的读取工具IndexReader
- lucene使用教程5 --常用类的对象之IndexReader
- lucene索引_加权操作、对日期和数字进行索引、IndexReader的设计
- lucene的IndexReader的初始化过程
- lucene的IndexReader的初始化过程
- lucene IndexReader reOpen 的彻底研究
- Lucene六(IndexReader的设计)
- lucene的索引文件
- lucene的索引文件
- 【Lucene】IndexReader类的maxDoc()与numDocs()的区别
- Lucene 4.6 的IndexReader的undeleteAll方法寻找
- lucene管理IndexReader和IndexWriter的最佳实践
- lucene的索引文件结构
- 深入Lucene的索引文件
- 读取lucene索引域中的term
- lucene.net 基本的读取索引
- Lucene索引的简单使用
- Java基础第九天案例--登陆注册案例(2)
- 欢迎使用CSDN-markdown编辑器
- 【javascript】 借助script元素发送HTTP请求:JSONP原理-2
- 从B树,B+树,B*树到R树
- 2.3时间类
- 使用Lucene的IndexReader读取索引文件的信息
- C语言内存分配问题
- 数据挖掘常用函数简介
- 一种对软件模块进行单元测试的方法
- HDU 4923 Room and Moor(数学+YY)(好题)
- bit、位、byte、B、字节、字符等换算
- ZOJ 1711--DFS--组合--剪枝/去重
- jquery mobile 过滤
- hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: