InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Lucene 2.2发布:加入词条载荷、函数查询及性能提升

作者 Ryan Slobojan 译者 张海龙 发布于 2007年7月11日

领域
架构 & 设计,
运维 & 基础架构,
语言 & 开发
主题
Java ,
搜索 ,
开放源代码
标签
Lucene

Lucene Java 2.2已经可以使用啦!Lucene是一个完全由Java编写的高性能、全特性的全文检索引擎库。在这一版中有许多新特性,其中包括:

  • 词条载荷(payloads)——允许用户将任意二进制数据和索引中的任意词条(term)相关联;
  • 函数查询(function queries)——为文档匹配度(score)的计算方式提供更高的可控性(从Solr中并入);
  • 通过NFS进行“瞬间(point-in-time)”查询——将类似于快照的功能引入NFS
  • 用来操作预分析字段的新API——可以让用户操作预先分析的文档字段而无须另加空分析器代码;
  • 公开的Maven发行版——Lucene最新版本中的所有模块都可以通过Maven Repository获得。

InfoQ采访了Lucene项目的代码贡献人及项目管理委员会(Project Management Committee,PMC)成员Grant Ingersoll,进一步了解了这个发布版。在谈话过程中,Ingersoll希望InfoQ注明他所说的观点和意见都属于个人性质,不代表Lucene PMC的官方观点。

InfoQ了解到,Lucene 2.2的发布标志着该项目的发布周期朝着一个更短的按季度发布的方向飞跃。Ingersoll相信更频繁的发布会带来很多的好处,比如说使为社区提供Bug修复和新特性变得更快。发布过程也因为得到Maven的支持而变得更加有效率,因此未来Maven用户将能更快速地获得发布版本。

InfoQ请Ingersoll详细地描述了词条载荷的特性,他说:

词条载荷是一个允许信息在索引中按逐词条储存的新特性。例如,当索引Web页面时,储存某个关键词的额外信息可能会很有用,例如这个关键词关联的URL或者经过文字分析后得出的权重系数。在更高级的应用中,为了突出语句中的名词成分相对于其它成分的重要性,储存语句中这个关键词出现的部分可能会很有帮助。我今年在ApacheCon Europe会议上的演讲中就有几张讲述词条载荷的幻灯片,感兴趣的读者可以去看看。

他还描述了源于Solr的新的函数查询功能:

新的搜索函数包(org.apache.lucene.search.function)允许开发人员在计算文档相关度使用某个字段的实际内容。例如,如果你在文档的字段中储存精度和纬度信息,你就可以使用这些字段中的信息影响文档的排名。就是说,如果你搜索星巴克,你可以在结果中将离用户较近的分店(假定你知道用户的地点)排在较远分店的前面。另一个例子是使用价格或者利润信息来影响排名(即给能为公司带来更大利润的产品打更高的评分,并不是说道义上我同意这样做,但它确实可以做到)。

随后,在Ingersoll被问到用户对Lucene的后续版本会有什么期望时,他指出,在使用了Michael McCandless领导的几项新的内存管理技术之后,索引性能将会得到显著提升。他还提到,在最近发布的Lucene中已经加入了不少性能改善,用户可以自己去体验一下这些变化。最后,Ingersoll说,对Java 5的支持和更灵活的索引过程将是Lucene未来可能出现的特性。

这一版提供了一个全面的更新日志,列出了这个版本中所有已修复的Bug、特性和优化情况。和以前的版本一样,2.2版也可以读取和导入以前版本的索引,不过一旦进行了转换,索引将不能被以前的版本(如2.1版)使用。

查看英文原文:Lucene 2.2: Payloads, Function queries, and more speed

point-in-time 发表人 Guo Xiaogang 发表于
  1. 返回顶部

    point-in-time

    发表人 Guo Xiaogang

    “point-in-time”让IndexReader在index被更新的同时仍然能够进行查询(虽然多个IndexWriter同时更新的问题还没解决),但这也意味着IndexReader看不到在它open之后更新的内容,因此你需要不时re-open IndexReader以保持查询结果的更新。可用IndexReader.isCurrent()来检测是否需要re-open。目前开发社区正考虑避免依赖文件系统的语义来实现该功能,这可以避免许多由于文件系统的差异而带来的问题。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。