现在的位置: 首页 > 综合 > 正文

Lucene 3.5.0版本的主要变化

2019年06月19日 ⁄ 综合 ⁄ 共 1078字 ⁄ 字号 评论关闭

Lucene项目管理委员会宣布Apache Lucene 3.5.0和Apache Solr 3.5.0已经可以使用。Lucene是一个高性能、支持全文搜索的文本搜索开发库。Solr是一个独立的搜索服务器,其核心使用了Lucene来做索引和搜索。


Lucene 3.5.0版本的主要变化包括:


降低内存消耗。现在建立词汇索引需要的内存比以前降低了3到5倍,实现这一点,是使用了更有效的内存数据结构来保存词汇。

深度分页支持。加入IndexSearcher.searchAfter方法,它在特定的ScoreDoc之后会返回结果。你可以将上一页的最后一个document传递给searchAfter方法,以得到下一页的结果。

SearcherManager。加入了org.apache.lucene.search.SearcherManager类,简化了在多个搜索线程中对IndexSearcher的分享和重新开启。底层的IndexReader实例如果不再被引用,可以安全关闭,其中使用了IndexReader的引用计数。还使用了获取方法来取得一个IndexSearcher,还有释放方法来关闭取得的IndexSearcher。

SearcherLifetimeManager。加入了org.apache.lucene.search.SearcherLifetimeManager类,提供跨越多个请求的索引的统一视图。它简化了服务多个请求的同一个IndexSearcher实例的使用,在分页或上下钻取搜索结果时,有更好的用户体验。

IndexWriter.optimize()弃用。IndexWriter.optimize方法不再使用,并被重新命名为forceMerge。这么做,是不再鼓励使用该方法,因此它的操作成本很高,而且只能在静态索引上使用。

IndexReader.reopen()重命名。IndexWriter.reopen方法替代为openIfChanged。如果索引没有变化,IndexReader.openIfChanged会返回null。一般来说,相对开启新的IndexReader,该方法成本更低。

NGramPhraseQuery。org.apache.lucene.search.NGramPhraseQuery是PhraseQuery类,针对n-gram模型的查询做了优化。当使用n-gram分析时,可以加速查询速度30%-50%。

来自:http://www.infoq.com/cn/news/2012/02/lucene-3.5-and-solr-3.5

抱歉!评论已关闭.