Elasticsearch快速入门
文章目录
- Elasticsearch快速入门
- 核心概念
- 倒排索引
- 基本使用
- 索引操作
- 创建索引
- 类型映射[了解]
- 数据类型[了解]
- 查看索引
- 删除索引
- 文档操作
- 添加文档
- 修改文档
- 删除文档
- 查询文档
- 准备数据
- 主键查询
- 精确查询
- 匹配查询
Elasticsearch快速入门
核心概念
Elasticsearch是面向文档的,以json格式存储数据的NoSQL数据库,也是一个全文搜索引擎。
Elasticsearch | 关系型数据库(如Mysql) |
---|---|
索引(Index) | 数据库(Database) |
类型(Type) | 表(Table) |
文档(Document) | 行,记录(Row,Record) |
字段(Field) | 列,字段(Column,Field) |
映射(Mapping) | 约束(Schema) |
注意:es中的类型在es7.x版本中已经没有,在后面的8.x版本中被彻底删除掉。
倒排索引
倒排索引(Inverted Index),是Elasticsearch中的索引工作机制。倒排索引是区别于正排索引的概念:
- 正排索引:是以文档对象的唯一ID作为索引,以文档内容作为记录。
- 倒排索引:指的是将文档内容中的单词作为索引,将包含该词的文档ID作为记录。
Elasticsearch的工作流程如下,因为使用倒排索引产生的文档记录要比mysql数据行少多了,所以会比较快。
基本使用
es提供了retfulAPI风格操作接口给开发者对索引、类型、文档、字段、映射等进行增删查改操作。
索引操作
创建索引
请求格式:
PUT /索引名称
类型映射[了解]
相当于在mysql中创建数据表时的字段类型
# 索引名称必须已经存在!
POST /索引名称/类型名称
{"类型名称": { // 映射的类型名称"properties": { // 索引中文档的属性"字段名": { // 属性名或字段名"type": "text" // 属性值类型或字段类型,text表示文本,如商品标题"index": "analyzed", // 索引类型"analyzer": "ik_smart" // 设置使用的分词器[标准分词]},"字段名": { // 属性名或字段名"type": "text" // 属性值类型或字段类型,text表示文本,如商品标题"index": "analyzed", // 索引类型"analyzer": "standard" // 设置使用的分词器},"字段名": { // 属性名或字段名"type": "text" // 属性值类型或字段类型,text表示文本,如商品标题"index": "analyzed", // 索引类型"analyzer": "standard" // 设置使用的分词器}}}
}
kinana操作:
POST /indexes1/goods
{"mapping": {"properties": {"id": {"type": "long"},"name": {"type": "text","index": "analyzed","analyzer": "ik_max_word"},"price":{"type": "float"},"created_time":{"type": "date","format":"yyyy-MM-dd HH:mm:ss"}}}
}
数据类型[了解]
elasticsearch中支持的常见字段数据类型:
类型 | 描述 |
---|---|
text | 字符串类型,可以模糊查询, 可以分词查询,不能聚合、排序 |
keyword | 字符串类型,只能精准查询, 不能分词查询,可以聚合、排序 |
long | 有符号的64位整数, 范围:[−263 ~ 263-1] |
Integer | 有符号的32位整数, 范围: [−231 ~ 231-1] |
short | 有符号的16位整数, 范围: [-32768 ~ 32767] |
byte | 有符号的8位整数, 范围: [-128 ~ 127] |
float | 32位单精度浮点数 |
double | 64位双精度浮点数 |
boolean | 布尔类型,支持使用字符串,数字等零值表示true/false |
date | 日期类型, |
date_nanos | 日期纳秒类型, |
binary | 二进制类型,Base64编码字符串的二进制值 |
Range | 范围类型,有integer_range, float_range, long_range, double_range, date_range等 |
array | 数组类型,ES中没有专门的数组类型, 直接使用[ ]定义即可,所有的成员的值必须是同一种数据类型 |
object | 对象类型,以json对象为结构 |
使用默认类型_doc代替映射的创建,es会内部自动推断字段类型。
PUT /indexes2/_doc/文档ID
{"name": "商品的标题","price": 18,"created_time": "2022-01-10 22:00:31"
}
_doc
就是默认类型(default type),type在8.x版本会被彻底删除,以后使用默认类型_doc
替代即可。
查看索引
GET /_cat/indices # 查看所有的索引信息
GET /索引名称 # 查看指定名称的索引信息
删除索引
DELETE /索引名称
文档操作
请求方法/method | uri地址 | 描述 |
---|---|---|
PUT(创建,修改) | /索引名称/_doc/文档id | 创建文档(指定文档id) |
POST(创建) | /索引名称/_doc/文档id | 创建文档,如果uri地址只是以_doc结尾,文档id是随机生成的) |
POST(修改) | /索引名称/_doc/文档id/_update | 修改文档 |
DELETE(删除) | /索引名称/_doc/文档id | 删除文档 |
GET(查询) | /索引名称/_doc/文档id | 查询文档通过文档ID |
POST(查询) | /索引名称/_doc/文档id/_search | 查询所有数据 |
添加文档
POST /索引名称/_doc
{"id": 1,"name": "华为手机","category": "华为","cover": "1.png","price": "3999.00"
}
修改文档
POST /索引名称/_doc/1
{"name": "华为手机mate40","price": "4999.00"
}
删除文档
DELETE /索引名称/_doc/1
查询文档
查询文档有三种方式:
- 主键查询:根据文档id查询
- 精确查询:根据关键词查询,也叫term查询 浪潮之巅 -> 浪潮之巅
- 匹配查询:根据输入的内容先对内容进行分词,再进行分词匹配查询 浪潮 -> 浪潮之巅
准备数据
POST /indexes4/_doc/1
{"created_time":"2022-04-01","title":"浪潮之巅","content":"一部IT人非读不可,而非IT人也应该阅读的作品,讲故事的经典作品","author_id": 119
}POST /indexes4/_doc/2
{"post_date":"2022-03-12","title":"人月神话","content":"一部IT人非读不可,而非IT人也应该阅读的作品,讲人与团队关系作品","author_id": 120
}POST /indexes4/_doc/3
{"post_date":"2021-12-16","title":"代码之髓","content":"小日子过得不错的人写的作品,对代码中各种语言结构的实现进行揭秘","author_id": 110
}
主键查询
# GET /索引名称/_doc/1
GET /indexes4/_doc/3
精确查询
POST /索引名称/_search{"query": {"term": {"字段名": {"value": "字段值"},"字段名": {"value": "字段值"}}}
}# 如果是text格式,无法精确查询的,只能匹配查询
kibana操作:
POST /indexes4/_search
{"query": {"term": {"author_id": {"value": 119}}}
}
匹配查询
查询所有
POST /索引名称/_search
{"query": {"match_all": {}},"sort": [ # 排序,注意:text无法使用排序,keyword才支持# {"字段名":"排序规则,asc正序, desc倒序"}{"title": "asc" }],"from": 0, # 分页,查询起始下标"size": 2, # 指定返回结果数量"_source": ["title", "content"] # 指定只返回部分字段
}
kibana操作:
POST /indexes4/_search
{"query": {"match_all": {}},"sort": {"author_id": "desc"},"from": 0,"size": 4,"_source": ["title"]
}
条件查询
格式:
POST /索引名称/_search
{"query": {"match": {"字段名": "查询条件值"}}
}
POST /indexes4/_search
{"query": {"match": {"content": "非读不可"}}
}
若有错误与不足请指出,关注DPT一起进步吧!!!
相关文章:
Elasticsearch快速入门
文章目录 Elasticsearch快速入门核心概念倒排索引基本使用索引操作创建索引类型映射[了解]数据类型[了解] 查看索引删除索引 文档操作添加文档修改文档删除文档查询文档准备数据主键查询精确查询匹配查询 Elasticsearch快速入门 核心概念 Elasticsearch是面向文档的ÿ…...
uniapp微信小程序遮罩层u-popup禁止底层穿透
添加 touchmove.prevent,遮罩层底部的页面就不会滑动了微信开发者工具不生效,真机生效 <u-popup :show"showEwm" close"closeEwm" mode"center" touchmove.prevent><view class"ewmshow"></vie…...
【RocketMQ】秒杀设计与实现
🎯 导读:本文档详细探讨了高并发场景下的秒杀系统设计与优化策略,特别是如何在短时间内处理大量请求。文档分析了系统性能指标如QPS(每秒查询率)和TPS(每秒事务数),并通过实例讲解了…...
高级架构师面试题
一、技术深度方面 微服务架构的核心概念和优势: • 核心概念:将一个大型的应用拆分为多个小型的、独立部署的服务,每个服务都围绕着特定的业务功能进行构建,服务之间通过轻量级的通信机制进行交互。 • 优势: • 独…...
phpstudy简易使用
注意,本文所述的操作步骤均建立在电脑上已经完成php环境变量的配置与vscode的安装之上 、...
ubuntu server 常用配置
这里写目录标题 0001 虚拟机静态IP0002 vim tab 4个空格0003 设置时区0004 网络端口查看端口开放端口 0005 修噶机主机名 0001 虚拟机静态IP win网络链接,IP地址:192.168.220.1 - NAT网关:192.168.220.2 - ubuntu静态IP设置: ca…...
[Day 82] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
AI在風險控制中的應用案例 風險控制是企業管理中至關重要的一環,AI技術的引入為風險控制帶來了前所未有的自動化和智能化。無論是在金融、保險、製造業,還是網絡安全中,AI都能有效地分析和預測潛在風險。本文將探討AI在風險控制中的應用&…...
微信小程序map组件自定义气泡真机不显示
最近遇到一个需求需要使用uniapp的map自定义气泡 ,做完之后发现在模拟器上好好的,ios真机不显示,安卓页数时好时不好的 一番查询发现是小程序的老问题了,网上的方法都试了也没能解决 后来看到有人说用nvue可以正常显示,…...
数据结构之链表(2),双向链表
目录 前言 一、链表的分类详细 二、双向链表 三、双向链表的实现 四、List.c文件的完整代码 五、使用演示 总结 前言 接着上一篇单链表来详细说说链表中什么是带头和不带头,“哨兵位”是什么,什么是单向什么是双向,什么是循环和不循环。然后实…...
STL之list篇(下)(从底层分析实现list容器,逐步剥开list的外表)
文章目录 前言一、list的数据结构和类实现需求1.1 数据结构1.2 list类实现需求 二、list迭代器的实现2.1 为什么list不能直接把迭代器当作指针一样使用?2.2 list迭代器的框架设计2.3 *和-> 操作符的重载2.4 和-- 操作符的重载2.5 !和 操作符的重载 三、 list的函…...
视频去水印的3个技巧,教你无痕去水印
许多视频平台为了推广自身品牌或者广告用途,会在视频上添加水印。这些水印不仅影响了视频的美观,还可能限制了内容的传播范围。幸运的是,有几种简单而有效的方法可以帮助我们去除视频中的水印,同时保持视频的原始画质和观感。以下…...
LSTM模型改进实现多步预测未来30天销售额
关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝,拥有2篇国家级人工智能发明专利。 社区特色…...
八LAMP搭建
# LAMP ## 一、知识回顾 ### FTP samba nfs 特点 - 借用Linux用户作为映射用户,进行权限管理 - 软件本身还有管理控制权限 #### 客户端连接到服务器后进行读写执行等操作 ,必须同时具有: - 软件许可的权限 vsftpd: anon upload enableYES - 文件…...
Windows——解除Windows系统中文件名和目录路径的最大长度限制
第一步:打开本地组策略编辑器 按下Win R键打开运行窗口,输入 gpedit.msc 并回车,打开本地组策略编辑器。 第二步:开启 长路径设置 第三步:重启计算机...
黑名单与ip禁令是同一个东西吗
黑名单和IP禁令相关,但它们并不是完全相同的概念。以下是它们之间的区别: 黑名单 定义:黑名单通常是一个包含不允许或被禁止的用户、IP地址、域名或其他实体的列表。用途:用于阻止特定用户或实体访问某个系统或服务。黑名单可以…...
FuTalk设计周刊-Vol.075
国庆75周年,也是第75期周刊~ 祝大家国庆快乐~! #AI漫谈 热点捕手 1.万字深剖!13位AI巨擘联袂,1.6万字解码生成式AI产品「全攻略」 “生成式人工智能产品”主题论坛,邀请到了来自腾讯、商汤科…...
PE节表中是否存在misc.VirtualSize 比SizeofRawData还要大的情况
确实是存在的,这是win10自带记事本,可以看到 确实是大.所以在申请imagebuffer的时候,还是需要比较大小.但是在还原的时候.只考虑sizeofRawData即可>...
栈及笔试题
目录 栈的实现 1、数组栈 2、链式栈 栈的创建 栈的打印 内存泄漏 栈溢出 练习 有效的括号 栈的实现 栈后入先出 1、数组栈 (最佳实现,且访问数据的时候CPU告诉访存命中率比较高,因为地址连续存放,访问时CPU从cache里一…...
【工程测试技术】第3章 测试装置的基本特性,静态特性和动态特性,一阶二阶系统的特性,负载效应,抗干扰性
目录 3.1 概述 1测量装置的静态特性 2.标准和标准传递 3.测量装置的动态特性 4.测量装置的负载特性 5.测量装置的抗干扰性 1.线性度 2.灵敏度 3.回程误差 4.分辨力 5.零点漂移和灵敏度漂移 3.3.1 动态特性的数学描述 1.传递函数 2.频率响应函数 3.脉冲响应函数 …...
ireport 5.1 中文生辟字显示不出来,生成PDF报字体找不到
ireport生成pdf里文字不显示。本文以宋体中文字不显示为例。 问题:由浅入深一步一步分析 问题1、预览正常,但生成pdf中文不显示 报告模板编辑后,预览正常,但生成pdf中文不显示。以下是试验过程: 先编辑好一个报告单模…...
给Ubuntu虚拟机设置静态IP地址(固定IP)
查看 为Ubuntu虚拟机配置静态IP地址(固定IP)的方法经过亲自测试,已被证实有效。 这里你记得网关就可以了,等下要用 查看配置前的网络信息 ifconfig 查看网关 route -n 配置 配置网络文件 cd /etc/netplan/ ls 查看自己的文件的名…...
spring boot文件上传之x-file-storage
spring boot文件上传之x-file-storage 今天看到一个文件上传的开源组件x-file-storage,官方地址如下: https://x-file-storage.xuyanwu.cn/#/ 该组件官网是这样介绍的,如下: 一行代码将文件存储到本地、FTP、SFTP、WebDAV、阿…...
Object.values() 、 Object.keys()
拿到当前对象里面的value值 // 假设你有一个对象 const myObject {name: Kimi,age: 30,country: Moon };// 获取对象的所有值 const values Object.values(myObject);// 输出值数组 console.log(values); // ["Kimi", 30, "Moon"] 如果你需要在 Vue 组…...
脸爱云管理系统存在任意文件上传漏洞
漏洞描述 脸爱云一脸通智慧管理平台是一套功能强大、运行稳定、操作简单方便、用户界面美观的一脸通系统。该平台整合了人脸识别技术和智能化解决方案,可以实现识别和管理个体身份,为各种场景提供便捷的身份验证和管理功能。其存在任意文件上传漏洞&…...
elasticsearch_exporter启动报错 failed to fetch and decode node stats
最近把服务器迁移到了ubuntu系统,结果发现在centos还正常运行的elasticsearch_exporter,用systemd启动后一直报错 failed to fetch and decode node stats 在网上翻了大半年,竟然都无解!这种报错,很明显就是你的ES密码…...
Git 使用方法
简介 Git常用命令 Git 全局设置 获取Git 仓库 方法二用的比较多 将仓库链接复制 在 git base here ----> git clone 仓库链接 工作区、暂存区、版本库 Git 工作区中文件中的状态 本地仓库的操作 远程仓库操作 git pull 将代码推送到远程仓库 1. git add 文件名 ---放…...
生产环境升级mysql流程及配置主从服务
之前写到过mysql升级8.4的文章, 因此不再介绍mysql的安装过程 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客 生产环境升级mysql8.4.x流程 安装mysql 参考之前文章: 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客…...
论软件体系结构的演化
摘要 2022年3月,我加入了公司的新智慧公交平台项目研发团队,并担任系统架构师角色,负责系统整体架构的设计与评审。该项目采用了物联网三层架构模型,其中设备接入层和网络交互层基于公司的中台战略,我们有效复…...
【go入门】常量
目录 定义枚举iota思考题 定义 go语言常量的定义和其他语言类似,常量中的数据类型只能是布尔型,数字型(整型、浮点型、复数)和字符串型 常量的定义方式和变量一样,只不过变量定义使用 var 关键字,而常量定…...
2.1 HuggingFists系统架构(二)
部署架构 上图为HuggingFists的部署架构。从架构图可知,HuggingFists主要分为服务器(Server)、计算节点(Node)以及数据库(Storage)三部分。这三部分可以分别部署在不同的机器上,以满足系统的性能需求。为部署方便,HuggingFists社区版将这三部…...
哈尔滨做网站费用/网推接单平台有哪些
Java File setWritable()方法java.io.File.setWritable(boolean writable, boolean ownerOnly) 方法设置所有者或在此抽象路径名所有人的写权限。1 语法public boolean setWritable(boolean writable, boolean ownerOnly)2 参数writable:如果为true,允许…...
网站企业建站/seo1域名查询
还是畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26860 Accepted Submission(s): 11985Problem Description某省调查乡村交通状况,得到的统计表中列出了随意两村庄间的距离。省政府“…...
wordpress媒体默认链接/灰色行业推广平台网站
使用 <script setup>组合式 API 的语法糖的时候,defineProps报错: 代码如下: 第一次写vue3的项目,真的是到处都是坑啊,我就不断的百度百度再百度,发现再 module.exports {root: true,env: {node: …...
如何卸wordpress/销售系统
课程网址 项目地址 发布对象 发布对象:使一个对象能够被当前范围之外的代码所使用对象溢出:一种错误的发布,当一个对象还没有构造完成时,就使它被其他线程所见不正确的发布可变对象导致的两种错误: 1.发布线程意外的所…...
如何在百度举报网站/网络营销运营公司
1.java3d开发环境搭建 jdk(java development kit)安装java3d安装IDE安装(eclipse,idea,netbeans选择一种即可) 2.java3d开发引擎 JMEArdor3DXith3D 3.java3d原理 JAVA 3D从高层次为开发者提供对三维实体的创建、操纵和着色,使开发工作变得极为简单。同时&#…...
wordpress 百度优化/环球网
https://github.com/starrtc/android-demo 围城(爱熄灭了灯,心围一座城。出版七十周年纪念版) (钱钟书) - 您在位置 #49-49的标注 | 添加于 2018年9月16日星期日 上午7:58:57 忧世伤生, 围城(爱熄灭了灯,…...