原文网址:ElasticSearch--配置--大全/详解_IT利刃出鞘的博客-CSDN博客
说明
本文介绍ES的配置。
配置文件位置
config目录是存放配置文件的地方,该目录下的elasticsearch.yml是基本配置文件,
jvm.options是虚拟机参数配置文件,log4j2.properties是日志配置文件。
粉丝福利:有很多粉丝私信问我有没有Java的面试及PDF书籍等资料,我整理一下,包含:真实面试题汇总、简历模板、PDF书籍、PPT模板等。这些是我自己也在用的资料,面试题是面试官问到我的问题的整理,其他资料也是我自用的,真正实用、靠谱。资料可以从这里免费获取:资料地址
Elasticsearch的一些常用配置介绍如下:
配置项 | 含义 |
cluster.name: my-application | 配置Elasticsearch的集群名称,默认是“elasticsearch”,Elasticsearch会自动发现在同一网段下的Elasticsearch节点,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。 |
node.name: node-1 | 配置Elasticsearch的节点名,默认随机指定一个漫威漫画里的3000多个角色的名字,和集群名称一样可以自定义,同一个集群的集群名称要配置统一,节点名称取不同值便于区分。 |
node.master: true | 指定该节点是否是master节点,默认是true,Elasticsearch默认集群中的第一台机器为master,如果这台机出现故障就会重新选举master。 |
node.data: true | 指定该节点是否存储索引数据,默认为true。 |
index.numberofshards: 5 | 设置默认索引分片个数,默认值为5,每个索引分成5个分片。在5.0版本以前有效,5.0版本以后会报参数异常,提示节点中不能指定索引级别的配置。 |
index.numberofreplicas: 1 | 设置默认索引副本个数,默认为1。和分片配置一样,只在5.0之前的版本配置生效。 |
path.data: /path/to/data | 设置索引数据的存储路径,默认是Elasticsearch根目录下的data文件夹,可以设置多个存储路径,用逗号隔开,比如: path.data: /path/to/data1, /path/to/data2 |
path.logs: /path/to/logs | 设置日志文件的存储路径,默认是Elasticsearch根目录下的logs文件夹 |
bootstrap.mlockall: true | 设置为true来锁住内存。因为当jvm开始swapping时Elasticsearch的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给Elasticsearch。 |
network-host: 192.168.0.1 | 设置绑定的IP地址,可以是IPv4或IPv6的,默认为0.0.0.0。 |
http.port: 9200 | 设置对外服务的HTTP端口,默认为9200。 |
transport.tcp.port: 9300 | 设置节点间交互的TCP端口,也是JavaAPI中使用的端口,默认是9300。 |
transport.tcp.compress: true | 设置是否压缩TCP传输时的数据,默认为false,不压缩。 |
http.max_content_length: lOOmb | 设置内容的最大容量,默认100mb |
http.cors.enabled: false | 是否使用HTTP协议对外提供服务,默认为true。 |
discovery.zen.minimum_master_nodes: 1 | 设置这个参数来保证集群中的节点可以知道其他N个有master资格的节点。默认为1。 |
discovery.zen.ping.timeout: 3s | 设置集群中自动发现其他节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可以提高该值来防止自动发现时出错。 |
discovery.zen.ping.multicast.enabled: false | 设置是否打开多播发现节点,默认是true。 |
discovery.zen.ping.unicast.hosts: ["hostl","host2: port","host3[portX-portY]"] | 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。 |
script.engine.groovy.inline.update: on | 开启groovy脚本支持,in丨ine表示脚本的来源为内嵌式,还可以设为stored或者file。update表示允许脚本语言执行更新操作,也可以设置其他操作,比如search、eggs等。 |
script.inline: true | 简写方式,幵始所有脚本语言行内执行所有支持的操作。 |
另见《从Lucene到Elasticsearch:全文检索实战》=> 4.2.6 基本配置