1. 多线程程序插入,可以根据服务器情况开启多个线程index
速度可以提高n倍, n>=2
2. 如果有多台机器,可以以每台设置n个shards的方式,根据业务情况,可以考虑取消replias
curl -XPUT 'http://10.1.*.*:9200/dw-search/' -d '{
"settings" : {
"number_of_shards" : 20,
"number_of_replicas" : 0
}
}'
这里设置20个shards, 复制为0,如果需要replicas,可以完成index后再修改为replicas>=1
原文:http://www.elasticsearch.org/guide/reference/api/admin-indices-create-index.html
3. 提高ES占用内存
内存适当调大,初始是256M, 最大1G,
调大后,最小和最大一样,避免GC, 并根据机器情况,设置内存大小,
$ bin/elasticsearch -f -Xmx4g -Xms4g -Des.index.storage.type=memory
原文:http://www.elasticsearch.org/guide/reference/setup/installation.html
4. 减少shard刷新间隔
curl -XPUT 'http://10.1.*.*:9200/dw-search/_settings' -d '{
"index" : {
"refresh_interval" : "-1"
}
}'
完成bulk插入后再修改为初始值
curl -XPUT 'http://10.1.*.*:9200/dw-search/_settings' -d '{
"index" : {
"refresh_interval" : "1s"
}
}'
5. 设置一个shard的段segment最大数
可以减少段文件数,提高查询速度
curl -XPOST 'http://10.1.*.*:9200/dw-search/_optimize?max_num_segments=5'
注意:有时候可能需要多次执行
原文:http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html
原文:http://www.elasticsearch.org/guide/reference/index-modules/merge.html
6. 去掉mapping中_all域
Index中默认会有_all的域,这个会给查询带来方便,但是会增加索引时间和索引尺寸
"_all" : {"enabled" : false}
原文:http://www.elasticsearch.org/guide/reference/mapping/all-field.html
curl -XPOST 'http://10.1.*.*:9200/dw-search/pt_normal/_mapping' --data-binary @pt_normal_properties.mapping
7. 设置source为压缩模式或者disable
compress=true这个能大大减少index的尺寸
disable将直接没有_source域
8. 增加merge.policy.merge_factor数
设置merge.policy.merge_factor到30,初始是10
增加这个数需要更多的内存,bulk index可以调大这个值.
如果是即时索引,应该调小这个值
原文:http://www.elasticsearch.org/guide/reference/index-modules/merge.html
9. 修改Client获得方式为
Node node = nodeBuilder().client(true).node();
Client client = node.client()
相比transport client更快
测试效果,速度提高不明朗,且报错。去除
分享到:
相关推荐
为了确保其高效稳定运行,对Elasticsearch进行优化和升级是必不可少的。以下是一些关键的优化策略,主要关注内存管理、系统配置、索引设置以及网络配置。 1. 内存优化:Elasticsearch 建议使用系统内存的50%作为堆...
对于集群的监控和优化是很重要的一部分,如果想持久维护集群,单单靠增加物理内存,cpu,硬盘是不够的,必须通过一些方法来进行优化。本文档包含: 1、集群结点角色分配; 2、集群得机器内存设置; 3、ES集群的heap...
Elasticsearch 6.x系列相较于5.x版本有了显著的改进和增强,尤其是在性能优化和安全性方面。具体到6.2.2版本,它不仅继承了6.x系列的优势,还针对早期版本的一些已知问题进行了修复,提高了系统的稳定性和可靠性。...
综上所述,百度在Elasticsearch的实践和优化方面有着深度探索,从数据导入到查询优化,再到集群管理和资源调度,都有一套完善的方法论。这些经验不仅适用于百度自身,也为整个Elasticsearch社区提供了有价值的参考。...
Elasticsearch(ES)是一种流行的开源全文搜索引擎,它基于Lucene构建,提供了分布式、RESTful风格的搜索和分析引擎服务。在中文环境下,为了实现精确的分词和搜索,我们需要安装适合版本的分词插件,如“elastic...
在安装Elasticsearch之前,我们需要了解一些基本概念和步骤: 1. **Java运行环境**:Elasticsearch是用Java编写的,因此,安装前必须确保系统上已安装了JDK,并且版本至少为8。可以通过`java -version`命令检查Java...
Elasticsearch(简称ES)是一款强大的开源搜索引擎,广泛应用于大数据领域的全文检索。它以其高可扩展性、实时性能以及丰富的分析能力著称。在中文环境下,由于汉字的复杂性,分词是实现有效搜索的关键步骤。为此,...
**Elasticsearch 8.11 for Windows** Elasticsearch 是一个开源的分布式搜索引擎,以其高可伸缩性、实时性、灵活性以及强大的数据分析能力而闻名。在Windows平台上部署Elasticsearch,用户可以利用其强大的搜索和...
Elasticsearch 是一个分布式搜索引擎,其数据存储方式和管理优化对于高效检索和稳定运行至关重要。在Elasticsearch中,数据存储的基本单位是段(segment),每个段都是一个倒排索引,由Lucene生成。每次数据写入后,...
这个名为"基于.netcore搜索封装ElasticSearch.zip"的压缩包,显然包含了一个针对.NET Core平台的Elasticsearch客户端库,方便开发者在.NET Core应用中集成和操作Elasticsearch。 Elasticsearch是一个开源的分布式...
在《Elasticsearch技术解析与实战》一书中,你将详细了解到如何安装配置Elasticsearch,设置集群,以及优化索引和查询性能。《Elasticsearch 权威指南(中文版)清晰PDF》则更深入地探讨了高级特性和最佳实践,包括...
"elasticsearch-an" 可能是指 Elasticsearch 的一些特定配置或者插件,这个信息不完整,但可以推测可能涉及到的是 Elasticsearch 的自定义配置或者特定功能增强。 "ik分词器" 是针对中文处理的重要组件,全称为 ...
Elasticsearch(ES)是一种流行的开源全文搜索引擎,它基于Lucene库构建,被广泛用于大数据分析、日志聚合、实时搜索和索引等场景。官方提供的测试数据集是检验Elasticsearch功能、性能和稳定性的关键资源,可以帮助...
除了上述提及的服务器部署和配置外,还有其他一些措施可以帮助进一步优化ElasticSearch的性能: - **索引设计**:合理设计索引结构,比如使用更高效的数据类型、避免使用动态映射等。 - **查询优化**:优化查询语句...
Elasticsearch 6.6.0 AArch64 ARM 是专为华为ARM架构服务器优化的搜索引擎和数据分析平台。这个版本是基于官方的x86发行版进行重新编译的,以适应ARM处理器的指令集,确保在华为的ARM服务器上能够高效、稳定地运行。...
Elasticsearch 7.14.0 是一个高度可扩展的全文搜索引擎,广泛应用于日志分析、实时数据分析和全文检索等多个领域。这个压缩包包含了针对Windows和Linux操作系统的安装包,便于在不同环境下部署和使用Elasticsearch。...
标题提及的"elasticsearch常用版本"意味着我们将关注几个Elasticsearch的主流版本,包括elasticsearch-2.4.4、elasticsearch-6.2.3。每个版本都有其特定的特性和改进,适应不同的需求和环境。 1. **Elasticsearch ...
本人在实际的工作中,负责ES平台的搭建以及维护,在实际中总结的集群优化准则,所有集群通用,性能提升有3-5倍
1. **Elasticsearch基础**:Elasticsearch(ES)是一个开源的、分布式全文搜索引擎,它提供了实时数据分析的能力,广泛用于日志分析、监控、搜索应用等领域。其核心特性包括分布式、RESTful接口、实时性、可扩展性和...