ElasticSearch学习笔记一:简单使用

一、前言

该系列的文章用于记录本人从0学习ES的过程,首先会对基本的使用进行讲解。本文默认已经安装了ES单机版本(当然后续也会有对应的笔记),且对ES已经有了相对的了解,闲话少叙,书开正文。

二、ES简介

ES是Elasticsearch的缩写,是一个基于Lucene的开源全文搜索引擎,提供了分布式、多租户、全文搜索、实时数据分析等功能。ES使用Java语言编写,可以通过RESTful API进行访问和操作,具有快速、可扩展、高可用等特点,是当前最受欢迎的搜索和分析引擎之一。

三、ES中的基本概念

1、索引

在关系型数据库中,我们经常会使用到索引去优化查询,在ES中的索引则更类似于关系型数据库(这里以MySQL为例)中的表,在ES中当我们说建立某个索引时,等同于在Mysql创建某个表。

2、文档

在ES中文档类似于MySQL的表中的一条数据,一个文档就是一条数据。ES中的文档是以JSON格式存储的。用户对数据操作的最细粒度就是文档。

3、字段

这个和MySQL中基本一致,一个索引由多个字段组成,例如我有一个Student(学生)索引,里面就可能有name、age、grade等一系列的字段。

4、映射

Mapping,建立索引时需要定义文档的数据结构,这种结构叫做映射。文档的字段类型一旦设定后就不能更改,因为ES针对定义的类型已经建立特殊的索引结构

5、DSL

ES使用DSL(Domain specific Language,领域特定语言),来定义一系列的操作,ES中的DSL采用JSON进行表达。

四、ES基本使用

1、创建一个索引

目标:创建一个名为hotel的索引(换成我们熟悉的MySQL来说就是创建一张名为hotel的表),字段包含标题、城市、价格。

语法:
PUT /索引名
{"mappings":{"properties":{"字段1":{"type":"类型"},"字段2":{"type":"类型"},....}}
}实际操作:
PUT /hotel
{"mappings": {"properties": {"title":{"type": "text"},"city":{"type": "keyword"},"price":{"type": "double"}}}
}

解释:通过上述DSL语句,我们就创建了一个名为hotel的索引,同时我们通过mapping(映射)设置了每个字段的类型,包括text、keyword、double,当然ES中不仅仅支持这几种类型,具体的我们放到后面的文章详细讲解。

2、写入数据

在上一步中我们创建了一个hotel所以,接下来我们就要往这个索引里写入数据,确切的说是写入文档。

1、不指定ID
POST /hotel/_doc
{"title":"国际大酒店","city":"杭州","price":1888
}2、指定ID
POST /hotel/_doc/1
{"title":"白金汉大酒店","city":"杭州","price":2000
}

解释:通过上述DSL我们创建了两个文档,不同点在于第一个没有指定文档ID,此时es会自动生成一个ID,第二个则是手动指定了ID,此时ES将不再设置ID,我们可以查看一下结果

在这里插入图片描述

3、简单查询

查询可以说是ES中最重要的功能,ES之所以可以流行就是因为其强大的搜索能力,由于是第一篇文章,我们先接触最简单的搜索。

1、根据ID搜索

例如我们要搜索刚才创建的第一条数据,也就是ID由ES自动生成的,nlZ2IJMBnXpwIQ8i5SHn

语法:
GET /{索引名}/_doc/{ID}
示例:
GET /hotel/_doc/nlZ2IJMBnXpwIQ8i5SHn

结果如下:

2、根据一般字段搜索

例如搜索“国际“

语法:
GET /{索引名}/_search
{"query":{.....}
}示例:
GET /hotel/_search
{"query": {"match": {"title": "国际"}}
}

在这里插入图片描述

当然ES的搜索远不止此,更多的高级功能将放在后文中讲解。

4、删除

例如我们要删除id = 1的文档

DELETE /hotel/_doc/1

五、结束语

第一篇文章,相对简单,我们介绍了ES中的基本概念,然后做了最简单CRUD操作,也算是对ES有了一个最最简单的认识,后续的文章会逐步深入,希望对你有所帮助!未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/470417.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FFmpeg 4.3 音视频-多路H265监控录放C++开发十三:将AVFrame转换成AVPacket。视频编码原理.编码相关api

前提: 从前面的学习我们知道 AVFrame中是最原始的 视频数据,这一节开始我们需要将这个最原始的视频数据 压缩成 AVPacket数据, 我们前面,将YUV数据或者 RGBA 数据装进入了 AVFrame里面,并且在SDL中显示。 也就是说&…

ODOO学习笔记(8):模块化架构的优势

灵活性与可定制性 业务流程适配:企业的业务流程往往因行业、规模和管理方式等因素而各不相同。Odoo的模块化架构允许企业根据自身的具体业务流程,选择和组合不同的模块。例如,一家制造企业可以启用采购、库存、生产和销售模块,并通…

28.医院管理系统(基于springboot和vue)

目录 1.系统的受众说明 2. 相关技术和开发环境 2.1 相关技术 2.1.1 Java语言 2.1.2 HTML、CSS、JavaScript 2.1.3 Redis 2.1.4 MySQL 2.1.5 SSM框架 2.1.6 Vue.js 2.1.7 SpringBoot 2.2 开发环境 3. 系统分析 3.1 可行性分析 3.1.1 经济可行性 3.1.2 技术…

实时渲染技术如何助力3D虚拟展厅?

实时渲染技术以其强大的图形处理能力和即时反馈特性,在虚拟展厅的创建和体验中发挥着举足轻重的作用。视创云展3D虚拟展厅提供全方位的VR漫游体验,实时渲染技术确保场景细腻逼真,让访客仿佛置身其中,享受沉浸式的视听享受。以下是…

金价大跌,特朗普胜选或成导火索

黄金光芒不再,美元强势崛起 上周特朗普赢得美国总统选举后,金价出现了大幅下跌。这标志着市场情绪正在发生转变,投资者开始从避险资产转向风险资产。 为何金价会下跌? 美元走强: 特朗普的胜选提振了美元,…

springboot项目中,使用ProGuard 对代码进行混淆

springboot项目中&#xff0c;使用ProGuard 对代码进行混淆 使用maven作为构建工具 &#xff0c; 在build中添加如下内容 <build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</inclu…

[CKS] 关闭API凭据自动挂载

目前的所有题目为2024年10月后更新的最新题库&#xff0c;考试的k8s版本为1.31.1 BackGround 安全审计发现某个Deployment有不合规的服务账号令牌&#xff0c;这可能导致安全漏洞。 Task 首先&#xff0c;修改monitoring namespace中现有的stats-monitor-sa ServiceAccount&…

zabbix监控端界面时间与服务器时间不对应

1. 修改系统时间 # tzselect Please select a continent, ocean, "coord", or "TZ".1) Africa2) Americas3) Antarctica4) Asia5) Atlantic Ocean6) Australia7) Europe8) Indian Ocean9) Pacific Ocean 10) coord - I want to use geographical coordina…

Gsensor加速度传感器数据异常及概率性卡死

关注 点赞 收藏 不错过精彩内容 大家好&#xff0c;我是硬核王同学 今天给大家分享下&#xff0c;经过三个多月解决的Gsensor加速度传感器数据异常及概率性卡死的问题。 数据异常 故事的开始是来自一位客户的投诉&#xff0c;说机器放在桌面上不去动它&#xff0c;语音就会播…

【CSS】“flex: 1“有什么用?

flex 属性的组成 flex 属性是一个复合属性&#xff0c;包含以下三个子属性&#xff1a; flex-grow&#xff1a;决定元素在容器中剩余空间的分配比例。默认值为 0&#xff0c;表示元素不会扩展。当设置为正数时&#xff0c;元素会按照设定比例扩展。flex-shrink&#xff1a;决…

【STM32】基于SPI协议读写SD,详解!

文章目录 0 前言1 SD卡的种类和简介1.1 SD卡的种类1.2 SD卡的整体结构1.3 SD卡运行机制——指令和响应2 SD卡的通信总线2.1 SDIO2.2 SPI3 硬件连接4 代码实践【重点】4.1 HAL库移植4.2 标准库移植4.3 遇到的问题和解决方案5 扩展阅读0 前言 因为项目需要,使用stm32读写sd卡,这…

软件测试面试题(800道)【附带答案】持续更新...

&#xff08;2024版&#xff09;面经 详细笔记部分展示&#xff1a; 测试基础&#xff08;102页&#xff09; Linux基础&#xff08;38页&#xff09; MySQL&#xff08;63页&#xff09; web测试&#xff08;21页&#xff09; API测试&#xff08;46页&#xff09; APP测试&…

带你掌握springboot集成SpringSecurity安全框架

前言&#xff1a; Spring Security 是 Spring 家族中的一个框架&#xff0c;提供了一套 Web 应用安全性的完整解决方案。一般来说&#xff0c;系统的安全性包括用户认证&#xff08;Authentication&#xff09;和用户授权&#xff08;Authorization&#xff09;两个部分。 认证…

【2024最新】基于springboot+vue的闲一品交易平台lw+ppt

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…

修改yolo格式的labels类别、删除yolo格式的labels类别

1、项目中&#xff0c;数据集的类别顺序有时会改变&#xff0c;例如a项目类别1是b项目的类别3&#xff0c;&#xff0c;需要用a项目的数据集&#xff0c;只需要改类别就行&#xff0c;就不需要重新标注了&#xff0c;例如a项目的classes是 b项目的classes是 a项目的数据可以用…

Java项目实战II基于微信小程序的个人行政复议在线预约系统微信小程序(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 基于微信小…

Kubernetes在容器编排中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 Kubernetes在容器编排中的应用 Kubernetes在容器编排中的应用 Kubernetes在容器编排中的应用 引言 Kubernetes 概述 定义与原理 …

D67【python 接口自动化学习】- python基础之数据库

day67 Python操作MySQL基础使用 学习日期&#xff1a;20241113 学习目标&#xff1a;MySQL数据库-- 136 Python操作MySQL基础使用 学习笔记&#xff1a; pymysql 创建MySQL的数据库链接 执行sql语句 总结 Python中使用第三方库&#xff1a;pymysql来操作MySQL&#xff0c;…

GitLab基于Drone搭建持续集成(CI/CD)

本文介绍了如何为 Gitee 安装 Drone 服务器。服务器打包为在 DockerHub 上分发的最小 Docker 映像。 1. 准备工作 创建OAuth应用 创建 GitLab OAuth 应用。Consumer Key 和 Consumer Secret 用于授权访问极狐GitLab 资源。 ps:授权回调 URL 必须与以下格式和路径匹配&…

python实战(八)——情感识别(多分类)

一、任务目标 本文使用的是来自Kaggle的一个情感识别数据集&#xff0c;这个数据集的总数据量是5934条&#xff0c;标签为anger、fear、joy三种情感的其中一种&#xff0c;很明显是一个多分类任务。这里&#xff0c;我们将使用微调技巧进行深度学习建模&#xff0c;同时我们会比…