首页 > 其他分享 >【1】Elasticsearch 30分钟快速入门

【1】Elasticsearch 30分钟快速入门

时间:2024-11-01 11:46:05浏览次数:3  
标签:index 入门 30 查询 索引 文档 Elasticsearch my

文章目录

一、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 Elasticsearch

es = Elasticsearch([{
   'host': 'localhost', 'port': 9200}])

(三)插入文档

doc =</

标签:index,入门,30,查询,索引,文档,Elasticsearch,my
From: https://blog.csdn.net/Grit_my/article/details/143425797

相关文章

  • 你还不会用数据库吗?一篇文章带你入门!!!#sql #Mysql
    目录前言一段话简单理解什么是“数据”,“数据库”,“SQL”,“Mysql”一、准备工作MySQL的安装二、打开MySQL方法一:通过下载的MySQL软件直接打开方法二:命令提示符打开(cmd)方法三:连接指定地址数据库服务端方法四:直接打开(前提已经建立过数据库)三、MySQL的一些简单语句(正式实......
  • C++之OpenCV入门到提高003:矩阵的掩膜(Mask)处理
    一、介绍今天是这个系列《C++之Opencv入门到提高》得第三篇文章。今天这篇文章也不难,主要介绍如何使用Opencv对图像进行掩膜处理,提高图像的对比度。在这个过程中,我们可以学到如何获取图像指针、如何处理像素值越界等问题。我们一步一个脚印的走,收获就会越来越多。虽然......
  • 零基础Linux入门教程:系统目录结构&文件管理命令
    Linux文件管理命令与系统目录结构1.重要文件目录根目录/(根目录)系统目录/bin:存放基本命令/sbin:存放系统管理命令/etc:系统配置文件/dev:设备文件/proc:进程和内核信息/var:易变文件,如日志/lib//lib64:共享库文件用户目录/home:用户家目录/root:......
  • 【深度学习】从公式推导来深入理解误差反向传播算法2:《深度学习入门基于Python的理论
    《深度学习入门基于Python的理论与实现》中实现了2层全连接神经网络的代码对MNIST数据集的28x28像素0-9手写数字灰度图像进行分类,本文将重点对代码中的two_layer_net类的gradient函数中的误差反向传播的代码进行公式推导验证。验证小批量数据的交叉熵损失函数对第2层权重......
  • Shell 语言教程 (入门)
    Shell介绍Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。shell编程通常指的是学习shell命令语法后,利用这套语法开发脚本程序,操作、访问内核服务。而不是使用C语言......
  • 【java】什么是 Future 和 CompletableFuture - 一篇文章快速入门 Java 异步编程
    1.引言在现代Java编程中,异步编程变得越来越重要。随着多核处理器的普及,充分利用多线程可以大大提高程序性能和用户体验。在这种情况下,Future和CompletableFuture成为处理异步任务的核心工具。2.Future是什么?Future的定义及基本概念Future是Java并发库中的接口......
  • 10.30博客
    今天学习了二叉树的内容二叉树的遍历是指按某条搜索路径访问树中的每个结点,使得每个结点均被访问一次,而且仅能访问一次(说明不可二次访问,一遍而过)。遍历一颗二叉树便要决定对根结点N、左子树L和右子树的访问顺序。求度为1的节点个数intDegree(BTree*t){if(!t)return0;el......
  • NOIP 模拟赛:2024-10-30
    T1:一场比赛一共有\(n\)位选手和\(m\)道题目,其中你是第\(1\)位选手。你现在知道了每位选手通过了哪些题目。你可以调整题目的顺序,然后给题目赋予一个分值,使得第\(i\)道题目的分值是\(2^i\)。你想知道能否通过调整题目的顺序,使得你的成绩恰好是第二高的。保证不存在两个选手的通......
  • centos7 查看防火墙开放3306端口
    在CentOS7中,系统默认使用firewalld作为防火墙管理系统。要查看防火墙是否开放了特定端口(如MySQL的3306端口),您可以按照以下步骤操作:1.查看当前防火墙规则首先,您可以查看当前防火墙的规则,确认是否已经有3306端口被开放:sudofirewall-cmd--list-all这条命令......
  • NHE2530FNW PCA, Clusters and Grid
    1HEUNIVERSITYOFHUDDERSFIELDSchoolofComputingandEngineeringASSIGNMENTSPECIFICATIONModuleDetailsModuleCodeNHE2530FNWModuleTitlePCA,ClustersandGridsCourseTitle/sBEng(Hons)ElectronicEngineeringandComputerSystemsAssessmentWeighting,Typ......