34 Elasticsearch入门

Elasticsearch入门

Elasticsearch简介

  • 一个分布式的、Restful风格的搜索引擎。

    分布式:多台服务器集群部署

    Restful风格:设计风格,规定了不同种类请求格式,是对请求的标准的一种描述

  • 支持对各种类型的数据的检索。结构化 非结构化 地理位置 等

  • 搜索速度快,可以提供实时的搜索服务。 先分词,然后去索引查

  • 便于水平扩展,每秒可以处理PB级海量数据。

    集群式服务器,便于加服务器(水平扩展),也能同时处理很多数据

Elasticsearch术语

es可以看作特殊的数据库

存储数据相关术语:Elasticsearch与MySql对应关系如下

  • 索引 — 数据库,6.0之后对应表

  • 类型 — 表,7.0开始类型废弃

  • 文档 — 行

  • 字段 — 列(属性)

  • 集群:一台或多台服务器组合在一起,提高整体数据处理能力

  • 节点:集群中的一台服务器

  • 分片:对索引进一步划分,一个索引在存时,可以拆分成多个分片进行存储,以提高并发处理能力

  • 副本:对分片的备份,一个分片可有多个副本,提高可用性

安装elasticsearch服务器

官网 https://www.elastic.co

https://www.elastic.co/cn/downloads/elasticsearch

不下载最新的版本,因为springboot中父pom用的是6.4.3,已经过测试,是兼容的。用7.0往上不匹配

配置elasticsearch.yml 文件

cluster.name: my-application 默认集群名

cluster.name: nowcoder

path.data: /path/to/data es存数据的默认路径

path.data: E:\Work\data\elasticsearch-6.4.3\data

path.logs: /path/to/logs es存日志的默认路径

path.logs: E:\Work\data\elasticsearch-6.4.3\logs

配置系统环境变量

D:\LenovoSoftstore\Install\elasticsearch-6.4.3\bin

中文分词插件

es默认支持英文分词,按空格分就可

而中文分词需要去第三方下载插件:去GitHub上搜索elasticsearch ik

image-20240225213041631

下载版本要和elasticsearch的版本一致

安装时,先在elasticsearch下plugins文件中新建ik文件夹,再将压缩文件解压到ik中

elasticsearch ik中内置了很多词典用于分词

若希望添加网络新词到词典中,在config文件夹中找IKAnalyzer.cfg.xml

将config中自定义的词典声明到IKAnalyzer.cfg.xml即可

模拟客户端Postman

https://www.getpostman.com

通过命令行cmd操作es的命令太长了,不容易记

postman可以模拟web客户端,发布http请求

用postman给es发搜索请求,更简单

非必须,为了操作简便

使用es

在bin中以管理员方式运行

image-20240225215253138

提示绑定9200端口(es默认端口)时,即为启动成功

image-20240225215401466

命令行操作es

查看集群健康状况:green为健康

image-20240225220844200

查看节点详情(查询是GET请求)

image-20240225220945707

看服务器有多少个索引

image-20240225221058085

yellow相当于警告,能用但不是最健康状态

image-20240225221330425

创建索引:PUT请求 指定服务器\索引名

返回的索引为json格式

image-20240225221222473

删除索引:DELETE请求

image-20240225223344192

Postman操作es

查询索引

image-20240225223846812

新建test索引

image-20240225223940294

删除test索引

image-20240225224058499

给索引中插入一行数据

image-20240225225908446

localhost:9200/test/_doc/1

test是指定索引。如果指定的索引不存在,会自动建索引,插数据

_doc为固定参数位。因为废弃了文档类型,类型位就用_doc占位

1是id

image-20240225225851824

数据在请求中体携带,并以json形式传数据

将数据写成json格式

结果:

image-20240225230025511

查test索引下id为1的数据

image-20240225230645827

删除test索引下id为1的数据

image-20240225230518981

es搜索

数据1

image-20240225230931515

数据2

image-20240225231317367

数据3

image-20240225231201773

从test索引中搜索信息

?开始为搜索条件,不加搜索条件表示搜test索引中的全部数据

在test搜索 title 中包含 互联网 的数据

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在test搜索 content 中包含 实习运营 的数据

进行了分词的搜索

第一条数据匹配运营,第二条数据匹配实习

image-20240225231914884

复杂搜索

复杂的搜索,在body中写

multi_match 多字段匹配

image-20240225232347964

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

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

相关文章

【学习心得】AES对称加密入门

AES,全称Advanced Encryption Standard(高级加密标准),是一种广泛采用的对称密钥分组密码算法。 一、对称加密(Symmetric Cryptography) (1)定义 对称加密使用相同的密钥来加密和解…

在ubuntu上安装hadoop完分布式

准备工作 Xshell安装包 Xftp7安装包 虚拟机安装包 Ubuntu镜像源文件 Hadoop包 Java包 一、安装虚拟机 创建ubuntu系统 完成之后会弹出一个新的窗口 跑完之后会重启一下 按住首先用ctrlaltf3进入命令界面,输入root,密码登录管理员账号 按Esc 然后输入 …

代码随想录第45天|● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

文章目录 ● 198.打家劫舍思路代码1.dp数组两个变量 ● 213.打家劫舍II思路:代码 ● 337.打家劫舍III思路代码: ● 198.打家劫舍 思路 代码 1.dp数组 class Solution {public int rob(int[] nums) {if(nums.length1)return nums[0];int[] dpnew int[nu…

达梦运维工具-DEM搭建

运维监控工具-DEM 前言 根据达梦官网文档整理 一、工具介绍 DM企业管理器(DM Enterprise Manager,简称为DEM)提供一个通过Web 界面来监控、管理并维护DM数据库的集中式管理平台。数据库管理员可通过任意Web应用登录DEM,从而对…

Android 多桌面图标启动, 爬坑点击打开不同页面

备注 : MainActivity 正常带界面的UI MainActivityBt 和 MainActivityUsb 是透明的,即 android:theme"style/TranslucentTheme" ###场景1:只有MainActivity 设置成:android:launchMode"singleTask" 点击顺序&#xff1…

2024最新AI系统ChatGPT网站源码, AI绘画系统

一、前言说明 R5Ai创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GP…

代码随想录算法训练营第46天| Leetcode 139.单词拆分、卡码网 56. 携带矿石资源(附带多重背包的基本解法和优化)

文章目录 Leetcode 139.单词拆分卡码网 56. 携带矿石资源方法一: 分组转化成01背包方法二: 转化成01背包完全背包(基于方法一的小优化)方法三: 二进制优化(优化了方法一的分组方式) Leetcode 13…

Pygame教程01:初识pygame游戏模块

Pygame是一个用于创建基本的2D游戏和图形应用程序。它提供了一套丰富的工具,让开发者能够轻松地创建游戏和其他图形应用程序。Pygame 支持许多功能,包括图像和声音处理、事件处理、碰撞检测、字体渲染等。 Pygame 是在 SDL(Simple DirectMed…

Effective objective-c-- 内存管理

Effective objective-c-- 内存管理 前言理解引用计数引用计数工作原理属性存取方法中的内存管理自动释放池保留环要点 以ARC简化引用计数使用ARC时必须遵循的方法和命名规则变量的内存管理语义ARC如何清理实例变量覆写内存管理方法要点 在dealloc方法中只释放引用并解除监听要点…

智能汽车加速车规级存储应用DS2431P+TR 汽车级EEPROM 存储器IC

DS2431PT&R是一款1024位1-Wire EEPROM芯片,由四页存储区组成,每页256位。数据先被写入一个8字节暂存器中,经校验后复制到EEPROM存储器。该器件的特点是,四页存储区相互独立,可以单独进行写保护或进入EPROM仿真模式…

实践航拍小目标检测,基于轻量级YOLOv7tiny开发构建无人机航拍场景下的小目标检测识别分析系统

关于无人机相关的场景在我们之前的博文也有一些比较早期的实践,感兴趣的话可以自行移步阅读即可: 《deepLabV3Plus实现无人机航拍目标分割识别系统》 《基于目标检测的无人机航拍场景下小目标检测实践》 《助力环保河道水质监测,基于yolov…

C语言冒泡排序(高级版)

目录: 冒泡排序的原理 主函数 "冒泡排序函数" 比较函数 交换函数 最终输出 完整代码 冒泡排序的原理: 冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右…