开发者学堂课程【ElasticSearch 入门精讲:创建和删除】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/631/detail/10030
创建和删除
内容介绍:
一、创建
二、删除
一、创建
调大系统的“最大打开文件数”,建议 32K 甚至是 64K。
ulimit-a (查看)
ulimit-n 32000 (设置)
修改配置文件调整 ES 的 VM 内存大小
1:修改
bin/elasticsearch.in.sh 中 ES_MIN_MEM 和 ES_MAX_MEM 的大小,建议设置一样大,避免频繁的分配内存,根据服务器内存大小,,一般分配60%左右(默认 256M)
2:如果使用 searchwrapper 插件启动 es 的话则修改[过时,在 es1.x 中有用]
bin/service/elasticsearch.conf (默认1024M,2.x以后不用考虑)
设置 mlockall 来锁定进程的物理内存地址
避免交换 (swapped) 来提高性能
修改文件 conf/elasticsearch.yml
bootstrap.mlockall:true
分片多的话,可以提升建立索引的能力,5-20个比较合适。
如果分片数过少或过多,都会导致检索比较慢。分片数过多会导致检索时打开比较多的文件,另外也会导致多台服务器之间通讯。而分片数过少会导至单个分片索引过大,所以检索速度慢。
建议单个分片最多存储 20G 左右的索引数据,所以,分片数量=数据总量/20G。
副本多的话,可以提升搜索的能力,但是如果设置很多副本的话也会对服务器造成额外的压力,因为需要同步数据。所以建议设置2-3个即可。
要定时对索引进行优化,不然 segment 越多,查询的性能就越差。
索引量不是很大的话情况下可以将 segment 设置为1。段数优化。要全面优化索引,将其设置为1。默认设置是只需检查是否需要执行合并,如果需要执行合并才执行合并操作。[经过测试越小速度越快]
curl-XPOST 'http://localhost:9200/crxy/ optimize?max num segments=1'
java 代码:
client.admin().indices().prepareOptimize("bigdata").setMaxNumSegments(1).get();
二、删除
删除文档:在 Lucene 中删除文档,数据不会马上在硬盘上除去,而是在 lucene 索引中产生一个 .del 的文件,而在检索过程中这部分数据也会参与检索,lucene 在检索过程会判断是否删除了,如果删除了再过滤掉。这样也会降低检索效率。所以可以执行清除删除文档。
curl-XPOST'http://localhost:9200/bigdata/ optimize?only_expunge deletes=true'
client.admin
()
.indiceso
(
).prepareOptimize("bigda
ta
").setOnlyExpungeDeletes(true).get
(
);
如果在项目开始的时候需要批量入库大量数据的话,建议将副本数设置为0。因为 es 在索引数据的时候,如果有副本存在,数据也会马上同步到副本中,这样会对 es 增加压力。待索引完成后将副本按需要改回来。这样可以提高索引效率。