文章目录
一、Elasticsearch 基本概念及工作原理
(一)基本概念
- 索引(Index)
它是 Elasticsearch 中存储数据的地方,类似于数据库中的表。一个索引可以包含多个文档,并且这些文档通常具有相似的结构。例如,你可以有一个名为“blog_index”的索引来存储所有的博客文章。 - 文档(Document)
文档是 Elasticsearch 中的基本数据单元,以 JSON 格式表示。它类似于数据库中的一行记录。每个文档都有自己的唯一标识符(_id),并且存储在索引中。例如,一篇博客文章的内容、标题、作者等信息可以组成一个文档。 - 类型(Type)
在 Elasticsearch 7.x 及以后版本中,一个索引通常只对应一种类型的文档。在早期版本中,类型用于在一个索引内对文档进行分类。 - 节点(Node)
一个 Elasticsearch 实例就是一个节点。多个节点可以组成一个集群,共同存储和处理数据。节点可以存储数据、参与集群的索引和搜索功能。 - 集群(Cluster)
由一个或多个节点组成的集合。集群提供了高可用性和可扩展性,数据可以分布在多个节点上,并且在节点故障时能够自动重新分配数据。
(二)工作原理
Elasticsearch 将数据存储在索引中,索引会被分成多个分片(Shard)。这些分片可以分布在不同的节点上。当进行数据存储时,文档会被路由到特定的分片。在查询时,查询请求会被分发到相关的分片上,每个分片执行查询并返回结果,然后这些结果在协调节点上合并后返回给用户。
Elasticsearch 使用倒排索引来实现快速查询。倒排索引记录了每个单词在哪些文档中出现,以及出现的位置等信息。这样,当查询特定关键词时,可以快速定位到包含该关键词的文档。
二、Elasticsearch 原生 RESTful 方式的增删改查
(一)创建索引
使用 PUT 请求创建索引。例如,创建一个名为“my_index”的索引:
PUT /my_index
(二)插入文档
使用 POST 请求向索引中插入文档。假设向“my_index”插入一个简单文档:
POST /my_index/_doc
{
"name": "example",
"description": "This is an example document."
}
(三)查询文档
- 查询所有文档
使用 GET 请求查询索引中的所有文档。例如:
GET /my_index/_search
- 带条件查询文档
通过指定查询条件来查询特定文档。比如查询“name”为“example”的文档:
GET /my_index/_search
{
"query": {
"match": {
"name": "example"
}
}
}
(四)更新文档
使用 POST 请求更新文档。例如,更新“my_index”中某个文档的“description”字段:
POST /my_index/_update/{document_id}
{
"doc": {
"description": "This is an updated example document."
}
}
(五)删除文档
使用 DELETE 请求删除指定文档。例如:
DELETE /my_index/_doc/{document_id}
(六)删除索引
使用 DELETE 请求删除整个索引:
DELETE /my_index
三、Python SDK 实现增删改查
(一)安装 Elasticsearch Python SDK
使用pip
安装:
pip install elasticsearch
(二)连接到 Elasticsearch
from elasticsearch import Elasticsearch
es = Elasticsearch([{
'host': 'localhost', 'port': 9200}])
(三)插入文档
doc =</
标签:index,入门,30,查询,索引,文档,Elasticsearch,my
From: https://blog.csdn.net/Grit_my/article/details/143425797