写点什么

Lucene 2.3:大幅提升索引性能,新增机器学习项目

  • 2008-01-24
  • 本文字数:1023 字

    阅读完需:约 3 分钟

Apache Lucene 项目是一个完全用 Java 编写的高性能、全功能的文本搜索引擎库,今天它发布了 2.3 版。InfoQ 采访了项目管理委员会(PMC)成员以及提交者, Grant Ingersoll ,以深入了解这次发布的版本以及 Lucene 未来的计划。

Ingersoll 认为这次的版本中最大的变化是新的索引算法,它使用了新的 in-memory 模型来达到大幅的速度提升。据 Ingersoll 说,单单是把 Lucene 2.2 JAR 换成 Lucene 2.3 JAR 就能在某些测试中把索引性能提速 500%。其他改变还包括:

  • 改进的索引管理——以前在索引过程中,当合并内部索引文件时偶尔会出现长时间的停顿,现在已经消灭了这种现象。另外现在也更容易实现其他途径去管理索引过程。
  • 对象池——DocumentFieldToken的实例现在可在索引分析中重用,因此不但提升了分析的速度,还减少了索引过程中的内存分配次数。
  • 重新打开 IndexReader ——重新打开一个 IndexReader 去捕捉索引中最新的变化,这个操作的速度现在也更快了,新的 reopen() 方法只会加载那些变更过的索引片断,而不是重新加载完整的索引。
  • 更简易的 IndexWriter 微调——setMaxBufferedDocs已被更直观的setRAMBufferSizeMB所取代。

另外,2.3 的目标是只需通过文件替换就能换下 2.2,完全不需要重新编译。这里是完整的更新说明

Ingersoll 还谈论了 Lucene 未来的计划,他说下一版将会是 2.9。2.9 版是相对改动较小的版本,有些部分会被标为废弃,还会为了给 Lucene 3.0 做准备而进行一些清理。3.0 版是一个重大的版本,包括把代码库迁移到 JDK5,以之作为最低要求。3.0 的其他主要特性还有待决定。

采访中还讨论了 Lucene 社区的总体情况。Ingersoll 表示 Lucene 和 Solr 结合得很紧密,而与 Nutch Tika 以及 Hadoop 也有相当良好的相互沟通。Ingersoll 还谈论了一个名为 Mahout 的项目,他正在启动该项目:

这是一个单独的项目,但对 Lucene 用户也会有好处。JIRA 中已经有一些 Lucene 的补丁实现了 ML 算法。这个项目的目标是提供商业质量的大规模机器学习(machine learning,ML)算法。它以 Hadoop 为基础建立,遵循 Apache 许可证。我已经观察到不少人对这个项目感兴趣,希望在接下来这个月能把项目启动起来。

Ingersoll 说,通过建立 Mahout 项目,他希望能够“进一步揭开 Google 这类公司提供的类似功能的秘密,并刺激在这个领域中的创新”。如果对这个新项目感兴趣,可以阅读一下它的项目计划孵化提案

查看英文原文: Lucene 2.3: Large indexing performance improvements, new machine-learning project

2008-01-24 22:003355
用户头像

发布了 225 篇内容, 共 58.0 次阅读, 收获喜欢 47 次。

关注

评论

发布
暂无评论
发现更多内容

手撕常见JS面试题

helloworld1024fd

JavaScript

美团前端一面手写面试题

helloworld1024fd

JavaScript

Teradata 落幕中国的三个变化:“国产平替”变褒义、重型方法论不如最佳实践、前后端数据服务贴合

B Impact

从这两道题重新理解,JS的this、作用域、闭包、对象

loveX001

JavaScript

那些高级前端是如何回答面试题的

loveX001

JavaScript

高级前端一面面试题集锦

loveX001

JavaScript

面试官让你说说react状态管理?

beifeng1996

React

腾讯前端经典react面试题(附答案)

beifeng1996

React

云计算未来 5 年发展方向大盘点

亚马逊云科技 (Amazon Web Services)

人工智能

架构实战营-模块二作业

🐢先生

架构实战营

ElasticSearch _bulk 使用与实战:批量操作、查询、冲突(模拟电商下单/查询)

alexgaoyh

批量操作 Elastic Search 关联查询 _bulk retry_on_conflict

美团前端一面高频vue面试题整理

bb_xiaxia1998

Vue

社招前端经典vue面试题(附答案)

bb_xiaxia1998

Vue

React源码解读之React Fiber

flyzz177

ReactDOM.render在react源码中执行之后发生了什么?

flyzz177

React

[go]交叉编译

追赶者

Go go build 交叉编译

vue组件通信方式有哪些?

bb_xiaxia1998

Vue

社招前端必会手写面试题集锦

helloworld1024fd

JavaScript

React源码分析1-jsx转换及React.createElement

goClient1992

React

React源码分析(二)渲染机制

goClient1992

React

【Ask100-3】 用ARR衡量SaaS企业发展,需要怎样的前提?

B Impact

如何使用 ArrayPool

newbe36524

C# Docker Kubernetes

从输入URL到渲染的过程中到底发生了什么?

loveX001

JavaScript

【Java基础】Java对象创建的几种方式

No8g攻城狮

Java 后端 Java 分布式 Java 开发

2023-02-18:ffmpeg是c编写的音视频编解码库,请问用go语言如何调用?例子是03输出版本号。

福大大架构师每日一题

golang 音视频 ffmpeg 流媒体 福大大

阿里前端经典react面试题集锦

beifeng1996

React

vue这些原理你都知道吗?(面试版)

bb_xiaxia1998

Vue

能否手写vue3响应式原理-面试进阶

helloworld1024fd

JavaScript

React源码分析(三):useState,useReducer

goClient1992

React

中文技术文档的写作规范参考

晓鹤

React Context源码是怎么实现的呢

flyzz177

React

  • 扫码加入 InfoQ 开发者交流群
Lucene 2.3:大幅提升索引性能,新增机器学习项目_Java_Ryan Slobojan_InfoQ精选文章