<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Elasticsearch on F嘉阳</title><link>https://blog.fjy8018.top/tags/elasticsearch/</link><description>Recent content in Elasticsearch on F嘉阳</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Thu, 07 Sep 2023 15:04:25 +0800</lastBuildDate><atom:link href="https://blog.fjy8018.top/tags/elasticsearch/index.xml" rel="self" type="application/rss+xml"/><item><title>Elasticsearch Docker高可用环境搭建</title><link>https://blog.fjy8018.top/archives/216/</link><pubDate>Tue, 10 Sep 2019 22:52:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/216/</guid><description>&lt;h2 id="介绍"&gt;&lt;a href="#%e4%bb%8b%e7%bb%8d" class="header-anchor"&gt;&lt;/a&gt;介绍&#10;&lt;/h2&gt;&lt;p&gt;作为Elastic Stack 的核心，Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎，本次主要用于存储业务数据和基于业务日志进行数据统计分析。&lt;/p&gt;&#10;&lt;h2 id="目标"&gt;&lt;a href="#%e7%9b%ae%e6%a0%87" class="header-anchor"&gt;&lt;/a&gt;目标&#10;&lt;/h2&gt;&lt;p&gt;本次目标是搭建个人项目所使用的小型es高可用环境，目前需要使用es的服务有些部署在美国的服务器，有些部署在国内的服务器，带宽延迟各不相同，为了保证应用连接es延迟最小，计划同时在美国和中国都部署节点，不同区域的应用连接不同的节点&lt;/p&gt;&#10;&lt;h2 id="基础环境"&gt;&lt;a href="#%e5%9f%ba%e7%a1%80%e7%8e%af%e5%a2%83" class="header-anchor"&gt;&lt;/a&gt;基础环境&#10;&lt;/h2&gt;&lt;p&gt;本次配置全局使用真实服务器，服务器配置如下&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;名称&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;CPU&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;内存&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;系统&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Docker版本&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;磁盘大小&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;区域&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;es01&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2G&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CentOS 7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;19.03.1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;40 G&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;亚洲&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;es02&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2G&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CentOS 7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;19.03.1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;20G&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;美洲&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;es03&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4G&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CentOS 7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;19.03.1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;36G&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;美洲&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;es04&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2G&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CentOS 7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;19.03.1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;50G&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;亚洲&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;strong&gt;所有服务器部署的&lt;code&gt;es&lt;/code&gt;版本均为：&lt;code&gt;6.6.2&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;从表中可见内存和磁盘都不大，如果是公司项目配置肯定比这个好很多，但对于个人使用来说足够了，至于为什么是需要4台而不是3台在最后搭建完成后会进行分析&lt;/p&gt;&#10;&lt;h2 id="部署前准备"&gt;&lt;a href="#%e9%83%a8%e7%bd%b2%e5%89%8d%e5%87%86%e5%a4%87" class="header-anchor"&gt;&lt;/a&gt;部署前准备&#10;&lt;/h2&gt;&lt;p&gt;就算使用了Docker容器，&lt;code&gt;elasticsearch&lt;/code&gt;仍然不像普通镜像那么简单启动，es对虚拟内存敏感，因此服务器必须是内核虚拟化&lt;code&gt;KVM&lt;/code&gt;架构，不支持&lt;code&gt;OpenVZ&lt;/code&gt;虚拟，参考官方说明&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;h4 id="production-modeedit"&gt;&lt;a href="#production-modeedit" class="header-anchor"&gt;&lt;/a&gt;Production mode&lt;a class="link" href="https://github.com/elastic/elasticsearch/edit/6.6/docs/reference/setup/install/docker.asciidoc" target="_blank" rel="noopener"&#10; &gt;edit&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;The &lt;code&gt;vm.max_map_count&lt;/code&gt; kernel setting needs to be set to at least &lt;code&gt;262144&lt;/code&gt; for production use. Depending on your platform:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Linux&lt;/p&gt;&#10;&lt;p&gt;The &lt;code&gt;vm.max_map_count&lt;/code&gt; setting should be set permanently in /etc/sysctl.conf:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ grep vm.max_map_count /etc/sysctl.conf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vm.max_map_count&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;262144&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To apply the setting on a live system type: &lt;code&gt;sysctl -w vm.max_map_count=262144&lt;/code&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;macOS with &lt;a class="link" href="https://docs.docker.com/engine/installation/mac/#/docker-for-mac" target="_blank" rel="noopener"&#10; &gt;Docker for Mac&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The &lt;code&gt;vm.max_map_count&lt;/code&gt; setting must be set within the xhyve virtual machine:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Just press enter and configure the &lt;code&gt;sysctl&lt;/code&gt; setting as you would for Linux:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sysctl -w vm.max_map_count&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;262144&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="按照指引设置内存参数"&gt;&lt;a href="#%e6%8c%89%e7%85%a7%e6%8c%87%e5%bc%95%e8%ae%be%e7%bd%ae%e5%86%85%e5%ad%98%e5%8f%82%e6%95%b0" class="header-anchor"&gt;&lt;/a&gt;按照指引设置内存参数&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ sudo sysctl -w vm.max_map_count&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;262144&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="前置知识"&gt;&lt;a href="#%e5%89%8d%e7%bd%ae%e7%9f%a5%e8%af%86" class="header-anchor"&gt;&lt;/a&gt;前置知识&#10;&lt;/h2&gt;&lt;h3 id="裂脑事件"&gt;&lt;a href="#%e8%a3%82%e8%84%91%e4%ba%8b%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;裂脑事件&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Elasticsearch&lt;/code&gt;牺牲了一致性，以确保可用性和分区容错。其背后的原因是短期的不良行为比短期的不可用性问题少。换句话说，当群集中的&lt;code&gt;Elasticsearch&lt;/code&gt;节点无法复制对数据的更改时，它们将继续为应用程序提供服务。当节点能够复制其数据时，它们将尝试聚合副本并实现&lt;em&gt;最终的一致性&lt;/em&gt;。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;Elasticsearch&lt;/code&gt;通过&lt;strong&gt;选举&lt;/strong&gt;主节点来解决之前的问题，主节点负责数据库操作，例如创建新索引，在群集节点周围移动分片等等。主节点与其他节点主动协调其操作，确保数据可以由非主节点汇聚。&lt;/p&gt;&#10;&lt;p&gt;在某些情况下，先前的机制可能会失败，从而导致&lt;strong&gt;裂脑事件&lt;/strong&gt;。当&lt;code&gt;Elasticsearch&lt;/code&gt;集群分为两个区块时，&lt;strong&gt;若每个区块都有一个节点都认为它们是主节点&lt;/strong&gt;，因为主节点将在数据上&lt;strong&gt;独立&lt;/strong&gt;工作，数据一致性就会&lt;strong&gt;丢失&lt;/strong&gt;。因此，节点将对相同的查询做出不同的响应。这将会是灾难性的事件，因为来自两个主节点的数据无法自动重新加入，并且需要相当多的手动工作来纠正这种情况。&lt;/p&gt;&#10;&lt;h2 id="节点部署"&gt;&lt;a href="#%e8%8a%82%e7%82%b9%e9%83%a8%e7%bd%b2" class="header-anchor"&gt;&lt;/a&gt;节点部署&#10;&lt;/h2&gt;&lt;p&gt;3个主节点节点均使用&lt;code&gt;docker-compose&lt;/code&gt;命令部署，需要自行安装好相关环境&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;services&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;es01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;docker.elastic.co/elasticsearch/elasticsearch:6.6.2&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;container_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;es01&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;cluster.name=docker-cluster&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;bootstrap.memory_lock=true&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;ES_JAVA_OPTS=-Xms512m -Xmx512m&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;discovery.zen.ping.unicast.hosts=es2.xxx.com,es3.xxx.com,es4.xxx.com&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;discovery.zen.minimum_master_nodes=2&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;network.publish_host=es1..xxx.com&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;node.name=es01-XXX&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ulimits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;memlock&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;soft&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;hard&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;./elasticsearch/data:/usr/share/elasticsearch/data&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="m"&gt;9200&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;9200&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="m"&gt;9300&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;9300&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;networks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;fjyesnet&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;mem_limit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;1g&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;networks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;fjyesnet&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;其他节点配置均相同，修改服务发现域名配置即可，&lt;strong&gt;放行防火墙部分不再赘述，需要可以查看我以前发的文章&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;非主节点配置只需加入&lt;code&gt;node.master=false&lt;/code&gt;配置即可&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;services&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;es01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;docker.elastic.co/elasticsearch/elasticsearch:6.6.2&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;container_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;es04&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;cluster.name=docker-cluster&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;bootstrap.memory_lock=true&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;ES_JAVA_OPTS=-Xms512m -Xmx512m&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;discovery.zen.ping.unicast.hosts=es2.xxx.com,es3.xxx.com,es1.xxx.com&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;discovery.zen.minimum_master_nodes=2&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;network.publish_host=es4..xxx.com&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;node.name=es04-XXX&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;node.master=false&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ulimits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;memlock&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;soft&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;hard&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;./elasticsearch/data:/usr/share/elasticsearch/data&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="m"&gt;9200&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;9200&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="m"&gt;9300&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;9300&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;networks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;fjyesnet&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;mem_limit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;1g&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;networks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;fjyesnet&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;参数解析&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;discovery.zen.ping.unicast.hosts&lt;/code&gt;配置广播地址，用于节点发现，此处配置的是指向其他节点IP的域名地址，该域名在任何节点均可以被访问&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;discovery.zen.minimum_master_nodes&lt;/code&gt;配置主节点最小数量，该参数&lt;strong&gt;十分重要&lt;/strong&gt;，用于防止脑裂（split-brain）事件的发生。&lt;/p&gt;&#10;&lt;p&gt;原理：前面提到了脑裂事件发生的原因，而避免的方法就是保证&lt;strong&gt;至少3个节点可靠地工作&lt;/strong&gt;，因为一个或两个节点不能形成多数投票，这也是为什么选择使用4个节点并将该值配置为2，确保分布式环境还可以随机宕机一个节点以保证不会出现脑裂问题，因此第4个节点最好配置为无法成为主节点的slave节点。而若仅配置为3个节点的高可用状态，其实是一种“伪高可用”，此时随机宕机一个节点将可能发生“脑裂”问题，2个节点的es环境无法进行主节点的选举，并且可能出现独立的分块。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;network.publish_host&lt;/code&gt;用于提供其他节点服务发现的主机名，默认为本地主机名映射为IP的地址，但由于使用容器提供服务发现，并且不在同一个网段，故需要手工指定&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;mem_limit&lt;/code&gt;容器内存限制为1G&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;节点数量与配置的主节点数对应关系&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;code&gt;Master nodes&lt;/code&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;code&gt;minimum_master_nodes&lt;/code&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;备注&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;如果另一个节点宕机，集群将停止工作!&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="对可能产生疑问的解释"&gt;&lt;a href="#%e5%af%b9%e5%8f%af%e8%83%bd%e4%ba%a7%e7%94%9f%e7%96%91%e9%97%ae%e7%9a%84%e8%a7%a3%e9%87%8a" class="header-anchor"&gt;&lt;/a&gt;对可能产生疑问的解释&#10;&lt;/h3&gt;&lt;h4 id="1当前docker-compose已经更新到37了为什么还使用2这个老版本"&gt;&lt;a href="#1%e5%bd%93%e5%89%8ddocker-compose%e5%b7%b2%e7%bb%8f%e6%9b%b4%e6%96%b0%e5%88%b037%e4%ba%86%e4%b8%ba%e4%bb%80%e4%b9%88%e8%bf%98%e4%bd%bf%e7%94%a82%e8%bf%99%e4%b8%aa%e8%80%81%e7%89%88%e6%9c%ac" class="header-anchor"&gt;&lt;/a&gt;1.当前&lt;code&gt;docker-compose&lt;/code&gt;已经更新到&lt;code&gt;3.7&lt;/code&gt;了为什么还使用&lt;code&gt;2&lt;/code&gt;这个老版本？&#10;&lt;/h4&gt;&lt;p&gt;原因：最新&lt;a class="link" href="https://docs.docker.com/compose/compose-file/" target="_blank" rel="noopener"&#10; &gt;文档地址&lt;/a&gt;，官方文档指出3.x版本已经不再支持&lt;code&gt;mem_limit&lt;/code&gt;参数&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This replaces the &lt;a class="link" href="https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources" target="_blank" rel="noopener"&#10; &gt;older resource constraint options&lt;/a&gt; for non swarm mode in Compose files prior to version 3 (&lt;code&gt;cpu_shares&lt;/code&gt;, &lt;code&gt;cpu_quota&lt;/code&gt;, &lt;code&gt;cpuset&lt;/code&gt;, &lt;code&gt;mem_limit&lt;/code&gt;, &lt;code&gt;memswap_limit&lt;/code&gt;, &lt;code&gt;mem_swappiness&lt;/code&gt;), as described in &lt;a class="link" href="https://docs.docker.com/compose/compose-file/compose-versioning/#upgrading" target="_blank" rel="noopener"&#10; &gt;Upgrading version 2.x to 3.x&lt;/a&gt;.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;但对小内存机器以及数据量不会非常的大的环境，内存限制参数尤为重要，经过实测，空载或者小负载（1000 doc）以下的es节点内存占用大约为1.5G左右，故各环境限制为1G不会影响性能，不仅如此，es官方提供的部署文档使用的也是&lt;code&gt;2.2&lt;/code&gt;版本&lt;/p&gt;&#10;&lt;h4 id="2当前elasticsearch已经更新到73了为什么还使用66这个老版本"&gt;&lt;a href="#2%e5%bd%93%e5%89%8delasticsearch%e5%b7%b2%e7%bb%8f%e6%9b%b4%e6%96%b0%e5%88%b073%e4%ba%86%e4%b8%ba%e4%bb%80%e4%b9%88%e8%bf%98%e4%bd%bf%e7%94%a866%e8%bf%99%e4%b8%aa%e8%80%81%e7%89%88%e6%9c%ac" class="header-anchor"&gt;&lt;/a&gt;2.当前&lt;code&gt;Elasticsearch&lt;/code&gt;已经更新到&lt;code&gt;7.3&lt;/code&gt;了为什么还使用&lt;code&gt;6.6&lt;/code&gt;这个老版本？&#10;&lt;/h4&gt;&lt;p&gt;原因：&lt;code&gt;7.x&lt;/code&gt;版本目前尚有许多外部服务不能兼容，例如&lt;code&gt;graylog&lt;/code&gt;，并且&lt;code&gt;Spring&lt;/code&gt;官方组件暂时也只能兼容到&lt;code&gt;6.x&lt;/code&gt;的版本，所以综合考虑使用6.x的最新版&lt;code&gt;6.6.2&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;graylog&lt;/code&gt;官方文档&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;Caution&lt;/p&gt;&#10;&lt;p&gt;Graylog 3.x &lt;strong&gt;does not&lt;/strong&gt; work with Elasticsearch 7.x!&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;&lt;code&gt;Spring&lt;/code&gt;官方文档&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;strong&gt;Compatibility Matrix&lt;/strong&gt;&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Spring Data Elasticsearch&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Elasticsearch&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;em&gt;3.2.x&lt;/em&gt; (not yet released)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;em&gt;6.8.1&lt;/em&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3.1.x&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6.2.2&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3.0.x&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5.5.0&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2.1.x&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2.4.0&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2.0.x&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2.2.0&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.3.x&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.5.2&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h4 id="3一般高可用不是部署3个节点就足够了吗为什么要4个节点"&gt;&lt;a href="#3%e4%b8%80%e8%88%ac%e9%ab%98%e5%8f%af%e7%94%a8%e4%b8%8d%e6%98%af%e9%83%a8%e7%bd%b23%e4%b8%aa%e8%8a%82%e7%82%b9%e5%b0%b1%e8%b6%b3%e5%a4%9f%e4%ba%86%e5%90%97%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%814%e4%b8%aa%e8%8a%82%e7%82%b9" class="header-anchor"&gt;&lt;/a&gt;3.一般高可用不是部署3个节点就足够了吗，为什么要4个节点？&#10;&lt;/h4&gt;&lt;p&gt;原因：本次总共部署了3个主节点和一个非主节点，即4个都是数据节点，但只有3个参与选举。如果仅部署3个节点，那么3个都必须为主节点，此时若其中一个主节点宕机，那么不满足选举“&lt;strong&gt;至少3个节点可靠地工作&lt;/strong&gt;”的条件，故新增多一个冗余数据节点，其不能竞选为主节点，但能对节点竞选做出响应，依然满足条件，详细算法可以参考Raft协议的实现原理&lt;/p&gt;&#10;&lt;h2 id="节点启动"&gt;&lt;a href="#%e8%8a%82%e7%82%b9%e5%90%af%e5%8a%a8" class="header-anchor"&gt;&lt;/a&gt;节点启动&#10;&lt;/h2&gt;&lt;p&gt;使用&lt;code&gt;docker-compose&lt;/code&gt;命令启动即可&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ docker-compose up -d&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这种直接启动的方式会报文件夹无访问权限的错误，需要在命令&lt;strong&gt;执行后&lt;/strong&gt;手动赋予文件夹访问权限&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ chmod &lt;span class="m"&gt;777&lt;/span&gt; -R elasticsearch/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ chown 1000:1000 -R elasticsearch/&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;若此时es容器已经停止则再执行一次启动命令即可&lt;/p&gt;&#10;&lt;h2 id="部署结果"&gt;&lt;a href="#%e9%83%a8%e7%bd%b2%e7%bb%93%e6%9e%9c" class="header-anchor"&gt;&lt;/a&gt;部署结果&#10;&lt;/h2&gt;&lt;p&gt;使用&lt;code&gt;chrome&lt;/code&gt;插件&lt;code&gt;elasticsearch-head&lt;/code&gt;连接任意一个节点查看情况&lt;/p&gt;&#10;&lt;p&gt;4节点在线，接入业务系统后各节点情况如下图。&lt;/p&gt;&#10;&lt;p&gt;注意所有索引副本数都要是2或者3，否则都无法实现高可用效果&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="1568039948401" class="gallery-image" data-flex-basis="823px" data-flex-grow="342" height="496" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/1568039948401.png" width="1701"&gt;&lt;/p&gt;&#10;&lt;p&gt;由于网络问题或者服务器问题导致其中一个节点下线，es会自动对各个节点的副本重新路由，此时集群颜色为黄色，仍然可用，稍等片刻会实现最终一致性&lt;/p&gt;&#10;&lt;p&gt;若此时主节点下线，整个集群会立刻重新选举出新的主节点并路由各个分片，保证24小时服务都处在可用状态&lt;/p&gt;&#10;&lt;p&gt;橙色表示尚未路由完成，但所有索引数据均可用&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="1568038733273" class="gallery-image" data-flex-basis="968px" data-flex-grow="403" height="422" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/1568038733273.png" width="1703"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;若某些索引的副本数设置为1，则当某个节点宕机且其刚好存储该索引的副本，则整个集群的状态将立刻变成红色，意思是数据丢失&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="1568038760406" class="gallery-image" data-flex-basis="708px" data-flex-grow="295" height="649" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/1568038760406.png" width="1916"&gt;&lt;/p&gt;&#10;&lt;p&gt;灰色表示已经下线的分片并且无法被重新路由&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="1568041023184" class="gallery-image" data-flex-basis="873px" data-flex-grow="363" height="286" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/1568041023184.png" width="1041"&gt;&lt;/p&gt;&#10;</description></item><item><title>elasticsearch原生json操作笔记</title><link>https://blog.fjy8018.top/archives/155/</link><pubDate>Mon, 21 May 2018 07:28:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/155/</guid><description>&lt;h2 id="建立结构"&gt;&lt;a href="#%e5%bb%ba%e7%ab%8b%e7%bb%93%e6%9e%84" class="header-anchor"&gt;&lt;/a&gt;建立结构&#10;&lt;/h2&gt;&lt;h3 id="建people表"&gt;&lt;a href="#%e5%bb%bapeople%e8%a1%a8" class="header-anchor"&gt;&lt;/a&gt;建People表&#10;&lt;/h3&gt;&lt;p&gt;方法：PUT&#10;发送地址：http://192.168.79.138:9200/people&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;setting&amp;quot;: {&#10;&#9;&#9;&amp;quot;number_of_shards&amp;quot;: 3,&#10;&#9;&#9;&amp;quot;number_of_replicas&amp;quot;: 1&#10;&#9;},&#10;&#9;&amp;quot;mappings&amp;quot;: {&#10;&#9;&#9;&amp;quot;man&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;properties&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;name&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&#10;&#9;&#9;&#9;&#9;},&#10;&#9;&#9;&#9;&#9;&amp;quot;country&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;type&amp;quot;: &amp;quot;keyword&amp;quot;&#10;&#9;&#9;&#9;&#9;},&#10;&#9;&#9;&#9;&#9;&amp;quot;age&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&#10;&#9;&#9;&#9;&#9;},&#10;&#9;&#9;&#9;&#9;&amp;quot;data&amp;quot;:{&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;type&amp;quot;: &amp;quot;date&amp;quot;,&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;format&amp;quot;: &amp;quot;yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis&amp;quot;&#10;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="277px" data-flex-grow="115" height="901" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arR77.png" width="1041"&gt;&lt;/p&gt;&#10;&lt;h3 id="建book表"&gt;&lt;a href="#%e5%bb%babook%e8%a1%a8" class="header-anchor"&gt;&lt;/a&gt;建book表&#10;&lt;/h3&gt;&lt;p&gt;方法：PUT&#10;发送地址：http://192.168.79.138:9200/book&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;setting&amp;quot;: {&#10;&#9;&#9;&amp;quot;number_of_shards&amp;quot;: 3,&#10;&#9;&#9;&amp;quot;number_of_replicas&amp;quot;: 1&#10;&#9;},&#10;&#9;&amp;quot;mappings&amp;quot;: {&#10;&#9;&#9;&amp;quot;novel&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;properties&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;word_count&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&#10;&#9;&#9;&#9;&#9;},&#10;&#9;&#9;&#9;&#9;&amp;quot;author&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;type&amp;quot;: &amp;quot;keyword&amp;quot;&#10;&#9;&#9;&#9;&#9;},&#10;&#9;&#9;&#9;&#9;&amp;quot;title&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&#10;&#9;&#9;&#9;&#9;},&#10;&#9;&#9;&#9;&#9;&amp;quot;publish_date&amp;quot;:{&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;type&amp;quot;: &amp;quot;date&amp;quot;,&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;format&amp;quot;: &amp;quot;yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis&amp;quot;&#10;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h2 id="插入数据"&gt;&lt;a href="#%e6%8f%92%e5%85%a5%e6%95%b0%e6%8d%ae" class="header-anchor"&gt;&lt;/a&gt;插入数据&#10;&lt;/h2&gt;&lt;h3 id="指定id插入数据到peopleman"&gt;&lt;a href="#%e6%8c%87%e5%ae%9aid%e6%8f%92%e5%85%a5%e6%95%b0%e6%8d%ae%e5%88%b0peopleman" class="header-anchor"&gt;&lt;/a&gt;指定ID插入数据到people.man&#10;&lt;/h3&gt;&lt;p&gt;方法：PUT&#10;发送地址http://192.168.79.138:9200/people/man/1&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;name&amp;quot;: &amp;quot;F嘉阳&amp;quot;,&#10;&#9;&amp;quot;country&amp;quot;: &amp;quot;China&amp;quot;,&#10;&#9;&amp;quot;age&amp;quot;: 21,&#10;&#9;&amp;quot;date&amp;quot;: &amp;quot;1990-05-18&amp;quot;&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="277px" data-flex-grow="115" height="901" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arBEe.png" width="1041"&gt;&lt;/p&gt;&#10;&lt;h4 id="图形化查询检验"&gt;&lt;a href="#%e5%9b%be%e5%bd%a2%e5%8c%96%e6%9f%a5%e8%af%a2%e6%a3%80%e9%aa%8c" class="header-anchor"&gt;&lt;/a&gt;图形化查询检验&#10;&lt;/h4&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="341px" data-flex-grow="142" height="670" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arSmK.png" width="952"&gt;&lt;/p&gt;&#10;&lt;h3 id="不指定id插入数据到peopleman"&gt;&lt;a href="#%e4%b8%8d%e6%8c%87%e5%ae%9aid%e6%8f%92%e5%85%a5%e6%95%b0%e6%8d%ae%e5%88%b0peopleman" class="header-anchor"&gt;&lt;/a&gt;不指定ID插入数据到people.man&#10;&lt;/h3&gt;&lt;p&gt;方法：PUT&#10;发送地址http://192.168.79.138:9200/people/man/&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;name&amp;quot;: &amp;quot;FJY&amp;quot;,&#10;&#9;&amp;quot;country&amp;quot;: &amp;quot;China&amp;quot;,&#10;&#9;&amp;quot;age&amp;quot;: 28,&#10;&#9;&amp;quot;date&amp;quot;: &amp;quot;1990-05-18&amp;quot;&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="277px" data-flex-grow="115" height="901" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arXaN.png" width="1041"&gt;&lt;/p&gt;&#10;&lt;h4 id="图形化查询检验-1"&gt;&lt;a href="#%e5%9b%be%e5%bd%a2%e5%8c%96%e6%9f%a5%e8%af%a2%e6%a3%80%e9%aa%8c-1" class="header-anchor"&gt;&lt;/a&gt;图形化查询检验&#10;&lt;/h4&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="341px" data-flex-grow="142" height="670" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arjXj.png" width="952"&gt;&lt;/p&gt;&#10;&lt;h2 id="更新"&gt;&lt;a href="#%e6%9b%b4%e6%96%b0" class="header-anchor"&gt;&lt;/a&gt;更新&#10;&lt;/h2&gt;&lt;h3 id="更新字段数据"&gt;&lt;a href="#%e6%9b%b4%e6%96%b0%e5%ad%97%e6%ae%b5%e6%95%b0%e6%8d%ae" class="header-anchor"&gt;&lt;/a&gt;更新字段数据&#10;&lt;/h3&gt;&lt;p&gt;方法：POST&#10;发送地址：http://192.168.79.138:9200/people/man/1/_update&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;doc&amp;quot;: {&#10;&#9;&#9;&amp;quot;name&amp;quot;: &amp;quot;符嘉阳&amp;quot;&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="299px" data-flex-grow="124" height="842" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2ar02c.png" width="1050"&gt;&lt;/p&gt;&#10;&lt;h4 id="图形化查询检验-2"&gt;&lt;a href="#%e5%9b%be%e5%bd%a2%e5%8c%96%e6%9f%a5%e8%af%a2%e6%a3%80%e9%aa%8c-2" class="header-anchor"&gt;&lt;/a&gt;图形化查询检验&#10;&lt;/h4&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="341px" data-flex-grow="142" height="670" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arb8y.png" width="952"&gt;&lt;/p&gt;&#10;&lt;h3 id="使用脚本语言更新数据"&gt;&lt;a href="#%e4%bd%bf%e7%94%a8%e8%84%9a%e6%9c%ac%e8%af%ad%e8%a8%80%e6%9b%b4%e6%96%b0%e6%95%b0%e6%8d%ae" class="header-anchor"&gt;&lt;/a&gt;使用脚本语言更新数据&#10;&lt;/h3&gt;&lt;p&gt;方法：POST&#10;发送地址：http://192.168.79.138:9200/people/man/1/_update&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;script&amp;quot;: {&#10;&#9;&#9;&amp;quot;lang&amp;quot;: &amp;quot;painless&amp;quot;,&#10;&#9;&#9;&amp;quot;inline&amp;quot;: &amp;quot;ctx._source.age += 5&amp;quot;&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="299px" data-flex-grow="124" height="842" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arNTX.png" width="1050"&gt;&lt;/p&gt;&#10;&lt;h4 id="图形化查询检验-3"&gt;&lt;a href="#%e5%9b%be%e5%bd%a2%e5%8c%96%e6%9f%a5%e8%af%a2%e6%a3%80%e9%aa%8c-3" class="header-anchor"&gt;&lt;/a&gt;图形化查询检验&#10;&lt;/h4&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="348px" data-flex-grow="145" height="670" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2ar37g.png" width="973"&gt;&lt;/p&gt;&#10;&lt;h3 id="使用脚本语言分离参数更新数据"&gt;&lt;a href="#%e4%bd%bf%e7%94%a8%e8%84%9a%e6%9c%ac%e8%af%ad%e8%a8%80%e5%88%86%e7%a6%bb%e5%8f%82%e6%95%b0%e6%9b%b4%e6%96%b0%e6%95%b0%e6%8d%ae" class="header-anchor"&gt;&lt;/a&gt;使用脚本语言分离参数更新数据&#10;&lt;/h3&gt;&lt;p&gt;方法：POST&#10;发送地址：http://192.168.79.138:9200/people/man/1/_update&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;script&amp;quot;: {&#10;&#9;&#9;&amp;quot;lang&amp;quot;: &amp;quot;painless&amp;quot;,&#10;&#9;&#9;&amp;quot;inline&amp;quot;: &amp;quot;ctx._source.age = params.age&amp;quot;,&#10;&#9;&#9;&amp;quot;params&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;age&amp;quot;: 21&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="274px" data-flex-grow="114" height="901" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2araZG.png" width="1032"&gt;&lt;/p&gt;&#10;&lt;h4 id="图形化查询检验-4"&gt;&lt;a href="#%e5%9b%be%e5%bd%a2%e5%8c%96%e6%9f%a5%e8%af%a2%e6%a3%80%e9%aa%8c-4" class="header-anchor"&gt;&lt;/a&gt;图形化查询检验&#10;&lt;/h4&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="348px" data-flex-grow="145" height="670" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arvn8.png" width="973"&gt;&lt;/p&gt;&#10;&lt;h2 id="删除"&gt;&lt;a href="#%e5%88%a0%e9%99%a4" class="header-anchor"&gt;&lt;/a&gt;删除&#10;&lt;/h2&gt;&lt;h3 id="指定id删除一行数据"&gt;&lt;a href="#%e6%8c%87%e5%ae%9aid%e5%88%a0%e9%99%a4%e4%b8%80%e8%a1%8c%e6%95%b0%e6%8d%ae" class="header-anchor"&gt;&lt;/a&gt;指定ID删除一行数据&#10;&lt;/h3&gt;&lt;p&gt;方法：DELETE&#10;发送地址：http://192.168.79.138:9200/people/man/1&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="274px" data-flex-grow="114" height="901" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2ar7DR.png" width="1032"&gt;&lt;/p&gt;&#10;&lt;h4 id="图形化查询检验-5"&gt;&lt;a href="#%e5%9b%be%e5%bd%a2%e5%8c%96%e6%9f%a5%e8%af%a2%e6%a3%80%e9%aa%8c-5" class="header-anchor"&gt;&lt;/a&gt;图形化查询检验&#10;&lt;/h4&gt;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="348px" data-flex-grow="145" height="670" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2ar85v.png" width="973"&gt;&lt;/p&gt;&#10;&lt;h3 id="删除表"&gt;&lt;a href="#%e5%88%a0%e9%99%a4%e8%a1%a8" class="header-anchor"&gt;&lt;/a&gt;删除表&#10;&lt;/h3&gt;&lt;p&gt;方法：DELETE&#10;发送地址：http://192.168.79.138:9200/people&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="274px" data-flex-grow="114" height="901" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arAXi.png" width="1032"&gt;&lt;/p&gt;&#10;&lt;h2 id="查询"&gt;&lt;a href="#%e6%9f%a5%e8%af%a2" class="header-anchor"&gt;&lt;/a&gt;查询&#10;&lt;/h2&gt;&lt;h3 id="指定id查询"&gt;&lt;a href="#%e6%8c%87%e5%ae%9aid%e6%9f%a5%e8%af%a2" class="header-anchor"&gt;&lt;/a&gt;指定ID查询&#10;&lt;/h3&gt;&lt;p&gt;方法：GET&#10;发送地址：http://192.168.79.138:9200/book/novel/H5LbbWMBzFxBPWV2GG9d&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="365px" data-flex-grow="152" height="762" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arWmW.png" width="1159"&gt;&lt;/p&gt;&#10;&lt;h3 id="查询所有"&gt;&lt;a href="#%e6%9f%a5%e8%af%a2%e6%89%80%e6%9c%89" class="header-anchor"&gt;&lt;/a&gt;查询所有&#10;&lt;/h3&gt;&lt;p&gt;方法：GET&#10;发送地址：http://192.168.79.138:9200/book/_search&#10;{&#10;&amp;ldquo;query&amp;rdquo;: {&#10;&amp;ldquo;match_all&amp;rdquo;: {}&#10;}&#10;}&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="365px" data-flex-grow="152" height="762" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arOyL.png" width="1159"&gt;&lt;/p&gt;&#10;&lt;h3 id="指定查询结果大小"&gt;&lt;a href="#%e6%8c%87%e5%ae%9a%e6%9f%a5%e8%af%a2%e7%bb%93%e6%9e%9c%e5%a4%a7%e5%b0%8f" class="header-anchor"&gt;&lt;/a&gt;指定查询结果大小&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;match_all&amp;quot;: {}&#10;&#9;},&#10;&#9;&amp;quot;from&amp;quot;: 1,&#10;&#9;&amp;quot;size&amp;quot;: 1&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="365px" data-flex-grow="152" height="762" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2arqaw.png" width="1159"&gt;&lt;/p&gt;&#10;&lt;h3 id="查询-1"&gt;&lt;a href="#%e6%9f%a5%e8%af%a2-1" class="header-anchor"&gt;&lt;/a&gt;查询&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;title&amp;quot;: &amp;quot;Java&amp;quot;&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="指定查询结果排序方法"&gt;&lt;a href="#%e6%8c%87%e5%ae%9a%e6%9f%a5%e8%af%a2%e7%bb%93%e6%9e%9c%e6%8e%92%e5%ba%8f%e6%96%b9%e6%b3%95" class="header-anchor"&gt;&lt;/a&gt;指定查询结果排序方法&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;title&amp;quot;: &amp;quot;Java&amp;quot;&#10;&#9;&#9;}&#10;&#9;},&#10;&#9;&amp;quot;sort&amp;quot;: [&#10;&#9;&#9;{&#10;&#9;&#9;&#9;&amp;quot;publish_date&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;order&amp;quot;: &amp;quot;desc&amp;quot;&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;]&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="聚合"&gt;&lt;a href="#%e8%81%9a%e5%90%88" class="header-anchor"&gt;&lt;/a&gt;聚合&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;aggs&amp;quot;: {&#10;&#9;&#9;&amp;quot;group_by_word_count&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;terms&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;field&amp;quot;: &amp;quot;word_count&amp;quot;&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="多字段聚合"&gt;&lt;a href="#%e5%a4%9a%e5%ad%97%e6%ae%b5%e8%81%9a%e5%90%88" class="header-anchor"&gt;&lt;/a&gt;多字段聚合&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;aggs&amp;quot;: {&#10;&#9;&#9;&amp;quot;group_by_word_count&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;terms&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;field&amp;quot;: &amp;quot;word_count&amp;quot;&#10;&#9;&#9;&#9;}&#10;&#9;&#9;},&#10;&#9;&#9;&amp;quot;group_by_author&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;terms&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;field&amp;quot;: &amp;quot;author&amp;quot;&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="聚合-1"&gt;&lt;a href="#%e8%81%9a%e5%90%88-1" class="header-anchor"&gt;&lt;/a&gt;聚合&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;aggs&amp;quot;: {&#10;&#9;&#9;&amp;quot;grades_by_word_count&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;stats&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;field&amp;quot;: &amp;quot;word_count&amp;quot;&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="模糊匹配默认匹配法则"&gt;&lt;a href="#%e6%a8%a1%e7%b3%8a%e5%8c%b9%e9%85%8d%e9%bb%98%e8%ae%a4%e5%8c%b9%e9%85%8d%e6%b3%95%e5%88%99" class="header-anchor"&gt;&lt;/a&gt;模糊匹配(默认匹配法则)&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;title&amp;quot;: &amp;quot;Java虚拟机&amp;quot;&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="习语匹配"&gt;&lt;a href="#%e4%b9%a0%e8%af%ad%e5%8c%b9%e9%85%8d" class="header-anchor"&gt;&lt;/a&gt;习语匹配&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;match_phrase&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;title&amp;quot;: &amp;quot;Java虚拟机&amp;quot;&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="多字段模糊匹配查询"&gt;&lt;a href="#%e5%a4%9a%e5%ad%97%e6%ae%b5%e6%a8%a1%e7%b3%8a%e5%8c%b9%e9%85%8d%e6%9f%a5%e8%af%a2" class="header-anchor"&gt;&lt;/a&gt;多字段模糊匹配查询&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;multi_match&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;query&amp;quot;: &amp;quot;F嘉阳&amp;quot;,&#10;&#9;&#9;&#9;&amp;quot;fields&amp;quot;: [&amp;quot;author&amp;quot;,&amp;quot;title&amp;quot;]&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="语法查询"&gt;&lt;a href="#%e8%af%ad%e6%b3%95%e6%9f%a5%e8%af%a2" class="header-anchor"&gt;&lt;/a&gt;语法查询&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;query_string&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;query&amp;quot;: &amp;quot;ElasticSearch AND 入门&amp;quot;&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&#10;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;query_string&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;query&amp;quot;: &amp;quot;(ElasticSearch AND 入门) OR PS&amp;quot;&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="语法查询指定字段"&gt;&lt;a href="#%e8%af%ad%e6%b3%95%e6%9f%a5%e8%af%a2%e6%8c%87%e5%ae%9a%e5%ad%97%e6%ae%b5" class="header-anchor"&gt;&lt;/a&gt;语法查询指定字段&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;query_string&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;query&amp;quot;: &amp;quot;ElasticSearch OR 瓦&amp;quot;,&#10;&#9;&#9;&#9;&amp;quot;fields&amp;quot;: [&amp;quot;title&amp;quot;,&amp;quot;author&amp;quot;]&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="结构化查询指定字段"&gt;&lt;a href="#%e7%bb%93%e6%9e%84%e5%8c%96%e6%9f%a5%e8%af%a2%e6%8c%87%e5%ae%9a%e5%ad%97%e6%ae%b5" class="header-anchor"&gt;&lt;/a&gt;结构化查询(指定字段)&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;term&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;word_count&amp;quot;: 1000&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&#10;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;term&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;author&amp;quot;: &amp;quot;F嘉阳&amp;quot;&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="结构化查询指定范围"&gt;&lt;a href="#%e7%bb%93%e6%9e%84%e5%8c%96%e6%9f%a5%e8%af%a2%e6%8c%87%e5%ae%9a%e8%8c%83%e5%9b%b4" class="header-anchor"&gt;&lt;/a&gt;结构化查询(指定范围)&#10;&lt;/h3&gt;&lt;p&gt;gte-&amp;gt;大于等于 lte-&amp;gt;小于等于 e-&amp;gt;equal(等于)&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;range&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;word_count&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;gte&amp;quot;: 1000,&#10;&#9;&#9;&#9;&#9;&amp;quot;lte&amp;quot;: 2000&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="结构化查询指定日期范围"&gt;&lt;a href="#%e7%bb%93%e6%9e%84%e5%8c%96%e6%9f%a5%e8%af%a2%e6%8c%87%e5%ae%9a%e6%97%a5%e6%9c%9f%e8%8c%83%e5%9b%b4" class="header-anchor"&gt;&lt;/a&gt;结构化查询(指定日期范围)&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;range&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;publish_date&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;gte&amp;quot;: &amp;quot;2018-01-01&amp;quot;,&#10;&#9;&#9;&#9;&#9;&amp;quot;lt&amp;quot;: &amp;quot;2018-12-31&amp;quot;&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="结构化查询指定当前时间"&gt;&lt;a href="#%e7%bb%93%e6%9e%84%e5%8c%96%e6%9f%a5%e8%af%a2%e6%8c%87%e5%ae%9a%e5%bd%93%e5%89%8d%e6%97%b6%e9%97%b4" class="header-anchor"&gt;&lt;/a&gt;结构化查询(指定当前时间)&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;range&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;publish_date&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;gte&amp;quot;: &amp;quot;2018-01-01&amp;quot;,&#10;&#9;&#9;&#9;&#9;&amp;quot;lte&amp;quot;: &amp;quot;now&amp;quot;&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="子条件查询使用filter"&gt;&lt;a href="#%e5%ad%90%e6%9d%a1%e4%bb%b6%e6%9f%a5%e8%af%a2%e4%bd%bf%e7%94%a8filter" class="header-anchor"&gt;&lt;/a&gt;子条件查询，使用filter&#10;&lt;/h3&gt;&lt;p&gt;使用filter过滤器后产生缓存，下次查询速度更快&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;bool&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;filter&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;term&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;word_count&amp;quot;: 1000&#10;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="复合条件查询-固定分数查询"&gt;&lt;a href="#%e5%a4%8d%e5%90%88%e6%9d%a1%e4%bb%b6%e6%9f%a5%e8%af%a2-%e5%9b%ba%e5%ae%9a%e5%88%86%e6%95%b0%e6%9f%a5%e8%af%a2" class="header-anchor"&gt;&lt;/a&gt;复合条件查询-固定分数查询&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;constant_score&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;filter&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;title&amp;quot;: &amp;quot;Java&amp;quot;&#10;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="复合条件查询-指定分数查询"&gt;&lt;a href="#%e5%a4%8d%e5%90%88%e6%9d%a1%e4%bb%b6%e6%9f%a5%e8%af%a2-%e6%8c%87%e5%ae%9a%e5%88%86%e6%95%b0%e6%9f%a5%e8%af%a2" class="header-anchor"&gt;&lt;/a&gt;复合条件查询-指定分数查询&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;constant_score&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;filter&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;title&amp;quot;: &amp;quot;Java&amp;quot;&#10;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;},&#10;&#9;&#9;&#9;&amp;quot;boost&amp;quot;: 2&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="复合条件查询-布尔查询-指定应当满足的条件满足其一即可"&gt;&lt;a href="#%e5%a4%8d%e5%90%88%e6%9d%a1%e4%bb%b6%e6%9f%a5%e8%af%a2-%e5%b8%83%e5%b0%94%e6%9f%a5%e8%af%a2-%e6%8c%87%e5%ae%9a%e5%ba%94%e5%bd%93%e6%bb%a1%e8%b6%b3%e7%9a%84%e6%9d%a1%e4%bb%b6%e6%bb%a1%e8%b6%b3%e5%85%b6%e4%b8%80%e5%8d%b3%e5%8f%af" class="header-anchor"&gt;&lt;/a&gt;复合条件查询-布尔查询-指定应当满足的条件(满足其一即可)&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;bool&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;should&amp;quot;: [&#10;&#9;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;author&amp;quot;: &amp;quot;F嘉阳&amp;quot;&#10;&#9;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;&#9;},&#10;&#9;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;title&amp;quot;: &amp;quot;Java&amp;quot;&#10;&#9;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;]&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="复合条件查询-布尔查询-指定必须满足的条件两个都必须匹配"&gt;&lt;a href="#%e5%a4%8d%e5%90%88%e6%9d%a1%e4%bb%b6%e6%9f%a5%e8%af%a2-%e5%b8%83%e5%b0%94%e6%9f%a5%e8%af%a2-%e6%8c%87%e5%ae%9a%e5%bf%85%e9%a1%bb%e6%bb%a1%e8%b6%b3%e7%9a%84%e6%9d%a1%e4%bb%b6%e4%b8%a4%e4%b8%aa%e9%83%bd%e5%bf%85%e9%a1%bb%e5%8c%b9%e9%85%8d" class="header-anchor"&gt;&lt;/a&gt;复合条件查询-布尔查询-指定必须满足的条件(两个都必须匹配)&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;bool&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;must&amp;quot;: [&#10;&#9;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;author&amp;quot;: &amp;quot;F嘉阳&amp;quot;&#10;&#9;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;&#9;},&#10;&#9;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;title&amp;quot;: &amp;quot;Java&amp;quot;&#10;&#9;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;]&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="复合条件查询-布尔查询-过滤器"&gt;&lt;a href="#%e5%a4%8d%e5%90%88%e6%9d%a1%e4%bb%b6%e6%9f%a5%e8%af%a2-%e5%b8%83%e5%b0%94%e6%9f%a5%e8%af%a2-%e8%bf%87%e6%bb%a4%e5%99%a8" class="header-anchor"&gt;&lt;/a&gt;复合条件查询-布尔查询-过滤器&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;bool&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;must&amp;quot;: [&#10;&#9;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;author&amp;quot;: &amp;quot;F嘉阳&amp;quot;&#10;&#9;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;&#9;},&#10;&#9;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;match&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;title&amp;quot;: &amp;quot;PS&amp;quot;&#10;&#9;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;],&#10;&#9;&#9;&#9;&#9;&amp;quot;filter&amp;quot;: [&#10;&#9;&#9;&#9;&#9;&#9;&#9;{&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;term&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&amp;quot;word_count&amp;quot;: 700&#10;&#9;&#9;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;&#9;&#9;]&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h3 id="复合条件查询-must_not"&gt;&lt;a href="#%e5%a4%8d%e5%90%88%e6%9d%a1%e4%bb%b6%e6%9f%a5%e8%af%a2-must_not" class="header-anchor"&gt;&lt;/a&gt;复合条件查询-must_not&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#10;&#9;&amp;quot;query&amp;quot;: {&#10;&#9;&#9;&amp;quot;bool&amp;quot;: {&#10;&#9;&#9;&#9;&amp;quot;must_not&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&amp;quot;term&amp;quot;: {&#10;&#9;&#9;&#9;&#9;&#9;&amp;quot;author&amp;quot;: &amp;quot;F嘉阳&amp;quot;&#10;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;</description></item><item><title>elasticsearch分布式环境搭建和插件安装</title><link>https://blog.fjy8018.top/archives/154/</link><pubDate>Thu, 17 May 2018 18:01:00 +0800</pubDate><guid>https://blog.fjy8018.top/archives/154/</guid><description>&lt;h2 id="环境搭建"&gt;&lt;a href="#%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba" class="header-anchor"&gt;&lt;/a&gt;环境搭建&#10;&lt;/h2&gt;&lt;h3 id="安装包和插件下载"&gt;&lt;a href="#%e5%ae%89%e8%a3%85%e5%8c%85%e5%92%8c%e6%8f%92%e4%bb%b6%e4%b8%8b%e8%bd%bd" class="header-anchor"&gt;&lt;/a&gt;安装包和插件下载&#10;&lt;/h3&gt;&lt;h4 id="下载elasticsearch"&gt;&lt;a href="#%e4%b8%8b%e8%bd%bdelasticsearch" class="header-anchor"&gt;&lt;/a&gt;下载elasticsearch&#10;&lt;/h4&gt;&lt;p&gt;通过官网下载&lt;code&gt;elasticsearch&lt;/code&gt;&#10;&lt;a class="link" href="http://www.elastic.co/downloads/elasticsearch" target="_blank" rel="noopener"&#10; &gt;官网下载页面&lt;/a&gt;&#10;此处下载的为&lt;code&gt;elasticsearch-6.2.4.tar.gz&lt;/code&gt;&lt;/p&gt;&#10;&lt;h4 id="下载elasticsearch-head插件"&gt;&lt;a href="#%e4%b8%8b%e8%bd%bdelasticsearch-head%e6%8f%92%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;下载elasticsearch-head插件&#10;&lt;/h4&gt;&lt;p&gt;下载elasticsearch-head插件可以在浏览器中以图形化的方式显示下载elasticsearch中的数据&#10;&lt;a class="link" href="https://github.com/mobz/elasticsearch-head" target="_blank" rel="noopener"&#10; &gt;GitHub下载页面&lt;/a&gt;&lt;/p&gt;&#10;&lt;h4 id="安装node环境"&gt;&lt;a href="#%e5%ae%89%e8%a3%85node%e7%8e%af%e5%a2%83" class="header-anchor"&gt;&lt;/a&gt;安装node环境&#10;&lt;/h4&gt;&lt;p&gt;elasticsearch-head插件依赖node环境来启动，可以通过官方node.js安装包安装，也可以通过宝塔自带的PM2管理器安装，此处安装宝塔的PM2管理器&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="975px" data-flex-grow="406" height="415" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2a5GKN.png" width="1687"&gt;&lt;/p&gt;&#10;&lt;p&gt;安装后检查当前环境中的node版本，若装好后node命令无法使用可以尝试重启服务器或者让配置环境变量生效&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;root@localhost elasticsearch&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# node -v&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v8.11.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将两个下载好的文件用宝塔上传到CentOS 7环境中并解压&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="1685px" data-flex-grow="702" height="121" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2a5mJj.png" width="850"&gt;&lt;/p&gt;&#10;&lt;h2 id="单节点环境配置"&gt;&lt;a href="#%e5%8d%95%e8%8a%82%e7%82%b9%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae" class="header-anchor"&gt;&lt;/a&gt;单节点环境配置&#10;&lt;/h2&gt;&lt;h3 id="elasticsearch单节点配置"&gt;&lt;a href="#elasticsearch%e5%8d%95%e8%8a%82%e7%82%b9%e9%85%8d%e7%bd%ae" class="header-anchor"&gt;&lt;/a&gt;elasticsearch单节点配置&#10;&lt;/h3&gt;&lt;p&gt;配置文件目录为&lt;code&gt;elasticsearch-6.2.4/config&lt;/code&gt;&#10;修改&lt;code&gt;elasticsearch.yml&lt;/code&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#虚拟机IP&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;network.host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;192.168.79.138&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#es端口&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;http.port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9200&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#防止跨源请求阻塞&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;http.cors.enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;http.cors.allow-origin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#主节点名称&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;cluster.name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Fjiayang&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#节点名称&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;node.name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;master&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#是否为主节点&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;node.master&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;若虚拟机或者服务器内存较小，则还要配置&lt;code&gt;jvm.options&lt;/code&gt;，将默认1g内存设置为512m或者更小&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -Xms512m&#10; -Xmx512m&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="elasticsearch-head插件安装"&gt;&lt;a href="#elasticsearch-head%e6%8f%92%e4%bb%b6%e5%ae%89%e8%a3%85" class="header-anchor"&gt;&lt;/a&gt;elasticsearch-head插件安装&#10;&lt;/h3&gt;&lt;p&gt;进入&lt;code&gt;elasticsearch-head&lt;/code&gt;安装目录，执行node的安装命令&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;root@localhost elasticsearch&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# cd elasticsearch-head-master&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;root@localhost elasticsearch-head-master&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# npm install&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="集群环境配置"&gt;&lt;a href="#%e9%9b%86%e7%be%a4%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae" class="header-anchor"&gt;&lt;/a&gt;集群环境配置&#10;&lt;/h2&gt;&lt;p&gt;集群环境只需要解压多份es压缩包，并按如下对&lt;code&gt;elasticsearch.yml&lt;/code&gt;配置文件进行简单配置即可，此处搭建了一个主节点，两个从节点&#10;从节点1&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#子节点IP&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;network.host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;192.168.79.138&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#子节点端口&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;http.port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8200&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#主节点IP&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;discovery.zen.ping.unicast.hosts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;192.168.79.138&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#主节点名称&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;cluster.name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Fjiayang&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#子节点名称&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;node.name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;slave1&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;从节点2&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#子节点IP&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;network.host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;192.168.79.138&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#子节点端口&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;http.port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8300&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#主节点IP&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;discovery.zen.ping.unicast.hosts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;192.168.79.138&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#主节点名称&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;cluster.name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Fjiayang&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;#子节点名称&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;node.name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;slave2&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="服务启动"&gt;&lt;a href="#%e6%9c%8d%e5%8a%a1%e5%90%af%e5%8a%a8" class="header-anchor"&gt;&lt;/a&gt;服务启动&#10;&lt;/h2&gt;&lt;h3 id="elasticsearch启动"&gt;&lt;a href="#elasticsearch%e5%90%af%e5%8a%a8" class="header-anchor"&gt;&lt;/a&gt;elasticsearch启动&#10;&lt;/h3&gt;&lt;p&gt;elasticsearch默认不支持root用户启动，故要新建用户并对运行目录授予权限才能启动es&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;root@localhost elasticsearch&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# adduser es&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;root@localhost elasticsearch&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# passwd es&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 更改用户 es 的密码 。&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 新的 密码：&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 无效的密码： 密码未通过字典检查 - 过于简单化/系统化&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 重新输入新的 密码：&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; passwd：所有的身份验证令牌已经成功更新。&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;在root用户下对es目录所有权进行更改&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;root@localhost www&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# chown -R es /www/elasticsearch&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;root@localhost www&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# ll&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 总用量 &lt;span class="m"&gt;4&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; drwxrwxrwx &lt;span class="m"&gt;5&lt;/span&gt; es www &lt;span class="m"&gt;151&lt;/span&gt; 5月 &lt;span class="m"&gt;16&lt;/span&gt; 21:10 elasticsearch&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; drwxr-xr-x &lt;span class="m"&gt;6&lt;/span&gt; root root &lt;span class="m"&gt;4096&lt;/span&gt; 5月 &lt;span class="m"&gt;7&lt;/span&gt; 09:01 Recycle_bin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; drwxr-xr-x. &lt;span class="m"&gt;14&lt;/span&gt; root root &lt;span class="m"&gt;179&lt;/span&gt; 5月 &lt;span class="m"&gt;7&lt;/span&gt; 09:20 server&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; drwxrwxrwx. &lt;span class="m"&gt;3&lt;/span&gt; root root &lt;span class="m"&gt;116&lt;/span&gt; 5月 &lt;span class="m"&gt;6&lt;/span&gt; 15:41 wwwlogs&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; drwxr-xr-x. &lt;span class="m"&gt;4&lt;/span&gt; root root &lt;span class="m"&gt;38&lt;/span&gt; 5月 &lt;span class="m"&gt;6&lt;/span&gt; 15:41 wwwroot&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;切换到新建的用户es，用&lt;code&gt;/bin/elasticsearch&lt;/code&gt;启动es服务，若加上&lt;code&gt;-d&lt;/code&gt;则为后台启动，即&lt;code&gt;/bin/elasticsearch -d&lt;/code&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;root@localhost www&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# su es&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;es@localhost elasticsearch&lt;span class="o"&gt;]&lt;/span&gt;$ &lt;span class="nb"&gt;cd&lt;/span&gt; elasticsearch/elasticsearch-6.2.4&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;es@localhost elasticsearch-6.2.4&lt;span class="o"&gt;]&lt;/span&gt;$ ls&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; bin config data hs_err_pid4546.log lib LICENSE.txt logs modules NOTICE.txt plugins README.textile&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;es@localhost elasticsearch-6.2.4&lt;span class="o"&gt;]&lt;/span&gt;$ ./bin/elasticsearch -d&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果配置了集群则继续对每个从节点逐一启动即可&lt;/p&gt;&#10;&lt;h3 id="elasticsearch-head插件启动"&gt;&lt;a href="#elasticsearch-head%e6%8f%92%e4%bb%b6%e5%90%af%e5%8a%a8" class="header-anchor"&gt;&lt;/a&gt;elasticsearch-head插件启动&#10;&lt;/h3&gt;&lt;p&gt;进入&lt;code&gt;elasticsearch-head&lt;/code&gt;目录，使用&lt;code&gt;npm run start&lt;/code&gt;启动node服务即可&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="717px" data-flex-grow="299" height="227" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2a514c.png" width="679"&gt;&lt;/p&gt;&#10;&lt;h2 id="服务检验"&gt;&lt;a href="#%e6%9c%8d%e5%8a%a1%e6%a3%80%e9%aa%8c" class="header-anchor"&gt;&lt;/a&gt;服务检验&#10;&lt;/h2&gt;&lt;p&gt;首先使用宝塔开放相关防火墙端口，&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="870px" data-flex-grow="362" height="220" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2a54bK.png" width="798"&gt;&lt;/p&gt;&#10;&lt;p&gt;直接访问es服务，浏览器默认显示为原生json格式，此处使用chrome浏览器的&lt;code&gt;JSON viewer&lt;/code&gt;进行了美化&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="248px" data-flex-grow="103" height="516" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2a5Mf6.png" width="535"&gt;&lt;/p&gt;&#10;&lt;p&gt;访问elasticsearch-head插件，此处截图为配置好集群后的截图&#10;&lt;img alt="请输入图片描述" class="gallery-image" data-flex-basis="507px" data-flex-grow="211" height="420" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gitea.fjy8018.top/fjy8018/images/raw/branch/blog/img/2a5OAT.png" width="888"&gt;&lt;/p&gt;&#10;&lt;p&gt;elasticsearch环境搭建完成！&lt;/p&gt;&#10;</description></item></channel></rss>