elasticsearch使用总结以及使用过程中的坑

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全文检索服务

http://note.youdao.com/noteshare?id=f0e48260fc7f789442ad20c8241c4728&sub=61AB58C4662E466097E6A0B88C46C182

附:开发过程中遇到的坑

第一个就是使用什么办法解析,刚开始找了很多种方式,最后在官网找到了使用jestClient的方法

query拼接起来去执行

第二个就是解析查询出来的数据的时候很坑,本来想自动解析,但是类型转换不过来,因为我这里的实体类使用的java的语法的类型,但是elasticsearch有它自己的类型,所以最后选择了手动解析数据查出来这些数据

第三个坑就是刚开始的时候引入的依赖一定要注意点,经常会出现版本不对,而且我上面提出的三个依赖全部引入,springboot才能正确执行没有bug   

具体情况请查看另外一篇博客 https://blog.csdn.net/weixin_37970049/article/details/82457049

猜你喜欢

转载自blog.csdn.net/weixin_37970049/article/details/80989617