`
grantbb
  • 浏览: 272414 次
  • 性别: 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
分享到:
评论

相关推荐

    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