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

相关推荐
j***49569 分钟前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat
草莓熊Lotso14 分钟前
unordered_map/unordered_set 使用指南:差异、性能与场景选择
java·开发语言·c++·人工智能·经验分享·python·网络协议
20岁30年经验的码农2 小时前
Spring Cloud Gateway 网关技术文档
java
likuolei3 小时前
XML DOM 节点类型
xml·java·服务器
ZHE|张恒5 小时前
Spring Bean 生命周期
java·spring
q***38517 小时前
SpringCloud实战十三:Gateway之 Spring Cloud Gateway 动态路由
java·spring cloud·gateway
小白学大数据7 小时前
Python爬虫伪装策略:如何模拟浏览器正常访问JSP站点
java·开发语言·爬虫·python
程序员西西8 小时前
SpringBoot接口安全:APIKey保护指南
java·spring boot·计算机·程序员·编程·编程开发
summer_west_fish8 小时前
单体VS微服务:架构选择实战指南
java·微服务·架构
v***8578 小时前
Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat
java·ubuntu·centos