赞
踩
who:谁发明了它
就是下面这位大哥 Shay Banon
What:elasticsearch是什么
elasticsearch开源并且免费(很关键)的全文检索和分析的引擎,可以快速存储,搜索数据,还可以科学的分析数据
然额,elasticsearch本质上就是一个分布式的数据库,允许多台服务器协同工作,每台服务器可以运行多个elasticsearch实例,单个的elasticsearch实例就是一个节点 node ,一组节点构成cluster集群
隐藏luence 复杂性,提供简单易用的restful api接口、java api接口(还有其他语言的api接口)
why:我们为什么使用它
首先咱们了解一下数据库的搜索场景
1、比方说,每条记录的指定字段的文本,可能会很长,比如说“商品描述”字段的长度,有长达数千个,甚至数万个字符,这个时候,每次都要对每条记录的所有文本进行扫描,来判断说,你包不包含我指定的这个关键词(比如说“牙膏”)
2、还不能将搜索词拆分开来,尽可能去搜索更多的符合你的期望的结果,比如输入“生化机”,就搜索不出来“生化危机”
再来看看咱们的elasticsearch
下面的图我找的 ,讲的很清晰
具体说说elasticsearch的好处
① 分词搜索,全文检索,不会在出现数据库的对文本一个一个扫描,它直接就通过节点的索引进行搜
② 自己维护冗余备份数据,某些机器宕机了,不会丢失数据
③ 当然还有强大搜索功能,聚合分析的功能
④ 结合kibana 还能进行建立图表,给各位展示科学化的业务数据,更好的分析业务
⑤ 免费的不要钱而且听说永久免费!
⑥提供了java api接口 java是世界上最好的语言
⑦ 提供了Restful api接口 大家都可以访问
⑧请求和应答全是json的数据格式
where:elasticsearch使用场景
数字、文本、地理位置、结构化、非结构化。所有的数据类型都欢迎。
应用搜索、安全分析或是日志分析只是全球众多公司利用 Elasticsearch 解决各种挑战的冰山一角
项目的搜索功能,比如说搜索课后作业,,比如课程资源 等,
日志的分析基本上是ELK的一套做一些图表等
更多的使用场景可以看看这个博客
https://www.jianshu.com/p/ed80664141a5
when:什么时候使用它
对于搜索比较频繁的应用,我个人觉得对于有很多很多的数据的时候就可以用它,比如资源搜索
然后还可以为咱们做日志分析
下面的链接是我在有道云上笔记
Linux 部署 配置elasticsearchl全文检索服务
附:开发过程中遇到的坑
第一个就是使用什么办法解析,刚开始找了很多种方式,最后在官网找到了使用jestClient的方法
query拼接起来去执行
第二个就是解析查询出来的数据的时候很坑,本来想自动解析,但是类型转换不过来,因为我这里的实体类使用的java的语法的类型,但是elasticsearch有它自己的类型,所以最后选择了手动解析数据查出来这些数据
第三个坑就是刚开始的时候引入的依赖一定要注意点,经常会出现版本不对,而且我上面提出的三个依赖全部引入,springboot才能正确执行没有bug
具体情况请查看另外一篇博客 https://blog.csdn.net/weixin_37970049/article/details/82457049
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。