ElasticSearch下文及以后简称es
es是什么,能做哪些事情,有哪些特点?
es是搜索和分析引擎,开源、分布式,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据等。Elasticsearch 在 Apache Lucene 的基础上开发而成,因 REST 风格 API、分布式特性、速度和可扩展性而闻名,有以下用途:
- 应用程序搜索
- 网站搜索
- 企业搜索
- 日志处理和分析
- 基础设施指标和容器监测
- 应用程序性能监测
- 地理空间数据分析和可视化
- 安全分析
- 业务分析
基本概念:
1,Index(索引)
作动词时,可理解为插入,相当于mysql的insert
做名词时,相当于mysql的数据库
2,Type类型
相当于mysql中的table,在Index(索引)中,可以定义一个或多个类型
3,Document(文档)
相当于mysql中,table的行数据。是保存在某个索引(Index)下,某种类型(Type)的一个数据(Document),json格式
4,属性
相当于table表的字段
老师讲课课件:
ES为什么检索高效?
得益于倒排索引机制,以“红海行动”为例说说这个机制的原理:
将红海行动存一条记录,假如命名这条为1
红海行动进行分词,比如分为红海和行动两个词,将这俩词再维护到倒排索引表中,这个索引表就会这样记录
红海 1
行动 1
上面的意思是红海这个词在记录1中存在,行动这个词在记录1中存在
同理,如果存探索红海行动为记录2,倒排索引表就是这样
探索 2
红海 2
行动 2
合起来就是
探索 2
红海 1,2
行动 1,2
类推红海特工行动3就是
探索 2
红海 1,2,3
行动 1,2,3
特工 3
来检索时,首先分词,比如特工行动这4个字,特工检索结果是3,行动检索结果是1,2,3,所以检索返回的结果就是1,2,3对应的数据:
红海行动
探索红海行动
红海特工行动
返回这3条记录会有相关性得分,本例中,3记录出现了两次,1和2记录都是出现两次,那就是3记录“红海特工行动”得分最高
老师讲课课件: