ElasticSearch
狂神视频 https://www.bilibili.com/video/BV17a4y1x7zq
为什么要用ElasticSearch
数据库的like模糊查询不是照样可以进行搜索吗?
是的,确实可以进行搜索,但是如果是大数据的话,效率会非常的低,即使加上索引也达不到大数据的要求
Lucene创始人Doug Cutting
ElasticSearch是基于Lucene做了一些封装和增强
ElasticSearch概述
ElasticSearch简称es
ElasticSearch和solr、Lucene的区别
ElasticSearch和solr的区别
ElasticSearch启动
D:\software\elasticsearch\elasticsearch-7.11.1\bin\ElasticSearch.bat开启
在浏览器打开ElasticSearch Head插件即可
注意存在跨域问题
D:\software\elasticsearch\elasticsearch-7.11.1\config\ElasticSearch.yml加上
http.cors.enabled: true
http.cors.allow-origin: "*"
即可
ElasticSearch的索引就是数据库
右边的文档是数据
了解elk
ES概述
IK分词器
没用kibana测试
自己需要的词要是被拆开就需要自己加入到字典中
IK分词器增加自己的配置
在IKAnalyzer.cfg.xml里加入自己创建的配置,并重启ES即可
Rest风格说明
测试
结果
创建一个什么都没有的索引
可以通过get请求获得具体的信息
默认类型创建索引
默认类型_doc
通过get的_cat命令可以查看es当前的很多信息
post请求的_update进行更新
删除索引使用delete请求
可以删除文档或索引
ES推荐使用RESTFUL风格
文档的基本操作
1.添加数据 put
添加三条文档
2.获取数据 get
3.更新数据 put
4.post _update,现在推荐使用这个更新数据,自由度更高
简单的查询
_seach可以进行查询而且是模糊查询
复杂查询
_score以后有多个查询结果,匹配度越高,_score越高
精确匹配
指定结果查询
排序
分页
布尔值查询
must命令 相当于and都要匹配
should命令相当于or
must_no命令相当于not
filter相当于过滤器
匹配多个条件
精确查询
term查询是直接通过倒排索引指定的词条进程精确的查找的
关于分词:
term:直接查询精确的
match:会使用分词解析!(先分析文档,然后再通过分析的文档进行查询)
两个类型 text keyword
多个值匹配的精确查询