Lucene & Solr Year 2011 in Review

孟子墨
2023-12-01
原文链接:[url=http://java.dzone.com/articles/lucene-solr-year-2011-review?mz=33057-solr_lucene]Lucene & Solr Year 2011 in Review[/url]

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

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

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

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

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

对Lucene用户来说,Lucene最终发布了[url=https://issues.apache.org/jira/browse/LUCENE-3079]faceting module[/url]。到目前为止,faceting只在Solr中可用。如果你是纯Lucene的用户,你现在不需要使用Solr的facet统计功能了。

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

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

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

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

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

Dismax很棒,但是[url=http://search-lucene.com/?q=Extended+Dismax]扩展的DisMax[/url] 对Solr来说更好--它继承了Dismax查询处理的功能并提高了搜索结果的质量。

现在你可以 [url=http://wiki.apache.org/solr/FunctionQuery#Sort_By_Function]sort by function[/url](想象对某个点,通过距离排序),并且一个新的空间搜索功能增加。

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

虽然还没有发布,但是[url=https://issues.apache.org/jira/browse/SOLR-2700]事物日志[/url]的功能已经提供给Solr在[url=https://issues.apache.org/jira/browse/SOLR-2656]real-time get[/url]中使用了--不久你就可以通过ID来获取你刚添加的文档了。这也会被用在SolrCloud中来恢复某个节点的数据。

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

在2010年两个项目合并之后,我们看到这个社区和版本的发布时如此的迅速。Lucene和Solr都提交了5个新的版本!
[quote] 3月份,Lucene/Solr3.1 发布,支持了Unicode4、 ReusableTokenStream, Spatial search, Vector-based Highlighter, Extended Dismax parser等等的新特性和bug修复。
之后还不到3个月的6月4号,3.2发布了。这个版本带来了新的、大家期待的 results grouping、[url=http://search-lucene.com/?q=NRTCachingDirectory&fc_project=Lucene]NRTCachingDirectory[/url]、高亮性能的提升。
一个月后,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 支持。
[/quote]

在过去的12个月里,我们围绕着搜索和大数据的主题,参加了3个主要的回忆。
[quote] Lucene的变革3月份在旧金山召开;Otis在第一天做了标题为"Search Analytics: What? Why? How?" 的演讲。一些好的演讲和完整的会议议程请看[url]http://lucenerevolution.com/2011/agenda[/url],里面还有一些视频。
接下来的这个会议是在柏林,这是一个比较基层的会议,从6月4号到10号。Otis做了它升级版本的"Search Analytics: What? Why? How?". 相关信息请关注[url]http://berlinbuzzwords.de/[/url]
最后的一次会议是在阳光明媚和充满旅游气息的巴塞罗那,会议从10.17-20号。Otis做了关于 "Search Analytics: Business Value & BigData NoSQL Backend" 的演讲([url=http://www.lucidimagination.com/devzone/events/conferences/ApacheLuceneEurocon2011/search-analytics-business-value-bigdata-nosql-backend]video[/url], [url=http://www.lucidimagination.com/sites/default/files/file/Eurocon2011/otis_gospodnetic_search_analytics_lucene_eurocon_2011.ppt]slides[/url]),另外[url=http://twitter.com/kucrafal]Rafal[/url]作了关于"Explaining & Visualizing Solr 'explain' 的演讲([url=http://www.lucidimagination.com/devzone/events/conferences/ApacheLuceneEurocon2011/understanding-visualising-solr-explain-information]video[/url],[url=http://www.lucidimagination.com/sites/default/files/file/Eurocon2011/Understanding%20and%20Visualizing%20Solr%20Explain%20information%20-%20Solr.pl%20-%20version%202.pdf]slieds[/url]).
[/quote]


未开源的项目也在持续注入着新鲜的血液。今年,Lucene/Solr开发组有几位新人进入了我们的大家庭:
[url=http://search-lucene.com/?q=&sort=newestOnTop&fc_author=Andi+Vajda]Andi Vajda[/url]
[url=http://search-lucene.com/?q=&sort=newestOnTop&fc_author=Chris+Male]Chris Male[/url]
[url=http://search-lucene.com/?q=&sort=newestOnTop&fc_author=Dawid+Weiss]Dawid Weiss [/url]
[url=http://search-lucene.com/?q=&sort=newestOnTop&fc_author=Erick+Erickson]Erick Erickson [/url]
[url=http://search-lucene.com/?q=&sort=newestOnTop&fc_author=Jan+Høydahl]Jan Høydahl [/url]
[url=http://search-lucene.com/?q=&sort=newestOnTop&fc_author=Martijn+v+Groningen]Martin van Groningen [/url]
[url=http://search-lucene.com/?q=&sort=newestOnTop&fc_author=Stanislaw+Osinski]Stanisław Osiński [/url]

你知道如果有一本书专注于一个开源项目的话,那说明它已经成功了。那如果是多本书甚至更多的出版商发行它的话,那就是非常成功了。没有关于《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方面的动向,以便更好的捕获感兴趣的方面。翻译能达目的即止。不想被折磨的还是去看原文吧。
 类似资料: