1.ElasticSearch目录结构
-
bin:包含 Elasticsearch 的可执行文件,如 elasticsearch(用于启动 Elasticsearch)、elasticsearch-plugin(用于管理插件)等。
-
config:包含 Elasticsearch 的配置文件。
- elasticsearch.yml:主要的配置文件,用于配置 Elasticsearch 的各种设置,如集群名称、节点设置、网络配置等。
- jvm.options:用于配置 Elasticsearch 节点的 JVM 设置,如内存分配、垃圾回收等。
- log4j2.properties:用于配置 Elasticsearch 的日志记录设置。
data:默认的数据目录,用于存储 Elasticsearch 的索引数据和相关文件。每个节点在该目录下会有一个子目录,存放该节点的数据。
-
logs:存放 Elasticsearch 的日志文件。
-
plugins:用于存放 Elasticsearch 的插件文件。当你安装第三方插件时,它们将被放置在该目录下。
-
config/scripts:存放 Elasticsearch 的脚本文件,如查询脚本、聚合脚本等。
-
config/templates:存放 Elasticsearch 的索引模板文件,用于定义索引的映射、设置和别名。
-
config/ingest-geoip:包含用于处理地理位置信息的 Ingest GeoIP 插件的数据文件。
这只是 Elasticsearch 目录结构的基本示例,实际安装的目录结构可能因版本和安装方式而有所不同。安装 Elasticsearch 后,你可以通过浏览这些目录和文件来深入了解 Elasticsearch 的配置和数据存储机制,并进行相应的定制和管理。
2.ElasticSearch核心概念理解
-
索引(Index):索引是 Elasticsearch 中最高层次的数据容器,它类似于关系数据库中的数据库。索引包含一组具有相似结构的文档,并为这些文档提供了快速的搜索、检索和分析能力。(type取消后类似于关系数据库MySQL 中的表)
-
文档(Document):文档是 Elasticsearch 存储和索引的基本单位。它是一条具有结构化数据的 JSON 文档,可以是任意类型的数据,如产品信息、用户数据、日志条目等。每个文档都有一个唯一的标识符(ID),用于在索引中唯一标识和检索文档。(类似于关系数据库MySQL中的表的一行数据)
-
类型(Type):在 Elasticsearch 7.x 及更高版本中,类型的概念已被弃用。在早期版本中,索引可以包含多个类型,用于对不同类型的文档进行分类。然而,从 Elasticsearch 7.x 开始,一个索引只能包含一个默认类型 _doc,类型的概念被逐渐淘汰。(类似于关系数据库MySQL中的表) -
映射(Mapping):映射定义了索引中的文档结构和字段的数据类型。它告诉 Elasticsearch 如何存储和索引文档中的字段,并决定如何解析和处理查询请求。映射可以手动定义,也可以由 Elasticsearch 根据文档的内容自动创建。(类似于关系数据库MySQL中的表的结构,包括列名、数据类型和约束)
-
查询(Query):查询用于在 Elasticsearch 中搜索和检索文档。Elasticsearch 提供了丰富的查询功能,包括全文搜索、精确匹配、范围查询、聚合等。你可以使用查询语言(如 Query DSL)或简化的查询字符串语法来构建查询。
-
聚合(Aggregation):聚合是一种用于分析和汇总数据的功能。它允许你根据指定的条件对文档进行分组、计数、求和、平均值、最大值、最小值等操作,并返回聚合结果。聚合可以帮助你洞察数据的统计特征和模式。
-
集群(Cluster):集群是由一个或多个 Elasticsearch 节点组成的逻辑组。在集群中,数据被分片和复制到多个节点上,以提供高可用性和容错能力。集群管理和协调节点之间的数据分发、负载均衡和故障恢复。
-
节点(Node):节点是 Elasticsearch 集群中的一个单独的实例,它是集群的一部分。节点可以是主节点(Master Node)或数据节点(Data Node)。主节点负责管理集
-
分⽚和副本(shard) :副本是分⽚的副本。分⽚有主分⽚(primary Shard)和副本分⽚(replica Shard)之分。
⼀个Index数据在物理上被分布在多个主分⽚中,每个主分⽚只存放部分数据。
每个主分⽚可以有多个副本,叫副本分⽚,是主分⽚的复制。
3.ElasticSearch,RESTful API介绍
Elasticsearch 提供了 RESTful API(Representational State Transfer)作为与其进行交互的主要方式。通过 RESTful API,你可以使用各种 HTTP 方法(如 GET、POST、PUT、DELETE)来执行各种操作,包括索引数据、搜索文档、执行聚合、管理索引等。
以下是一些常用的 Elasticsearch RESTful API:
索引文档:
PUT /index/_doc/id:创建或替换指定 ID 的文档。
POST /index/_doc:创建新的文档,Elasticsearch 自动生成 ID。
GET /index/_doc/id:获取指定 ID 的文档。
DELETE /index/_doc/id:删除指定 ID 的文档。
搜索:
GET /index/_search:执行全文搜索操作,返回匹配查询条件的文档。
POST /index/_search:执行复杂的搜索查询,可以包含过滤器、排序、聚合等。
聚合:
POST /index/_search:结合聚合查询来对文档进行分组、计数、求和、平均值、最大值、最小值等操作。
GET /index/_search:使用 URI 查询字符串语法执行简单的聚合操作。
索引管理:
PUT /index:创建新的索引。
DELETE /index:删除指定索引。
GET /index/_mapping:获取索引的映射信息。
集群和节点管理:
GET /_cat/health:获取集群的健康状态。
GET /_cat/nodes:获取集群中的节点信息。
GET /_cat/indices:获取集群中的索引信息。
以上只是 Elasticsearch RESTful API 的一些示例,实际使用中还有更多的 API 和参数可用于执行各种操作。你可以通过发送 HTTP 请求来与 Elasticsearch 进行交互,使用适当的路径和参数来执行所需的操作,并通过响应获取结果和数据。文章来源:https://www.toymoban.com/news/detail-501314.html
要使用 Elasticsearch RESTful API,你可以使用任何支持 HTTP 请求的工具,如 cURL、Postman、Python requests 等。另外,Elasticsearch 还提供了官方的客户端库,可简化与 Elasticsearch 的交互,如 Elasticsearch-PHP、Elasticsearch-Java、Elasticsearch-Py 等。文章来源地址https://www.toymoban.com/news/detail-501314.html
到了这里,关于(三)ElasticSearch核心知识理解(目录结构,索引,RESTful)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!