RSS
热门关键字:  数据挖掘  数据仓库  商业智能  人工智能  搜索引擎

Lucene1.9搜索引擎改进特性列表

来源: 作者:互联网作品 时间:2007-04-12 点击:
Lucene 1.9 改进特性列表

  1.9 RC1  数据挖掘研究院

  注:lucene2.0发布版本并不是100%的和1.4.3版兼容。也就是说在你用2.0版本的Lucene开发包替换原来的1.4.3版本时,应该让你的应用程序首先和1.9的兼容。 数据挖掘研究院

  使用前提:  数据挖掘研究院

  1. 编译和使用Lucene需要  Java1.4 或以上版本。 

数据挖掘研究院

  Lucene 1.9 在运行时的变化: 

  1. 模糊搜索 FuzzyQuery 不再抛出 TooManyClauses 异常。当 FuzzyQuery 扩展多于  BooleanQuery.maxClauseCount 时 ,只有最相关的term会被重新写入query,因此避免了异常的抛出。    (Christoph) 数据挖掘研究院

  2. 把系统属性 "org.apache.lucene.lockdir" 改为    "org.apache.lucene.lockDir"。(Bernhard)

  3.  RangeQueries 和 FuzzyQueries 默认被转换成小写。 (as it has been the case for PrefixQueries    and WildcardQueries before).使用 setLowercaseExpandedTerms(false) 来禁止大小写自动转换的行为;同样也影响    PrefixQueries 和 WildcardQueries。(Daniel Naber) 

数据挖掘实验室

  4. 在使用 MultiSearcher 的时候文档频率也可以正确计算,全局性的计算各个 subsearchers 和 indices 中。以前计算的时候只是 locally 的,每个 index 的计算是分开的,这样引发的一个问题是:在多个indices中rank 是不相等的。 数据挖掘研究院

  (Chuck Williams, Wolf Siberski via Otis, bug #31841) 

  5. 在打开 IndexWriter 使用 create=true 参数,Lucene 现在只是删除index目录中属于Lucene自己的文件。( 判断文件名后缀的方式 )。原来是删除整个目录中的所有文件。(Daniel Naber and Bernhard Messer, bug #34695) 

数据挖掘研究院

  6. IndexReader 的版本 ,可以通过  getCurrentVersion() 和 getVersion() 返回。以前如果是新的indexes 那么返回的是0 。现在则用系统的毫秒数来初始化。    (Bernhard Messer via Daniel Naber)  数据挖掘实验室

  7. 一些默认的初始化值不再允许通过 system properties 来设置。相反在 IndexWriter 中新增了相关的 set/get 方法来设置相关属性。主要包括以下属性: 数据挖掘研究院

  在 IndexWriter 的 getter/setter 方法中:

  org.apache.lucene.writeLockTimeout, org.apache.lucene.commitLockTimeout,

数据挖掘研究院

  org.apache.lucene.minMergeDocs, org.apache.lucene.maxMergeDocs, 数据挖掘研究院

  org.apache.lucene.maxFieldLength, org.apache.lucene.termIndexInterval, 数据挖掘研究院

  org.apache.lucene.mergeFactor, 数据挖掘研究院

  还有 BooleanQuery 的 getter/setter 方法:

  org.apache.lucene.maxClauseCount

数据挖掘研究院

  还有 FSDirectory 的 getter/setter 方法: 数据挖掘研究院

  disableLuceneLocks

  (Daniel Naber)

数据挖掘研究院

  8. 修改了 FieldCacheImpl 方法使用用户提供的 IntParser 和 FloatParser,来替代使用  Integer 和 Float 的相关方法。 数据挖掘研究院

  (Yonik Seeley via Otis Gospodnetic) 

  9. 高级搜索返回的 TopDocs 和 TopFieldDocs 不再规范scores。

数据挖掘研究院

  (Luc Vanlerberghe via Yonik Seeley, LUCENE-469)  数据挖掘研究院

  1.9 的新特性:  数据挖掘研究院

  1. 增加了对压缩字段存储的支持。(patch #31149)

  (Bernhard Messer via Christoph)  数据挖掘研究院

  2. 增加了对压缩字段存储的支持。(patch #29370) 数据挖掘研究院

  (Bernhard Messer via Christoph)  数据挖掘实验室

  3. 在 term vectors 中增加了 位置和偏移信息。(Grant Ingersoll & Christoph) 

  4. 增加了一个新的 DateTools 。允许用户格式化日期到一种更可读的格式,以便于更好的适应索引。DateTools 不像 DateFields 类,它允许日期指定到1970年以前,但必须使用指定的日期格式。这样,在RangeQuerys中使用就更加有效率了。    (Daniel Naber) 

  5. QueryParser 现在可以正确的和Analyzers 一起工作了,即可以在一个位置返回多个 Token 。 比如:查询: “+fast + car”如果 Analyzer 在同一位置返回 car 和  automobile ,那么上面的查询将被解析成:”+fast +(car automobile)”。    (Pierrick Brihaye, Daniel Naber) 

数据挖掘实验室

  6. 允许unbuffered的目录实现。(e.g.,using mmap)。

数据挖掘研究院

  InputStream 被新类 IndexInput 替换,    BufferedIndexInput 和  OutputStream 则被    IndexOutput 和 BufferedIndexOutput。  InputStream 和 OutputStream 已经被废弃了。FSDirectory 现在是一个子类了。(cutting) 

数据挖掘研究院

  7. 增加了原生 Directory 和 TermDocs 的实现,可以工作在 GCJ 下。GCJ的版本需要 3.4.0 以上。可以使用 ant gcj 来运行例子程序。(cutting) 

  8. 增加了 MmapDirectory 类,它使用 nio to mmap 输入文件。现在MmapDirectory 比FSDirectory 要慢些。但他对每个查询term 使用更少的内存。(cutting & Paul Elschot) 

数据挖掘研究院

  9. 增加  javadocs-internal 到 build.xml ? bug #30360  数据挖掘研究院

  10. 增加了 RangeFileter ,比 DateFilter 更加通用,实用。

数据挖掘研究院

  (Chris M Hostetter via Erik)  数据挖掘研究院

  11. 增加了 NumberTools ,一个用来索引数字字段的工具类。    (adapted from code contributed by Matt Quail; committed by Erik)

  12. 增加了 public static IndexReader.main(String[] args) 方法。

数据挖掘研究院

  IndexReader 现在可以直接在命令行方式下使用,用来 列出或者从现存的索引中抽取单独的文件出来。

  (adapted from code contributed by Garrett Rooney; committed by Bernhard) 数据挖掘研究院

  13. 增加 IndexWriter.setTermIndexInterval() 方法。    (Doug Cutting)

数据挖掘研究院

  14. 增加 LucenePackage ,这些静态的 get() 方法返回 java.util.Package。调用者可以用它来获得 Lucene jar 中的版本信息。

数据挖掘实验室

  (Doug Cutting via Otis)

数据挖掘研究院

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?