当前位置: 首页 > news >正文

【1】Elasticsearch 30分钟快速入门

文章目录

    • 一、Elasticsearch 基本概念及工作原理
      • (一)基本概念
      • (二)工作原理
    • 二、Elasticsearch 原生 RESTful 方式的增删改查
      • (一)创建索引
      • (二)插入文档
      • (三)查询文档
      • (四)更新文档
      • (五)删除文档
      • (六)删除索引
    • 三、Python SDK 实现增删改查
      • (一)安装 Elasticsearch Python SDK
      • (二)连接到 Elasticsearch
      • (三)插入文档
      • (四)查询文档
      • (五)更新文档
      • (六)删除文档
    • 四、查询方式详解
      • (一)基本查询
      • (二)复合查询
      • (三)聚合查询
    • 五、Elasticsearch 单条文档数据结构及元数据字段名解释
      • (一)文档数据结构
      • (二)元数据字段名解释
    • 六、Elasticsearch 查询结果详细解释
      • (一)hits
      • (二)aggregations(如果有聚合查询)

一、Elasticsearch 基本概念及工作原理

(一)基本概念

  1. 索引(Index)
    它是 Elasticsearch 中存储数据的地方,类似于数据库中的表。一个索引可以包含多个文档,并且这些文档通常具有相似的结构。例如,你可以有一个名为“blog_index”的索引来存储所有的博客文章。
  2. 文档(Document)
    文档是 Elasticsearch 中的基本数据单元,以 JSON 格式表示。它类似于数据库中的一行记录。每个文档都有自己的唯一标识符(_id),并且存储在索引中。例如,一篇博客文章的内容、标题、作者等信息可以组成一个文档。
  3. 类型(Type)
    在 Elasticsearch 7.x 及以后版本中,一个索引通常只对应一种类型的文档。在早期版本中,类型用于在一个索引内对文档进行分类。
  4. 节点(Node)
    一个 Elasticsearch 实例就是一个节点。多个节点可以组成一个集群,共同存储和处理数据。节点可以存储数据、参与集群的索引和搜索功能。
  5. 集群(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."
}

(三)查询文档

  1. 查询所有文档
    使用 GET 请求查询索引中的所有文档。例如:
GET /my_index/_search
  1. 带条件查询文档
    通过指定查询条件来查询特定文档。比如查询“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 Elasticsearches = Elasticsearch([{'host': 'localhost', 'port': 9200}])

(三)插入文档

doc =</
http://www.lryc.cn/news/475402.html

相关文章:

  • 教材管理系统设计与实现
  • 软考(中级-软件设计师)数据库篇(1101)
  • 安装nscd及glibc包冲突降级【centos7】
  • Qt字符编码
  • Ubuntu用docker安装AWVS和Nessus(含破解)
  • tauri开发中如果取消了默认的菜单项,复制黏贴撤销等功能也就没有了,解决办法
  • HNU-小学期-专业综合设计
  • Linux安装es和kibana
  • 第二十六章 Vue之在当前组件范围内获取dom元素和组件实例
  • Markdown 区块
  • ctf文件上传题小总结与记录
  • 什么是QAM
  • GraphQL 与 Elasticsearch 相遇:使用 Hasura DDN 构建可扩展、支持 AI 的应用程序
  • 面试题整理 3
  • 数据结构(Java)—— 认识泛型
  • 处理后的视频如何加上音频信息?
  • 02LangChain 实战课——安装入门
  • Python函数中关键字参数、位置参数、默认参数有何不同
  • PNG 格式和 JPG 格式都什么时候用
  • Qt 练习做一个登录界面
  • 计算机视觉实验一:图像基础处理
  • 【WebApi】C# webapi 后端接收部分属性
  • Java 使用 Redis
  • 【ONE·Linux || 高级IO(二)】
  • 将 IBM WatsonX 数据与 Milvus 结合使用,构建用于知识检索的智能 Slack 机器人
  • 2024 网鼎杯 CTF --- Crypto wp
  • 深度学习基础知识-损失函数
  • 《逆向记录》
  • chatgpt3.5权重参数有多少MB;llama7B权重参数有多少MB
  • ST IoT Wireless 物联网与无线技术 研讨会