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 多字段匹配

相关推荐
真实的菜8 分钟前
Java NIO 面试全解析:9大核心考点与深度剖析
java·面试·nio
飞翔的佩奇23 分钟前
Java项目:基于SSM框架实现的劳务外包管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·mysql·spring·毕业设计·ssm·毕业论文·劳务外包
luckywuxn38 分钟前
EurekaServer 工作原理
java·eureka
壹米饭41 分钟前
Java程序员学Python学习笔记一:学习python的动机与思考
java·后端·python
java金融43 分钟前
Java 锁升级机制详解
java
Young55661 小时前
还不了解工作流吗(基础篇)?
java·workflow·工作流引擎
让我上个超影吧1 小时前
黑马点评【缓存】
java·redis·缓存
ajassi20001 小时前
开源 java android app 开发(十一)调试、发布
android·java·linux·开源
YuTaoShao1 小时前
Java八股文——MySQL「存储引擎篇」
java·开发语言·mysql
crud1 小时前
Java 中的 synchronized 与 Lock:深度对比、使用场景及高级用法
java