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

猜你喜欢

转载自blog.csdn.net/ShirleyZ1007/article/details/136428038
34