基于 Lucene 的分布式搜索引擎: Elasticsearch 1.3.0 发布

阅读数:3196 2014 年 8 月 4 日

话题:语言 & 开发架构

ElasticSearch 是一个基于 Lucene 构建的开源、分布式、RESTful 的搜索引擎,且遵守 Apache2 协议。ElasticSearch 还能够用于云计算中,且能够满足实时搜索的需要,具有稳定、可靠、快速、安装使用方便等特点。它支持通过 HTTP 使用 JSON 进行数据索引,还可以通过集成插件的方式,支持 Thrift、Servlet、Memcached、ZeroMQ 等传输协议。近日,Elasticsearch 1.3.0版本发布,它是最新的稳定版本,且基于 Lucene 4.9。该版本不仅添加了许多新功能,还提高了安全性、稳定性和性能,同时修复了大量的 bug,建议对索引性能有很高要求的应用进行版本升级。主要改进包括:

  • 默认禁用了 JSONP,提高了安全性
  • 默认启用磁盘空间分配决策者
  • 提高了 StemmerTokenFilter 的性能
  • 移除不必要的中间接口
  • 移除不安全的、非法的内存访问方法
  • 实现了主机的在异步方式下即可更新映射
  • 使用 429 错误码替换 503 的错误码反馈到客户端
  • 新增了 percentiles_rank 聚集
  • 新增了 top_hits 聚集
  • 新增了 Lucene 表达式脚本引擎
  • 新增了对 Groovy 脚本语言支持和 Groovy 沙盒
  • 实现了存储在索引中的搜索模板在搜索时可以被检索和使用
  • 能够运行存储在.scripts 索引中的脚本或者模板
  • Elasticsearch 可以在内存里跟踪最近索引文档的版本,自动清理版本映射
  • Translog 刷新阀值不再由日志的数量控制,而是以日志的字节数量大小控制。
  • 在索引过程中可以自动调整用做索引缓存区的 RAM 数量

由于 Elasticsearch 具有能够实时搜索、开源、稳定、快速、支持分布式等众多优点,所以许多国外著名的公司都在使用 ElasticSearch,如 Github、Mozilla、Sony 等公司,其中我们所熟知的 Github 在 2013 年 1 月升级了他的代码搜索,由 Solr 转为 Elasticsearch。目前它的集群规模为 26 个索引存储节点和 8 个客户端节点(负责处理搜索请求),能够搜索 20TB 的数据,这些数据包括 13 亿的文件和 1300 亿行的代码。

Elasticsearch 1.3.0发布的同时,Elasticsearch 1.2.3也发布了,它是 1.2.x 系列版本的一个 bug 修复版本,详细信息参见该版本的发布页面

欲知 Elasticsearch 更多相关详细信息,请登录其首页查看。Elasticsearch 1.3.0已经提供了ZIPTAR.GZDEBRPM多种格式的下载源,开发者可以根据自己的操作系统选定合适的格式下载。


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。