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

Elasticsearch使用系列-ES增删查改基本操作+ik分词

一、安装可视化工具Kibana

ES是一个NoSql数据库应用。和其他数据库一样,我们为了方便操作查看它,需要安装一个可视化工具 Kibana。

官网:https://www.elastic.co/cn/downloads/kibana

和前面安装ES一样,选中对应的环境下载,这里选择windows环境,注意安装的版本一定要和ES的版本一致,不然可能会启动不起来。

解压后进到config目录下修改kibana.yml配置文件

修改完配置,进入bin目录,双击 kibana.bat 文件启动。

启动后,打开kibana地址:http://localhost:5601/ ,出现下面界面就是安装成功了。

点自己浏览进入下面

点开发工具进入操作ES的界面,我们ES就在下面界面操作。

回到顶部

二、ES数据结构和数据类型

1.ES数据结构

这里以Mysql作对比,ES7.0以前的结构是Index,Type,Document,ES7.0以后废弃了Type,现在ES和Mysql的结构对比如下

MySql

Elasitcsearch

database(数据库)

Elasitcsearch(实例)

table(表)

index(索引)

row(行)

document(文档)

column(列)

field(字段)

2.ES数据类型

  • 字符串:text,keyword (重点类型)

  • 数值:long,integer,short,byte,double,float,half float,scaled float

  • 日期类型:date

  • 布尔类型:boolean

  • 二进制类型:binary

  • 等等。。。

这里的数据类型标红的是ES的重点类型,其它的和平时开发的类型一样,没什么特别。

回到顶部

三、ES的增删查改基本操作

请求方式

url地址

描述

PUT

http://localhost:9200/索引名称

创建索引

POST

http://local

1.创建索引,相当于数据库创建表

PUT index

View Code

这里说一下kibana执行的原理,kibana执行的是http请求,前面的PUT为请求方式,还有POST,GET等,后面的user是索引名称,因为kibana配置了es的信息,

所以会自动带上es的地址和端口,实际的请求为 PUT http://192.168.101.13:9200/user

查看索引字段信息

GET index

2.创建文档,相当于数据库插入数据记录

POST index/_doc/id (index:索引名称,_doc:固定,id:指定记录id,不填会自动生成一个唯一id)

4.查询

4.1查询全部

GET index/_search

4.2按条件查询

GET user/_search

{

"query": {

"term": {

"FIELD": {

"value": "VALUE"

}

}

}

}

5.更新

对应sql语句:update user set age=19 where id=1

_doc,doc,_update:固定写法

6.删除

6.1删除文档(相当于删除一条数据)

对应sql语句: delete from user where id=1

DELETE user/_doc/1

6.2删除索引(相当于删除表)

对应sql语句:drop table user

DELETE user

回到顶部

四、全文索引和ik分词

1.全文索引

创建索引的时候我上面故意创建了name(text),name1(keyword),name2(text+keyword),然后数据类型也说了text,keyword是ES的重点类型,这里演示他们的区别。

  • keyword类型:查询时条件只能全匹配

  • text类型:全文索引查询,查询时会先分词,然后用分词去匹配查询

  • keyword+text类型,一个字段两种类型,可以全匹配,也可以全文索引查询

keyword查询例子,name2(keyword)的查询:

keyword的查询用term,或terms(配置多个值)

因为是全匹配,条件”张三“查到数据,条件”张“时查不到数据。

text查询例子,name(text)的查询

text的查询用match

因为是全文索引分词匹配,所以条件“张三”和条件“张”的,都把匹配到的数据都查询出来了。

keyword+text查询例子,name3(text+keyword)的查询。

当只想查全匹配时,用term查询

当想用全文索引查询时,用match

2.ik分词

1.什么是分词?

我搜的是爱祖国,为什么,“爱钓鱼,爱唱歌"的都被搜出来了呢?

因为ES默认内置了一个分词器standard,看下这个分词器的分词结果

可以看到“爱祖国”的分词结果为“爱,祖,国”,被拆分成了单个字,只要一个字匹配到就查出来,这样的结果很多不是我们想要的。我们需要一款根据常用词语的分词器,这样查到的结果会更准确,

这里就用到了ik分词,ik分词也是企业开发用的最多的。

2.ik分词器插件安装

官网下载:https://github.com/medcl/elasticsearch-analysis-ik/releases

下载的版本要和es一致。

把文件下载后,解压复制到es部署文件的plugins文件夹下,并把文件夹的名称改为ik,必须要叫ik。windows,linux,docker(docker为挂载文件夹的方式把文件映射进去)一样,

然后重启es即可生效。

再看一下用ik分词器的分词结果。

可以看到,已经是按常用词语分词了。

3.自定义词组

上面“爱祖国”,被分成“爱祖国,祖国”,假如我想“爱组”也是一个词,现在这个词没被收怎么办?

打开刚才的ik文件夹下的config目录

里面的.dic结尾的都是分词,打开其中一个看一下。

所以我们要自定义词语,可以新建一个myword.dic

里面写上想要的分词

然后在IKAnalyzer.cfg.xml文件加上刚才的文件名

重启es,再看一下分词结果。

4.ik分词怎么在索引中使用

创建索引的时候,text类型如果没指定使用分词器,就会默认内置的分词器,所以使用ik分词器时,创建索引时需要指定。

View Code

把user的数据复制到user2。

再次查询“爱祖国”,得到一条想要的数据,没有多余数据。证明ik分词在索引中生效了。

相关文章:

Elasticsearch使用系列-ES增删查改基本操作+ik分词

一、安装可视化工具KibanaES是一个NoSql数据库应用。和其他数据库一样,我们为了方便操作查看它,需要安装一个可视化工具 Kibana。官网:https://www.elastic.co/cn/downloads/kibana和前面安装ES一样,选中对应的环境下载&#xff0…...

07-PL/SQL基础(if语句,case语句,循环语句)

本章主要内容: 1.PL/SQL的基本构成:declare,begin,exception,end; 2.结构控制语句:IF语句,CASE语句 3.循环结构:loop循环,for loop循环,while loop循环 PL/SQL的基本构成 特点 PL/SQL语言是SQL语言的扩展&#xff…...

信捷 XDH Ethercat A_VELMOVE

本文描述信捷 EthercatA_VELMOVE指令,以设定的速度持续运行 上图中,在M100的上升沿,执行A_VELMOVE指令。A_VELMOVE HD100 D100 M101 K0HD100输入参数起始地址 ,HD118输入参数末尾地址HD100~HD103,双精度浮点数(64位&am…...

【专项训练】分治、回溯

分治、回溯其实就是递归,只是是递归的一个细分,是一种特殊的递归 碰到一个题目,你就找他的重复性 最近重复性:根据重复性怎么构造以及如何分解,包括:分治、回溯 最优重复性:动态规划 本质:找重复性、分解问题、组合子问题的结果 回溯:试错! 50. Pow(x, n) https:…...

Linux上安装配置ZooKeeper

Linux上安装配置ZooKeeper 下载压缩文件 将压缩文件拷贝到指定目录下 执行命令 tar -zxvf [apache-zookeeper-3.5.7-bin.tar.gz] -C [/opt/module/]注:第一个括号里面是压缩文件名称,第二个括号里面是解压到指定的目录 进入到解压后的文件夹当中&am…...

idea leetcode插件无法登录

em 2022某天 leetcode-cn.com 改为了 leetcode.cn so , 如果是版本比较老idea leetcode插件, 就无法使用了. 因为用的旧域名 先说解决办法: 2.0 先把旧版本卸载了 2.1 ideaplugin官网找到本地idea版本下可安装的最高版本的leetcode.cn 假设是 leetcode-editor-6.9.zip 2.2 下…...

VR会议不断升级,为商务会谈打造云端洽谈服务!

VR会议不断升级,为商务会谈打造云端洽谈服务。在商务合作中,对客户需求的理解以及与客户讲解方案都需要建立在一个有效的沟通上,因此VR会议的用武之地就有了,以VR全景技术为核心,通过同屏互动和全景通信技术&#xff0…...

Ubuntu系统开机自动挂载NTFS硬盘【超实用】

由于跑深度学习实验(图像分割)f非常消耗内存,系统盘sda1内存小,配置了一个大容量得出NTFS机械盘,网上招了一些资料如何挂在,但是每次开机得手动挂载一遍才能使用硬盘,非常不方便,还容易造成数据丢失。 Step…...

淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。

淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。 文章目录淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。本文导读1.分库分表2.数据冗余3.异步复制4.读写分离总结本文导读 淘宝的数据库架构设计采用了分布式数据库技术,通过…...

训练自己的GPT2-Chinese模型

文章目录效果抢先看准备工作环境搭建创建虚拟环境训练&预测项目结构模型预测续写训练模型遇到的问题及解决办法显存不足生成的内容一样文末效果抢先看 准备工作 从GitHub上拉去项目到本地,准备已训练好的模型百度网盘:提取码【9dvu】。 gpt2对联训…...

springcloud3 fegin服务超时的配置和日志级别的配置2

一 fegin的概述 1.1 fegin的默认超时时间 默认fegin客户端只等待1秒钟,超过1秒钟,直接会返回错误。 1.2 架构图 1.2.1 说明 1.2.2 启动操作 1.先启动9001,9002 eureka 2.启动9003 服务提供者 3.启动9006消费者 1.3 情况验证 1.3.1 正常默认情…...

华为机试 HJ48 从单向链表中删除指定值的节点

题目链接 描述 输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。 链表的值不能重复。 构造过程,例如输入一行数据为: 6 2 1 2 3 2 5 1 4 5 7 2 2 则第一个参数6表示输入总共6个节点&a…...

华为机试 HJ1 字符串最后一个单词的长度

华为机试 HJ1 字符串最后一个单词的长度 文章目录华为机试 HJ1 字符串最后一个单词的长度一、题目描述二、方法一 Java lastIndexOf() 方法三、方法二 Java split()方法使用Java的lastIndexOf()和split()解决求取方法字符串最后一个单词的长度的问题 一、题目描述 计算字符串最…...

从入门到精通MongoDB数据库系列之二:深入了解MongoDB基本概念文档、集合、数据库、数据类型、MongoDB shell

从入门到精通MongoDB数据库系列之二:深入了解MongoDB基本概念文档、集合、数据库、数据类型、MongoDB shell 一、MongoDB基本概念二、文档三、集合1.动态模式2.命名四、数据库五、MongoDB shell1.运行shell2.连接远程MongoDB数据库3.shell中的基本操作六、数据类型1.基本数据类…...

前端实用技巧,JS压缩、美化、JS混淆加密

作为一名前端开发者,关注JavaScript代码的安全性和隐私性,或者需要对JavaScript代码进行美化、格式化、压缩等操作,帮助你提高开发效率和代码质量,利用一个好的工具非常重要。 如果不想让自己的代码被恶意篡改和盗用,作…...

synchronized轻量级锁优化

synchronized优化轻量级锁 使用场景 如果一个对象虽然有多个线程访问,但多线程访问时间是错开的,也就是没有竞争,那么可以使用轻量级锁优化; 原理 1、每个线程的栈帧中有锁记录 包括:记录锁对象的地址Object refer…...

python 日期转换 日期字符相关

python中时间日期格式化符号: import datetime # Fri, 24 Feb 2023 22:23:18 0000 ret datetime.datetime.strptime("Fri, 24 Feb 2023 22:23:18 0000", "%a, %d %b %Y %H:%M:%S %z").strftime("%Y-%m-%d %H:%M:%S") print(ret)%y …...

使用sm4js进行加密和国密sm4的总结

最近在开发过程中,用到了sm4国密加密,因为之前没有用过,所以就想总结一下。 先说一下怎么安装使用(vue项目) 1、先安装sm4js npm i sm4js在package.json中显示sm4js的版本如下: "dependencies&quo…...

c语言面试题目整理

1、static有什么用途? 在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数 限制变量的作用域,设置变量的存储域。 static 关键字主要有两种作用: 第一,为某特定数据类型或对…...

【嵌入式Bluetooth应用开发笔记】第三篇:初探BLUE ALSA应用开发

概述 BlueALSA(Bluetooth Audio ALSA)是一种将蓝牙音频设备连接到 ALSA 音频系统的桥接程序。它提供了一个蓝牙音频设备的 ALSA 插件,允许使用 ALSA API 直接从蓝牙音频设备读取和写入音频数据,从而使得蓝牙音频设备能够以与其他 ALSA 兼容设备相同的方式工作。 BlueALSA …...

Git子模块克隆总失败?试试这个国内镜像源+分步克隆的保姆级方案

Git子模块克隆失败?国内镜像源分步克隆的终极解决方案 每次看到终端里那个刺眼的"fatal: clone of https://github.com/xxx/yyy.git into submodule path failed"错误提示,我都忍不住想砸键盘。作为一个常年需要从GitHub拉取各种开源项目的开发…...

保姆级教程:手把手教你用ONNX Runtime部署YOLOv8-OBB旋转框检测模型(附完整代码)

从零实现YOLOv8-OBB旋转框检测:ONNX Runtime部署全流程实战 旋转目标检测在遥感图像、文档分析等场景中具有独特优势。YOLOv8-OBB作为Ultralytics推出的旋转框检测版本,其部署过程与传统水平框检测存在显著差异。本文将彻底拆解从模型导出到推理优化的完…...

GEO时代媒体发布新范式:Infoseek如何用工程思维重构内容分发

上周跟一个做技术社区运营的朋友聊天,他吐槽了一件事:公司新功能上线,想发篇技术解读稿,找了家公关公司报价,一篇3000块,承诺发30家媒体,但具体发哪家、什么时候发、效果怎么样,全凭…...

网络异常排查:快速定位域连接问题

问题描述与初步排查网络位置异常通常表现为计算机无法正确识别当前所在的AD域环境,导致访问域资源受限或登录问题。常见症状包括系统托盘显示“无法访问域”、组策略无法应用、DNS解析失败等。检查计算机是否能够ping通域控制器的主机名和IP地址。使用nslookup命令验…...

极速体验OpenClaw:星图平台nanobot镜像10分钟入门

极速体验OpenClaw:星图平台nanobot镜像10分钟入门 1. 为什么选择云端沙盒体验OpenClaw 作为一个长期关注AI自动化工具的技术爱好者,我一直在寻找一个既安全又高效的本地AI助手解决方案。OpenClaw的出现让我眼前一亮,但本地部署的复杂环境配…...

实测避坑:用华为Atlas 300I DUO推理卡跑Qwen1.5-14B,性能对比3090和配置踩坑全记录

华为Atlas 300I DUO推理卡实战评测:Qwen1.5-14B部署全流程与性能深度对比 当国产AI加速卡遇上千亿参数大模型,会碰撞出怎样的火花?最近半年,我陆续测试了市面上主流的7款推理加速设备,这次终于轮到华为Atlas 300I DUO这…...

nuScenes数据集深度解析:从传感器融合到3D目标检测的完整数据流

nuScenes数据集工程化实战:多传感器时空对齐与3D检测数据流优化 在自动驾驶研发领域,数据是算法迭代的基石。当我们谈论nuScenes数据集时,多数讨论停留在基础功能介绍层面,却鲜有从工程实现角度剖析其数据流设计的精妙之处。本文将…...

【花雕学AI】打破AI轻量化极限!MimiClaw:5美元芯片上跑的纯 C 轻量 AI 智能体

提到AI智能体,很多人的第一印象是“需要高性能服务器支撑”“离不开复杂操作系统”“功耗高到不敢长时间运行”——但MimiClaw的出现,彻底打破了这种固有认知。作为全球首个能在仅售5美元的ESP32-S3芯片上流畅运行的纯C编写轻量AI智能体,Mimi…...

Windsurf Cascade报错别慌!手把手教你清理Windows/Mac缓存,亲测有效

Windsurf Cascade报错急救指南:双平台缓存清理与实战避坑 刚写完的代码突然被Cascade error打断?别急着砸键盘。作为每天与Windsurf相伴12小时的深度用户,我经历过数十次这类报错——从最初的暴躁摔鼠标到现在的30秒快速修复,这套…...

XMind快捷键背不会?试试我这套‘肌肉记忆’训练法,用这5个高频组合搞定80%的绘图

XMind快捷键肌肉记忆训练法:5个高频组合提升80%绘图效率 刚接触XMind时,我总在菜单栏里来回翻找功能按钮,每次画完一张思维导图手腕都隐隐发酸。直到发现产品总监小王能在十分钟内完成我半小时的工作量——他的双手几乎没离开过键盘&#xff…...