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 默认集群名

yml 复制代码
cluster.name: nowcoder

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

yml 复制代码
path.data: E:\Work\data\elasticsearch-6.4.3\data

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

yml 复制代码
path.logs: E:\Work\data\elasticsearch-6.4.3\logs

配置系统环境变量

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

中文分词插件

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

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

下载版本要和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中以管理员方式运行

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

命令行操作es

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

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

看服务器有多少个索引

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

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

返回的索引为json格式

删除索引:DELETE请求

Postman操作es

查询索引

新建test索引

删除test索引

给索引中插入一行数据

localhost:9200/test/_doc/1

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

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

1是id

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

将数据写成json格式

结果:

查test索引下id为1的数据

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

es搜索

数据1

数据2

数据3

从test索引中搜索信息

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

在test搜索 title 中包含 互联网 的数据
在test搜索 content 中包含 实习运营 的数据

进行了分词的搜索

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

复杂搜索

复杂的搜索,在body中写

multi_match 多字段匹配

相关推荐
C_V_Better17 分钟前
Java Spring Boot 控制器中处理用户数据详解
java·开发语言·spring boot·后端·spring
胡子洲22 分钟前
Spring Boot 应用中实现基本的 SSE 功能
java·spring boot·后端
t1987512824 分钟前
基于Qt的OSG三维建模
java·开发语言
SoFlu软件机器人35 分钟前
Java 框架配置自动化:告别冗长的 XML 与 YAML 文件
xml·java·自动化
贰拾wan1 小时前
【Java-EE进阶】SpringBoot针对某个IP限流问题
java·spring boot·后端·idea
青云交1 小时前
【金仓数据库征文】-- 金仓数据库:技术实践天花板级深度解析,手把手教你玩转企业级应用
java·性能调优·集群部署·金仓数据库 2025 征文·数据库平替用金仓·金仓数据库·语法兼容
Paran-ia1 小时前
【2025版】Spring Boot面试题
java·spring boot·后端
LUCIAZZZ1 小时前
JVM之虚拟机运行
java·jvm·spring·操作系统·springboot
hello_ejb32 小时前
聊聊JetCache的缓存构建
java·前端·缓存
cainiao0806052 小时前
Java 大视界——Java 大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
java·大数据·开发语言