`
grantbb
  • 浏览: 272420 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Lucene2.1的新变化

阅读更多

1.9 到 2.0 的改动不是很多,主要是废弃了一些 API , 2.0 起了一个过渡的作用。

2.1 是在 2.0 基础上做了很多的改进,提升了性能,修复了一些 Bug 等。


Lucene2.1 在索引的格式上做了一些改进,所以旧版本的 Lucene 是无法访问 2.1 版的索引文件。但是 2.1 版本的可以读写旧版本的索引文件。保持向下的兼容性。这点需要我们在使用时注意。


下面简单的列出一些新的特性:

 1.'s' 和 't' 从默认的 stopwords 中移掉了。但是依然还有 'a' 也可以会有同样的问题,所以分词需要针对自己的应用进行自定义。

 2.更新了 StandardAnalyzer 中的针对 CJK 的 Unicode 代码范围。用处不大,因为我们中文需要自己开发分词。

 3.允许在 QueryParser 的最前面使用通配符 (*, ?) ,之前是不允许的。这个比较有意义,可以实现一些模糊搜索。

 4.QueryParser 默认使用 ConstantScoreRangeQuery 执行范围查询。增加了 useOldRangeQuery 属性允许在需要的情况下使用旧的 RangeQuery

 5.对于WildcardQuery ,如果一个 term 不包含任何的 ? 或者 * ,之前会抛出异常,现在会执行一个 TermQuery 。

 6.去掉了deprecated 的 doc.fields() 方法和 Enumeration

 7.write lock 现在默认的位置是索引的目录,简单命名为 write.lock

 8.新的 FieldSelector API ,相关的 IndexReader 和实现都发生了变化。新的 Fieldable 接口被用作字段的延迟加载上。

 9.使用 MultiFieldQueryParser 的时候可以为不同的 field 指定不同的 boosts

 10.新的方法 IndexWriter.addIndexesNoOptimize() 在新添加一个新的 segments 的时候,只进行合并,不进行优化。

 11.QueryParser 允许在引号和短语中使用反斜线

 12.增加了方法 RAMDirectory.sizeInBytes(), IndexWriter.ramSizeInBytes() 和 IndexWriter.flushRamSegments() ,允许应用程序控制索引时缓存文档对内存的使用,这些蛮有用的,可以用于监控索引的过程。

 13.QueryParser 解析 *:* 为匹配所有的内容

 14.可以通过命令行在已经存在的索引文件中修改和删除 field

 15.IndexWriter 增加了方法来高效得更新 documents 。增加 IndexWriter.flush() 方法将内存的内容刷新到文件系统。

                                小兵 2007-3-22

分享到:
评论
7 楼 grantbb 2007-04-20  
我试了一下,挺能提升很大。
6 楼 caocao 2007-04-10  
SeanHe 写道
怎么没看到官方关于2.1的消息啊


http://svn.apache.org/repos/asf/lucene/java/tags/lucene_2_1_0/CHANGES.txt

我也纳闷官方消息为什么没有出来,只能从上面那个链接看到相关内容,改动太多了,看了好久。貌似没有激动人心的东西,暂时蹲在2.0观望一下。

不过我对这个还是很有兴趣的:
10. LUCENE-701: Lockless commits: a commit lock is no longer required
    when a writer commits and a reader opens the index.  This includes
    a change to the index file format (see docs/fileformats.html for
    details).  It also removes all APIs associated with the commit
    lock & its timeout.  Readers are now truly read-only and do not
    block one another on startup.  This is the first step to getting
    Lucene to work correctly over NFS (second step is
    LUCENE-710). (Mike McCandless)
有空可以试试性能 
5 楼 SeanHe 2007-03-25  
怎么没看到官方关于2.1的消息啊
4 楼 YuLimin 2007-03-25  
提升了性能,有没有一些详细的性能对比数据呢?
3 楼 kjhot 2007-03-23  
嗯,好东西,正在关注!
2 楼 shaucle 2007-03-23  
好像还是一个过度作用?
1 楼 rtdb 2007-03-23  
借问一下,还有没有数据文件2G的限制?
或者有没有64位版本?

相关推荐

    Lucene.net2.1

    **Lucene.NET 2.1:搜索引擎核心技术解析** Lucene.NET是Apache Lucene搜索引擎库的.NET版本,它为.NET开发者提供了强大的全文检索和文本分析功能。Lucene.NET 2.1是该库的一个较早版本,尽管如此,它仍然包含了...

    lucene API文档

    4. **Near Real-time Search**: Lucene支持近乎实时的搜索,即添加或更新文档后,几乎立即可以在搜索结果中看到变化。 总之,Lucene 2.1 API提供了强大的文本搜索功能,虽然版本较老,但其设计理念和核心API对理解...

    基于Lucene的搜索策略研究

    研究表明,搜索时间与被索引文件的大小基本无关,即无论索引文件大小如何变化,搜索时间都保持在毫秒级别。这意味着Lucene具有非常好的扩展性和稳定性,适合处理大量数据的搜索需求。 #### 3. 应用策略 基于以上...

    Lucene使用教程

    当索引发生变化时(如新增文档),Lucene会自动合并段以提高性能。 #### 四、Lucene基本使用示例 下面是一个简单的Lucene使用示例,演示如何创建索引和添加文档: ```java // 创建索引写入器 IndexWriter writer ...

    lucene笔记

    在Lucene中,添加索引通常是指将新的文档添加到索引库中。这涉及到创建文档对象、分析文档内容并最终将其写入索引。 **5.2 删除索引** 删除索引是指从索引库中移除不再需要的文档。在某些情况下,例如商品已经下架...

    lucenechm集合1.4 1.9 2.1 2.9 3.6 4.2

    在提供的“lucenechm集合1.4 1.9 2.1 2.9 3.6 4.2”中,包含了Lucene从1.4到4.2各个主要版本的CHM帮助文档,这为我们深入理解Lucene的发展历程和各个版本之间的变化提供了宝贵资料。 首先,从1.4版本开始,我们可以...

    实时搜索引擎源码LUCENE 实时搜索引擎源码LUCENE

    LUCENE支持实时索引,意味着当新文档或现有文档更新时,无需重建整个索引,而只需对变化的部分进行更新。LUCENE的Segment机制使得这一过程成为可能,新添加的文档会被写入新的Segment,而旧的Segment保持不变。 ###...

    compass+lucene

    在`compass2.1`版本中,Compass进行了优化和增强,提高了性能和稳定性,并且可能引入了一些新的特性和API。配合Lucene的jar包,开发者可以获得完整的全文搜索解决方案。 在实际应用中,`compass+lucene`的组合使得...

    nutch+lucene开发自己的搜索引擎ch3.pdf

    - IBM Eclipse 2.1帮助子系统的全文索引引擎。 - IBM WebSphere商业软件。 - C#和.NET版本的移植,扩大了使用范围。 2. **Nutch概述**: - **起源与发展**: Nutch最初是俄勒冈州立大学的一个开源项目,2005年...

    lucene全文检索

    Lucene 提供了添加新文档、删除文档和更新文档的方法。更新索引通常涉及删除旧的文档条目并重新索引新的内容。 ### 3. Lucene 搜索机制 #### 3.1 查询解析(Query Parsing) 用户输入的查询字符串首先会被解析成...

    Lucene创建与搜索索引

    - **创建项目**:在IDE中创建一个新的Java项目,并将下载的Lucene库添加到项目的依赖中。 ##### 2.2 创建文档模型 在Lucene中,文档是由一系列字段组成的。每个字段可以存储不同的数据类型,如字符串、数字等。...

    Lucene搜索引擎开发权威经典11-14.rar

    该书以Lucene的2.1版本为背景,深入浅出地介绍了从基础概念到实际开发应用的全过程。 在第11章“搜索请求的构建和解析”中,作者详细阐述了如何构建有效的搜索查询,这是Lucene搜索引擎工作流程中的关键一环。这一...

    spring + hibernate + struts2 + compass2.1

    **Compass2.1** 是一个开源的全文搜索引擎,它基于Lucene,提供了与ORM框架(如Hibernate)的集成。Compass能够自动索引和搜索持久化对象,使得在Web应用中实现高效的数据检索变得简单。它支持实时索引更新,对...

    一个专业搜索公司关于lucene+solar资料(1)

    - 对于已有的数据进行定期更新,只抓取新产生的数据。 - 有助于提高效率,减少资源消耗。 **3.3 抓取本地硬盘上的文件** - **3.3.1 目录遍历** - 对本地文件系统进行遍历,获取指定路径下的所有文件。 - 需要...

    解密搜索引擎技术实战:Lucene&Java精华版

    - **2.1 爬虫的基本原理**:解释了网络爬虫的基本工作机制。 - **2.2 爬虫架构**: - **2.2.1 基本架构**:介绍了一般网络爬虫的架构组成。 - **2.2.2 分布式爬虫架构**:探讨了如何设计和实现高效的分布式爬虫...

    lucence资源

    优化索引(Optimize)是一个合并多个段到一个新段的过程,有助于减少索引占用的空间。 四、读取Office功能 4.1 PDFBox库 文件pdfbox-app-1.8.8.jar表明项目可能依赖于PDFBox库,这是Apache的一个项目,用于处理PDF...

    一款基于asp.net技术业内领先的Web2.0社区平台

    v2.1的主要功能变化: 1、隐私增强; 2、增加了企业用户; 3、变圈子内容推荐为分享; 4、完善通知功能; 5、SNS增强; 6、相关信息挖掘的增强; 7、SEO增强; 在v2.1中新增了两个扩展应用(招贴与招聘): 利用spb...

    新手如何学习编程.doc

    - **高级主题**:深入学习搜索引擎Lucene、工作流JBPM、WebService、单点登录等高级主题。 - **新兴技术**:学习Hadoop等大数据处理技术,为将来从事云计算相关工作打下基础。 #### 3. 实践与项目经验 无论选择哪...

Global site tag (gtag.js) - Google Analytics