几种Lucene.Net打开IndexReader的方式

简介:

入门第一式:

IndexReader.Open(Dir,readOnly);

当readOnly为true的时候效率最高,最好不要用Reader删除修改记录;

入门第二式:

reader.Reopen(readOnly);

优点:比第一式效率高,推荐使用;

缺点:前提是需要有Reader存在;

入门第三式:

writer.GetReader();

优点:NRL的实现,对实时性要求高的不二选择;

缺点:writer说它很痛苦,因为每次调用内部都会flush一次以保证所有index会被启用;

 

追求效率(中阶):

public  class  IndexReaderProxy
{
     private  IndexReader _indexReader;
     private  readonly  object  _indexReaderLock = new  object ();
 
     public  IndexReaderProxy(Directory directory, bool  readOnly)
     {
         _indexReader = IndexReader.Open(directory, readOnly);
     }
 
     public  IndexReader GetCurrentIndexReader()
     {
         ReopenIndexReaderIfNotCurrent();
         return  _indexReader;
     }
 
     private  void  ReopenIndexReaderIfNotCurrent()
     {
         if  (_indexReader.IsCurrent()) return ;
         lock  (_indexReaderLock)
         {
             if  (_indexReader.IsCurrent()) return ;
             var  newIndexReader = _indexReader.Reopen();
             _indexReader.Close();
             _indexReader = newIndexReader;
         }
     }
}

 优点:效率和实时的一个平衡,在对实时要求不高的地方使用;

缺点:不属于NRL范畴,对实时性要求较高的地方就无法使用了;



本文转自today4king博客园博客,原文链接:http://www.cnblogs.com/jinzhao/archive/2012/05/03/2481018.html,如需转载请自行联系原作者

相关文章
|
自然语言处理 C++ 索引
NET 6全文检索引擎Lucene.NET 4.8简单封装
NET 6全文检索引擎Lucene.NET 4.8简单封装
91 0
|
XML 数据格式
.Net工具 - .NET文档生成工具2.2
ADB2.2下载   ADB2.2源代码下载 一、概述 程序的注释在程序的编写和维护中扮演着相当重要的角色,在生成工程的同时,说明文档也随之而生了。.NET文档生成工具用于将xml 文档注释生成格式类似MSDN的HTML帮助文档,并编译为CHM文档(下文中将该工具称为ADB,该软件仅测试过.net2.0的程序集)。
801 0
|
Web App开发
一起谈.NET技术,利用.NET Framework4.0的源代码调试你的应用程序
  相关文章:利用ASP.NET MVC源代码调试你的应用程序   .NET Framework 的部分源代码是开源的。这些源代码可以供我们学习和参考。也可在也平时调试应用,直接跳入这些开源了的.NET Framework的代码中。
960 0
|
数据库 索引 定位技术
|
自然语言处理 索引 程序员
Lucene.Net 2.3.1开发介绍——附录一、如何下载Lucene.Net的各种版本
原文:Lucene.Net 2.3.1开发介绍——附录一、如何下载Lucene.Net的各种版本 首先,你需要一个svn客户端。TortoiseSVN非常好用,可以从官方网站下载。下载地址:http://tortoisesvn.net/downloads。
793 0
|
SQL 前端开发 索引
Lucene.Net 2.3.1开发介绍 —— 一、接触Lucene.Net
原文:Lucene.Net 2.3.1开发介绍 —— 一、接触Lucene.Net 1、引用Lucene.Net类库找到Lucene.Net的源代码,在“C#\src\Lucene.Net”目录。打开Visual Studio,我的版本是2008,而Lucene.Net默认的是2005。
1114 0
|
Java Apache 分布式计算
Lucene.Net 2.3.1开发介绍 —— 简介
原文:Lucene.Net 2.3.1开发介绍 —— 简介          Lucene.Net是Lucene在dot net平台上的移植版本。它的功能与Lucene一样,都是用来提供一组API,让我们能快速开发自己的搜索引擎,当然,是全文搜索。
961 0
|
存储 自然语言处理 索引
Lucene.Net 2.3.1开发介绍 —— 三、索引(三)
原文:Lucene.Net 2.3.1开发介绍 —— 三、索引(三) 3、Field配置所产生的效果  索引数据,简单的代码,只要两个方法就搞定了,而在索引过程中用到的一些类里最简单,作用也不小的就是Field,接下来看看Field的各项设置都会有什么样的效果。
1032 0

热门文章

最新文章