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 已经提供了 ZIP 、 TAR.GZ 、 DEB 、 RPM 多种格式的下载源,开发者可以根据自己的操作系统选定合适的格式下载。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论