做外贸一般在什么网站,wordpress的登录函数使用教程,开网站需要租用机房服务器价格,安全电子商务网站设计文章目录 一、ElasticSearch基本概念1、索引(Index)2、文档(Document)3、分片和副本4、映射(Mapping) 二、容器部署ElasticSearch集群三、容器部署ElasticSearch伪集群 一、ElasticSearch基本概念 1、索引(Index)
在ElasticSearch中#xff0c;索引是文档的集合#xff0c;类… 文章目录 一、ElasticSearch基本概念1、索引(Index)2、文档(Document)3、分片和副本4、映射(Mapping) 二、容器部署ElasticSearch集群三、容器部署ElasticSearch伪集群 一、ElasticSearch基本概念 1、索引(Index)
在ElasticSearch中索引是文档的集合类似于关系数据库中的数据库它是文档的主要存储单位每个文档都属于一个索引。
1、创建索引
PUT /index_name2、查看索引
GET /index_name3、删除索引
DELETE /index_name2、文档(Document)
在Elasticsearch中文档是存储在索引中的基本数据单元。每个文档都有一个唯一的 ID并且是以 JSON 格式存储的一个文档对应一条数据。
1、创建文档
POST /index_name/_doc/2783862{title: 实例文档,content: 实例文档的内容...
}index_name创建文档的索引文档存放在索引中_doc是文档类型通常用 _doc2783862是文档的唯一 ID
2、查看文档
GET /index_name/_doc/2783862这将返回包含文档内容的 JSON 响应例如
{_index: qinziteng666,_type: _doc,_id: 2783862,_version: 1,_seq_no: 3,_primary_term: 1,found: true,_source: {title: 实例文档,content: 实例文档的内容...}
}3、删除文档
DELETE /index_name/_doc/27838624、查看索引中所有文档
GET /index_name/_search3、分片和副本
分片Shard索引可以分成多个分片每个分片是一个独立的Lucene索引。分片允许在集群中分布和并行处理数据。副本Replica每个分片可以有零个或多个副本。副本提供了数据的冗余备份和提高搜索性能的能力。
1、查看索引分片信息
GET /_cat/shards/index_name?v2、查看集群中所有索引的分片信息
GET /_cat/shards?v3、查看分片分配情况和状态
GET /_cat/allocation?v4、查看集群健康状态和分片情况
GET /_cluster/health5、查看集群中所有索引详细信息
GET /_cluster/state4、映射(Mapping)
映射定义了索引中每个字段的数据类型和属性。它类似于关系数据库中表的模式定义。
1、创建索引并在请求体中定义索引的设置和映射
PUT /index_name
{settings: {number_of_shards: 3,number_of_replicas: 2},mappings: {properties: {title: { type: text },description: { type: text },created_at: { type: date }}}
}settings包含了索引的设置例如分片数和副本数mappings 定义了索引中文档的结构指定每个字段的类型和分析器等信息。
2、查看索引返回索引的详细信息包括设置、Mapping 和索引状态等。
GET /index_name3、只查看映射
GET /index_name/_mapping4、更新映射
PUT /index_name/_mapping
{properties: {title: { type: text },tags: { type: keyword },views: { type: integer }}
}5、删除映射直接删除索引即可
DELETE /index_name二、容器部署ElasticSearch集群
1、环境信息
IP地址ES节点16.32.15.115node116.32.15.200node216.32.15.201node3
2、compose信息如下
node1配置
version: 3
services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: elasticsearchrestart: on-failure:3network_mode: hostvolumes:- /home/software/elasticsearch/data:/usr/share/elasticsearch/data- /home/software/elasticsearch/plugins:/usr/share/elasticsearch/plugins- /home/software/elasticsearch/logs:/usr/share/elasticsearch/logs- /etc/localtime:/etc/localtime- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.namenode1- node.mastertrue- node.datatrue- network.host0.0.0.0- discovery.seed_hosts16.32.15.115,16.32.15.200,16.32.15.201- cluster.initial_master_nodesnode1,node2,node3- cluster.namees-cluster- ES_JAVA_OPTS-Xms256m -Xmx256mnode2配置
version: 3
services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: elasticsearchrestart: on-failure:3network_mode: hostvolumes:- /home/software/elasticsearch/data:/usr/share/elasticsearch/data- /home/software/elasticsearch/plugins:/usr/share/elasticsearch/plugins- /home/software/elasticsearch/logs:/usr/share/elasticsearch/logs- /etc/localtime:/etc/localtime- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.namenode2- node.mastertrue- node.datatrue- network.host0.0.0.0- discovery.seed_hosts16.32.15.115,16.32.15.200,16.32.15.201- cluster.initial_master_nodesnode1,node2,node3- cluster.namees-cluster- ES_JAVA_OPTS-Xms256m -Xmx256mnode3配置
version: 3
services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: elasticsearchrestart: on-failure:3network_mode: hostvolumes:- /home/software/elasticsearch/data:/usr/share/elasticsearch/data- /home/software/elasticsearch/plugins:/usr/share/elasticsearch/plugins- /home/software/elasticsearch/logs:/usr/share/elasticsearch/logs- /etc/localtime:/etc/localtime- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.namenode2- node.mastertrue- node.datatrue- network.host0.0.0.0- discovery.seed_hosts16.32.15.115,16.32.15.200,16.32.15.201- cluster.initial_master_nodesnode1,node2,node3- cluster.namees-cluster- ES_JAVA_OPTS-Xms256m -Xmx256m注意如果是已经运行很久的单节点升级为集群(保留单节点ES数据)需要删除这台单节点的几个文件如下
data/nodes/0/_state/node-0.st 这个文件记录了特定节点例如节点编号为 0 的节点的状态信息和元数据。包括节点的唯一标识符、IP 地址、端口号等基本信息。集群配置信息如节点所属的集群名称、集群的一些全局设置。索引的元数据包括映射mapping、分片shard的分配情况、每个分片所在的节点等。分片的状态信息如每个分片的健康状态、复制状态等。路由表信息记录了集群中每个索引分片的路由信息用于数据的定位和检索。 data/nodes/0/_state/manifest-0.st 这个文件是 Elasticsearch 的数据文件描述符manifest。主要用于描述和管理索引和分片的元数据信息。记录了每个索引的结构信息、分片的位置和状态、每个分片的文件列表等。提供了索引数据的元信息帮助 Elasticsearch 了解如何访问和处理索引数据。
三、容器部署ElasticSearch伪集群
PS伪集群只在单台服务器中部署的ES集群并没有分散开当次服务器宕机后ES集群也就没了生产环境建议走上面的分散到不通服务器的集群如果只是测试伪集群是很好的选择。
1、创建ES集群所需目录
mkdir /home/es/{node1/{data,plugins,logs},node2/{data,plugins,logs},node3/{data,plugins,logs}} -p
chmod -R 777 /home/es2、创建docker-compose.yaml文件 并启动集群
version: 3
services:es-node1:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: es-node1restart: on-failure:3volumes:- /home/es/node1/data:/usr/share/elasticsearch/data- /home/es/node1/plugins:/usr/share/elasticsearch/plugins- /home/es/node1/logs:/usr/share/elasticsearch/logs- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.namees-node1- node.mastertrue- node.datatrue- network.host0.0.0.0- discovery.seed_hostses-node1,es-node2,es-node3- cluster.initial_master_nodeses-node1,es-node2,es-node3- cluster.namees-cluster- ES_JAVA_OPTS-Xms256m -Xmx256mports:- 9200:9200es-node2:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: es-node2restart: on-failure:3volumes:- /home/es/node2/data:/usr/share/elasticsearch/data- /home/es/node2/plugins:/usr/share/elasticsearch/plugins- /home/es/node2/logs:/usr/share/elasticsearch/logs- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.namees-node2- node.mastertrue- node.datatrue- network.host0.0.0.0- discovery.seed_hostses-node1,es-node2,es-node3- cluster.initial_master_nodeses-node1,es-node2,es-node3- cluster.namees-cluster- ES_JAVA_OPTS-Xms256m -Xmx256mports:- 8200:9200es-node3:image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6container_name: es-node3restart: on-failure:3volumes:- /home/es/node3/data:/usr/share/elasticsearch/data- /home/es/node3/plugins:/usr/share/elasticsearch/plugins- /home/es/node3/logs:/usr/share/elasticsearch/logs- /etc/sysctl.conf:/etc/sysctl.confenvironment:- node.namees-node3- node.mastertrue- node.datatrue- network.host0.0.0.0- discovery.seed_hostses-node1,es-node2,es-node3- cluster.initial_master_nodeses-node1,es-node2,es-node3- cluster.namees-cluster- ES_JAVA_OPTS-Xms256m -Xmx256mports:- 7200:92003、查看集群
curl http://localhost:9200/_cat/nodes