ElasticSearch简单搭建使用

开球选题

  作为一名初来乍到的小白,当我听到让我开球,一开始我是拒绝的.如果用一张表情包形容我的心情

在这里插入图片描述

  平时都是大佬开球,现在轮到我开球,一开始我是陷入蒙蔽模式.还好我平时饱受大佬熏陶,大佬的话我都是记下来的.

在这里插入图片描述

回顾这段时间接触的知识点,发现所学如下,知道怎么用.但难有深度.与其班门弄斧,不如整点有意思的内容
restful设接口风格–》mock接口文档/区分接口动作
java8 lambda接口表达式–》集合转换map/list/set/过滤/排序
数据库设计/UNSIGNED 正整数 防止数据为负数/联合索引创建/
异步任务创建FutureTask --》执行成功返回true(java.util.concurrent包中ExecutorService)
定时器任务升级@Schedule --》升级到ElasticJob任务–》控制台控制管理–》定时任务调度平台goods的
异步消息适用@Rocket–>类似模板消息(RocketMQProduce 生产者+@RocketMQMessageListener消费者)–》mq队列消息监控平台
权限控制白名单–》H5回调地址 gateway网关服务层
springcloud–》@fegin、服务注册中心eureka、k8s服务代理、skywalking链路追踪、springboot
maven版本控制、wiki知识分享、hodor工单提交、appllo动态配置
jira bug修复平台、冒烟测试、jekins版本发布
linux指令、日志分析搜索、mac、idea、git适用、分支管理
诊所业务

在这里插入图片描述
正在为开球内容发愁之际,孤独的在知识的海洋中寻找曙光时,甚至开始想讲点 关注搬砖的身体健康、健康投入重要性之际,发现公司内推岗位有个搜索工程师的岗位,要求就是关于ElasticSearch或者solar,solar之间有听过,2者相互比较之下我选择了ElasticSearch.

Why?

  1. 谷歌搜索、丁香园论坛搜索、甚至在我们的丁香健康帮助文档搜索是否运营了该技术–》原理是什么?
  2. 面试时被问到关于模糊查询的一个知识点,全模糊查询时%放前面,索引无法生效,查询效率慢–>如何解决?

发展史
多年前,一个叫做Shay Banon的刚结婚不久的失业开发者,由于妻子要去伦敦学习厨师,他便跟着也去了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的Lucene。
直接基于Lucene工作会比较困难,所以Shay开始抽象Lucene代码以便Java程序员可以在应用中添加搜索功能。他发布了他的第一个开源项目,叫做“Compass”。
后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。然后他决定重写Compass库使其成为一个独立的服务叫做Elasticsearch。
第一个公开版本出现在2010年2月,在那之后Elasticsearch已经成为Github上最受欢迎的项目之一,代码贡献者超过300人。一家主营Elasticsearch的公司就此成立,他们一边提供商业支持一边开发新功能,不过Elasticsearch将永远开源且对所有人可用。
Shay的妻子依旧等待着她的食谱搜索……

在这里插入图片描述

What?

在这里插入图片描述
Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。
Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。

在这里插入图片描述

就是一个jar包,里面包含了封装好的各种建立倒排索引,以及进行搜索的代码,包括各种算法。

实质上:Lucene是单机的模式,如果你的数据量超过了一台物理机的容量,你需要扩容,将数据拆分成2份放在不同的集群,这个就是典型的分布式计算了。需要拷贝容错,机器宕机,数据一致性等复杂的场景,这个实现就比较复杂了。

ES解决了这些问题
1、自动维护数据的分布到多个节点的索引的建立,还有搜索请求分布到多个节点的执行
2、自动维护数据的冗余副本,保证了一旦机器宕机,不会丢失数据
3、封装了更多高级的功能,例如聚合分析的功能,基于地理位置的搜索

ElasticSearch的功能

分布式的搜索引擎和数据分析引擎
搜索:网站的站内搜索,IT系统的检索
数据分析:电商网站,统计销售排名前10的商家

全文检索,结构化检索,数据分析
全文检索:我想搜索商品名称包含某个关键字的商品
结构化检索:我想搜索商品分类为日化用品的商品都有哪些
数据分析:我们分析每一个商品分类下有多少个商品

对海量数据进行近实时的处理
分布式:ES自动可以将海量数据分散到多台服务器上去存储和检索
海联数据的处理:分布式以后,就可以采用大量的服务器去存储和检索数据,自然而然就可以实现海量数据的处理了
近实时:检索数据要花费1小时(这就不要近实时,离线批处理,batch-processing);在秒级别对数据进行搜索和分析

ElasticSearch的应用场景
维基百科
The Guardian(国外新闻网站)
Stack Overflow(国外的程序异常讨论论坛)
GitHub(开源代码管理)
电商网站
日志数据分析
商品价格监控网站
BI系统
站内搜索

How ?
举个简单的例子:(碟中谍6:全面瓦解),我们想搜索一下全面瓦解这个电视剧,可是在输入的过程,不小心输入了”全瓦解”,我们看看百度这个返回了什么,百度返回的结果确实是我想要找到的内容,现在我们介绍一下全文检索和倒排索引是什么

在这里插入图片描述
我们看看下面这个图,假如我们有很多数据”全面瓦解电影,全面瓦解海报,全面瓦解评论,全面瓦解文章”等等信息,从数据到构建倒排索引的过程我们图中标记为“1”,通俗一点讲就是,倒排索引就是讲数据中的词拆分构建一个大表,将关键字拆出来,后面带上这个文章的documentid号,例如中间这个就是倒排索引了。

在这里插入图片描述全文检索就比较好理解的,就是当我们输入“全瓦解”,会被拆分成”全”,“瓦解”2个此,用2个词去倒排索引里面去检索数据,检索到的数据返回。整个过程就叫做全文检索

如果这个用数据库的思维来做的话,假如一共100W的记录,按照之前的思路就是扫描100W次,而且每次扫描,都需要匹配那个文本所有的字符,确认是否包含搜索的关键词,而且还不能将搜索词拆解来进行检索
如果是利用倒排索引的话,假设还是100W,拆分出来的词语,假设有1000W个词语,那么在倒排索引中,就有1000W行。我们可能不需要检索1000W词,有可能检索1次,就能找到我们需要的数据,也有可能是100W次,也有可能是1000W次

在这里插入图片描述

百度和谷歌搜索之间差别--》谷歌更准确一点

实际操作:https://es.xiaoleilu.com/010_Intro/05_What_is_it.html(官方中文版文档)
安装简单、运行方便>https://es.xiaoleilu.com/010_Intro/10_Installing_ES.html

在这里插入图片描述

基本语法–》基于HTTP协议,以JSON为数据交互格式的RESTful API

在这里插入图片描述
curl太麻烦了 --》转为postman实例 —》以官网示例为准https://es.xiaoleilu.com/010_Intro/25_Tutorial_Indexing.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值