`
hankesi2000
  • 浏览: 97243 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Lucene & Solr Year 2011 in Review

阅读更多
原文链接:Lucene & Solr Year 2011 in Review

2011就要过去了,是时候回顾一下过去的12个月里做过的事了。让我们简要回顾一下这12个月以来,lucene/solr 业内的一些重要的事件。从下一段开始,我们将回顾一下Lucene/solr的主要修改、新特性、相关的大会和新书。

首先要庆祝的是,Apache Lucene作为Apache 软件基金会(ASF)的一个项目,已经有10年了;Lucene本身早就超过了10年之久。Otis是还在该方向的为数不多的一个人。当然我们也不能忘记Solr,它在ASF也已经接近6年了!

今年Lucene和Solr都有很多的改进和扩展。事实上,可以说Lucene&Solr在今年的改变比以往任何一年都多。这意味着,我们的项目做的越来越好了!下面来看一下2011年,Lucene&Solr一些重大的改进。

最令人期待的近实时搜索(Near Real-Time Search NRT)发布了。这意味着刚刚写入到Lucen的文档,立刻就能搜索到结果了,多爽!当然,NRT还仍然在准备阶段,但是它已经来了,就像其他客户端一样,我们应该开始用起来。

Field Collapsing 是在JIRA上连续几个月被关注和投票的功能。这个功能已经被实现,现在用户可以基于字段或查询来对结果进行分组(group)了。另外,你可以对这些组进行facet计算,而不是单纯的文档(相当于更细粒度的facet)。一个很强大的功能。

对Lucene用户来说,Lucene最终发布了faceting module。到目前为止,faceting只在Solr中可用。如果你是纯Lucene的用户,你现在不需要使用Solr的facet统计功能了。

在过去父子关系的模式(modeling parent-child relationships 个人认为是一对多的情况)在lucen/Solr中是几乎不能实现的,因为索引要搞定所有的事。现在不需要了:如果你需要父子关系的模式来构建索引的话,那么请用Join。Join函数可以在查询时将父子之间的文档进行合并,当然这需要重新设定索引。

语言的支持(language Support)在今年有了很大的改变。KStemFilter 被添加、添加对Unicode 4 的完整支持、新的日语和汉语的支持、新的stemmer-protection机制、同义词的filter在内存中的消耗减小等等。另外一个大的添加就是集成了Hunspell,通过它可以对语言进行特殊的处理,这样我们就能绑定更多新的语言了!

Lucene3.5 在term dictionary方面大大减小了内存的使用!现在,Lucene只需要使用原来内存的1/3 到1/5,就可以处理term dictionary了。

如果你使用Lucene并且需要翻阅很多的结果时,你可能会遇到问题。Lucene3.5添加了searchAfter方法,它很好的解决了deep paging的问题。

还有一个更新、更快、更可靠、基于向量的高亮功能,供Lucene和Solr使用。

Dismax很棒,但是扩展的DisMax 对Solr来说更好--它继承了Dismax查询处理的功能并提高了搜索结果的质量。

现在你可以 sort by function(想象对某个点,通过距离排序),并且一个新的空间搜索功能增加。

Solr又有了新的 [/url]推荐/自动完成 功能,它基于FST并可以降低内存的占用。如果你需要这个搜索应用,可以看下[url=http://sematext.com/products/autocomplete/index.html]Sematext's AutoComplete-它还有很多用户喜欢的功能。

虽然还没有发布,但是事物日志的功能已经提供给Solr在real-time get中使用了--不久你就可以通过ID来获取你刚添加的文档了。这也会被用在SolrCloud中来恢复某个节点的数据。

说到SolrCloud,我们在 Solr Digest, Spring-Summer 2011, Part 2: Solr Cloud and Near Real Time Search已经介绍过它,并且不久会再次介绍它。总之,SolrCloud将使用户在操作大Solr集群时变得更简单,它会使用当今成熟的理念和软件组件(如ZooKeeper-它可以很容易的搭建基于软件服务的分布式集群)。一些核心的功能如没有单点故障、节点单一、没有额外的Master-Slaver的搭建、集中式的集群管理、自动故障修复和一些基本的功能都变的更灵活。SolrCloud还没有发布,但是Solr的开发者已经基于源码并看到了好的进展。目前我们也在尝试使用SolrCloud并很高兴它的表现。

在2010年两个项目合并之后,我们看到这个社区和版本的发布时如此的迅速。Lucene和Solr都提交了5个新的版本!
引用
    3月份,Lucene/Solr3.1 发布,支持了Unicode4、 ReusableTokenStream, Spatial search, Vector-based Highlighter, Extended Dismax parser等等的新特性和bug修复。
    之后还不到3个月的6月4号,3.2发布了。这个版本带来了新的、大家期待的 results grouping、NRTCachingDirectory、高亮性能的提升。
    一个月后,3.3发布了:KStem stemmer、SpellChecker的新实现、Solr的Field Collapsing、自动完成功能的内存占用减小。
    夏天的最后一个月,3.4版本在9月14号发布。通过IBM的贡献,纯Lucene用户可以使用到原来只有在Solr中才能的faceting功能了。
    11月末,Lucene/Solr 本年的最后一个版本发布,3.5版包含:在处理term目录时大量的内存减少、deep paging支持、SearcherManager and SearcherLifetimeManager与语言识别一起发布(by Tika)、对TrieFields的sortMissingFirst 和sortMissingLast 支持。


在过去的12个月里,我们围绕着搜索和大数据的主题,参加了3个主要的回忆。
引用
           Lucene的变革3月份在旧金山召开;Otis在第一天做了标题为"Search Analytics: What? Why? How?" 的演讲。一些好的演讲和完整的会议议程请看http://lucenerevolution.com/2011/agenda,里面还有一些视频。
            接下来的这个会议是在柏林,这是一个比较基层的会议,从6月4号到10号。Otis做了它升级版本的"Search Analytics: What? Why? How?". 相关信息请关注http://berlinbuzzwords.de/
             最后的一次会议是在阳光明媚和充满旅游气息的巴塞罗那,会议从10.17-20号。Otis做了关于 "Search Analytics: Business Value & BigData NoSQL Backend" 的演讲(video, slides),另外Rafal作了关于"Explaining & Visualizing Solr 'explain' 的演讲(video,slieds).



未开源的项目也在持续注入着新鲜的血液。今年,Lucene/Solr开发组有几位新人进入了我们的大家庭:
Andi Vajda
Chris Male
Dawid Weiss
Erick Erickson
Jan Høydahl
Martin van Groningen
Stanisław Osiński

你知道如果有一本书专注于一个开源项目的话,那说明它已经成功了。那如果是多本书甚至更多的出版商发行它的话,那就是非常成功了。没有关于《Lucene in Action》的新版本,但是我们在7月份出版了《Solr3.1 Cook book》。Rafał's 的书包含了很多小窍门,可以让你在使用Solr时得心应手。另外一本,是David Smiley 和 Eric Pugh 在11月份写的《Apache Solr 3 Enterprise Search Server 》。这主要是对首版作了更新,并且它涵盖了Solr的大部分功能。

PS:本翻译主要还是让自己能更仔细的了解2011年Lucene/Solr方面的动向,以便更好的捕获感兴趣的方面。翻译能达目的即止。不想被折磨的还是去看原文吧。



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics