【SpringBoot搜索】1.ElasticSearch 简介和安装

简介

Elasticsearch是分布式全文搜索引擎,拥有分片和倒排可以高效率查询数据,数据结构是面向文档的JSON格式数据库。

Elasticsearch与MySQL数据库数据结构对比:

1.索引(Index) 对应MySQL的数据库

2.类型(type) 对应MySQL的表

3.文档(Docments) 对应MySQL的行

4.字段(Fields) 对应MySQL的列

应用场景:全文搜索、日志采集收集。

Docker安装ES

创建ES挂载文件

mkdir -p /mnt/dockerdata/elk/es/{config,data,plugins}

编辑elasticsearch.yml

echo "http.host: 0.0.0.0" >> /mnt/dockerdata/elk/es/config/elasticsearch.yml

文件授权

chmod -R 777 /mnt/dockerdata/elk/es/

安装ES

docker run --name elasticsearch  -p 9200:9200  -p 9300:9300 \
 -e "discovery.type=single-node" \
 -e ES_JAVA_OPTS="-Xms84m -Xmx512m" \
 -v /mnt/dockerdata/elk/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
 -v /mnt/dockerdata/elk/es/data:/usr/share/elasticsearch/data \
 -v /mnt/dockerdata/elk/es/plugins:/usr/share/elasticsearch/plugins \
 -d elasticsearch:7.4.2

安装成功后,访问地址:

image-20220605221532336

正向索引和倒排索引

传统数据库都是使用的正向索引,如MySQL:在数据检索时需要根据关键字从每一个字段中获取,最后查询到结构返回,

搜索引擎通常采用都是倒排索引,ElasticSearch底层也是倒排索引:根据关键字提前建立好索引,在查询的时候直接查索引,包含关键字的统统返回。

如下图:

数据内容如下:

序号标题文档内容
1SpringSpring Boot后端技术
2JavaJava后端技术
3JavaScript前端技术

搜索Java,根据关键字查询,最后返回结果如下(缺点,在查询的时候去匹配,如果内容多效率会比较慢)

序号标题文档内容
1SpringSpring Boot后端技术
2JavaJava后端技术
3JavaScript前端技术

使用倒排会提前建立好关键字索引(搜索查询会快,但是建立索引会比较麻烦)

单词ID单词建立的文档id
1Spring1
2Java2、3
3JavaScript3
4后端1、2
5技术1、2、3

9200端口和9300端口

9200:提供Http,供restful访问、JS、Java集成调用。

9300:提供TCP,供内部协议之间通讯、Java集成调用。

使用restful来操作ES

直接通过ES 地址调用接口如下(下篇解释Kibana可视化工具来操作ES)

新建索引:

PUT http://192.168.126.156:9200/索引名(使用Http工具发送Put请求)

查询索引:

GET http://192.168.126.156:9200/索引名

image-20220606125228456

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

terrybg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值