IndexWriter的初始化
来源:互联网 发布:网络销售话术流程 编辑:程序博客网 时间:2024/06/06 17:18
package indexwriter;
import org.apache.lucene.store.Lock;
//IndexWriter的三个构造函数
//String类型的绝对路径
//public IndexWriter(String path, Analyzer a, boolean create);
//Field类型的经过打包的绝对路径
//public IndexWriter(Field path, Analyzer a, boolean create);
//Directory类型的是lucene内部的一种目录表达方式
//public IndexWriter(Directory d, Analyzer a, boolean create);
//Analyzer是一个Lucene的重要工具,负责对各种输入的数据源进行分析,包括过滤,分词等多中功能。
//第三个boolean的参数是由第一个参数所指定的路径处,删除源目录内的内容在重新建立索引。
//如果已经创建了,就在后面继续添加
//私有构造函数
public class Indexwriter {
private IndexWriter(Directory d, Analyzer a, final boolean create, boolean closeDir) throws IOException{
this.cloneDir = closeDir;
//将索引的存放目录存入IndexWriter
directory = d;
//将Analyzer存入IndexWriter
analyzer = a;
//为索引的存放目录构造一个Writer.lock, 这是为了防止有两个进程同时修改目录
Lock WriterLock = directory.makeLock(IndexWriter.WRITER_LOCK_NAME);
if(!writerLock.obtain(writeLockTimeout))
throws new IOException("Index locked for writer: " + writerLock);
//把writer.lock存放IndexWriter
this.writeLock = writeLock;
//对目录进行同步
synchronized (directory)
{
//告诉主目录,这个写正确的IndexWriter需要对其进行操作
new Lock.with(directory.makeLock(IndexWriter.COMMIT_LOCK_NAME), commitLockTimeOut){
public Object doBody() throws IOException
{
//如果是删除源文件,则向目录写入索引的基础信息
if(create)
segmentInfos.write(directory);
//否则从原先的文件中读取出索引的当前基础信息
else
segmentInfos.read(directory);
return null;
}
}.run();
}
}
}
import org.apache.lucene.store.Lock;
//IndexWriter的三个构造函数
//String类型的绝对路径
//public IndexWriter(String path, Analyzer a, boolean create);
//Field类型的经过打包的绝对路径
//public IndexWriter(Field path, Analyzer a, boolean create);
//Directory类型的是lucene内部的一种目录表达方式
//public IndexWriter(Directory d, Analyzer a, boolean create);
//Analyzer是一个Lucene的重要工具,负责对各种输入的数据源进行分析,包括过滤,分词等多中功能。
//第三个boolean的参数是由第一个参数所指定的路径处,删除源目录内的内容在重新建立索引。
//如果已经创建了,就在后面继续添加
//私有构造函数
public class Indexwriter {
private IndexWriter(Directory d, Analyzer a, final boolean create, boolean closeDir) throws IOException{
this.cloneDir = closeDir;
//将索引的存放目录存入IndexWriter
directory = d;
//将Analyzer存入IndexWriter
analyzer = a;
//为索引的存放目录构造一个Writer.lock, 这是为了防止有两个进程同时修改目录
Lock WriterLock = directory.makeLock(IndexWriter.WRITER_LOCK_NAME);
if(!writerLock.obtain(writeLockTimeout))
throws new IOException("Index locked for writer: " + writerLock);
//把writer.lock存放IndexWriter
this.writeLock = writeLock;
//对目录进行同步
synchronized (directory)
{
//告诉主目录,这个写正确的IndexWriter需要对其进行操作
new Lock.with(directory.makeLock(IndexWriter.COMMIT_LOCK_NAME), commitLockTimeOut){
public Object doBody() throws IOException
{
//如果是删除源文件,则向目录写入索引的基础信息
if(create)
segmentInfos.write(directory);
//否则从原先的文件中读取出索引的当前基础信息
else
segmentInfos.read(directory);
return null;
}
}.run();
}
}
}
0 0
- IndexWriter的初始化
- Lucene的IndexWriter初始化时的LockObtainFailedException
- Lucene的IndexWriter在初始化的时候遇到IndexWriter is closed的问题
- Lucene的IndexWriter初始化时的LockObtainFailedException的解决方法
- Lucene的IndexWriter初始化时的LockObtainFailedException的解决方法
- Lucene的IndexWriter初始化时的LockObtainFailedException的解决方法
- Lucene的IndexWriter初始化时报Lock obtain timed out: NativeFSLock
- IndexWriter的参数设定
- Lucene的IndexWriter
- IndexReader和IndexWriter的生命周期
- 简单封装Lucenene的IndexWriter、IndexSearcher对象
- 当创建完成一个indexWriter以后,indexWriter所对应的索引库就上锁了
- lucene管理IndexReader和IndexWriter的最佳实践
- IndexWriter有关的几个参数设置及重建索引注意事项
- 利用Lucene的IndexWriter建立索引(详解)
- Lucene深入学习(5)Lucene的IndexWriter
- Lucene-indexWriter
- Lucene--IndexWriter
- 在Ubuntu下安装PHP的ssh2扩展
- Word技巧篇之自动生成文档目录
- 当你真正感觉到痛,你才知道痛是什么——ACM退役贴
- 一些常见的重置密码漏洞分析整理
- 第8周项目4-个人所得税计算器
- IndexWriter的初始化
- Java 多线程多任务循环运行
- 本月有几天
- Spring (本人小白,初学spring ,欢迎各位大神指点)
- 步步为零
- PAT(A) 1031
- 【BZOJ】2049 [Sdoi2008]Cave 洞穴勘测 LCT入门题
- Android应用开发相关下载资源
- 通过容器方式添加 fragment的删除