可以根据服务器情况开启多个线程index,速度可以提高n倍, n>=2
如果有多台机器,可以以每台设置n个shards的方式,根据业务情况,可以考虑取消replias curl -XPUT ‘http://127.0.0.1:9200/dg-test/’ -d ‘{ “settings” : { “number_of_shards” : 5, “number_of_replicas” : 0 } }’ 这里设置5个shards, 复制为0,如果需要replicas,可以完成index后再修改为replicas>=1 原文:http://www.elasticsearch.org/guide/reference/api/admin-indices-create-index.html
内存适当调大,初始是256M, 最大32G, 调大后,最小和最大一样,避免GC, 并根据机器情况,设置内存大小, $ bin/elasticsearch -f -Xmx32g -Xms32g -Des.index.storage.type=memory 原文:http://www.elasticsearch.org/guide/reference/setup/installation.html
curl -XPUT ‘http://127.0.0.1:9200/dg-test/_settings’ -d ‘{ “index” : { “refresh_interval” : “-1” } }’
完成bulk插入后再修改为初始值 curl -XPUT ‘http://127.0.0.1:9200/dg-test/_settings’ -d ‘{ “index” : { “refresh_interval” : “1s” } }’
可以减少段文件数,提高查询速度 curl -XPOST ‘http://127.0.0.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
Index中默认会有_all的域,这个会给查询带来方便,但是会增加索引时间和索引尺寸 “_all” : {“enabled” : false} 原文:http://www.elasticsearch.org/guide/reference/mapping/all-field.html
compress=true这个能大大减少index的尺寸 disable将直接没有_source域
设置merge.policy.merge_factor到30,初始是10 增加这个数需要更多的内存,bulk index可以调大这个值. 如果是即时索引,应该调小这个值 原文:http://www.elasticsearch.org/guide/reference/index-modules/merge.html