简单了解ElasticSearch(ES)

参考:
B站《一天学会ES全文搜索引擎查询 Elasticsearch简单入门教程》


引言

1.在海量数据中执行搜索功能时,如果使用MySQL模糊查询,效率太低。(模糊查询使用通配符“%”开头,会导致mysql无法使用索引)
2.如果关键字输入的不准确,一样可以搜索到想要的数据。(如在京东搜索“壳手机”,搜索结果仍是“手机壳”)
3.将搜索关键字,以红色的字体展示。(通过关键字搜索出来的内容,会标红关键字)

ES的介绍

ES是一个使用Java语言并且基于Lucene编写的搜索引擎框架,他提供了分布式的全文搜索功能,提供了一个统一的基于RESTfu风格的WEB接口,官方客户端也对多种语言都提供了相应的API。

补充
1、Lucene:Lucene本身就是一个搜索引擎的底层。ES封装了Lucene。(Lucene功能不全,用户使用体验不佳)
2、分布式:ES主要是为了突出他的横向扩展能力。(ES集群扩展只需要修改几个配置文件,方便)
3、全文检索:将一段词语进行分词,并且将分出的单个词语统一的放到一个分词库中,在搜索时,根据关键字去分词库中检索之后,找到匹配的内容。(倒排索引)
4、RESTful风格的WEB接口:操作ES很简单,只需要发送一个HTTP请求,并且根据请求方式的不同,携带参数的同,执行相应的功能。

ES和Slor

1、Solr在查询死数据(不会改变的数据)时,速度相对ES更快一些。但是数据如果是实时改变的,Saolr的查询速度会降低很多,ES的查询效率基本没有变化。
2、Solr搭建基于需要依赖Zookesper来帮助管理。ES本身就支持集群的搭建,不需要第三方的介入。
3、Slor国外用的多,国内用的少。在ES出现之后,国内ES的社区(遇到问题可以寻找解决方案)火爆程度直线上升,ES的文档非常健全。
4、ES对现在云计算和大数据支持的特别好。

倒排索引

在这里插入图片描述

工作过程:
1、query:根据输入的关键词,去分词库中检索内容。(如关键词“你好”,可以分词为“你”和“好”,找到检索的id为1、2、3)
2、fetch:根据分词库中检索的id,直接获取指定数据。(根据id找到内容)
3、把结果返回给客户端。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值