Elasticsearch-1.es核心概念

Elasticsearch

小知识环节:select * from product where brand like ‘%小米NFC手机%’,前面这段brand 就算加了索引,在使用 like % 的时候也会造成全表扫描

在这里插入图片描述

1、什么是搜索:百度、垂直搜索(站内搜索)
搜索:通过一个关键词或一段描述,得到你想要的(相关度高)结果。


2、如何实现搜索功能?
关系型数据库:性能差、不可靠、结果不准确(相关度低)


3、倒排索引、Lucene和全文检索?
(1)倒排索引

数据结构:
1、包含这个关键词的document list
2、关键词在每个doc中出现的次数 TF term frequency --TF 词频
3、关键词在整个索引中出现的次数 IDF inverse doc frequency
IDF在所有文件中出现额次数,比如上图手机出现次数 ,IDF越高,说明相关度越低,因为都是手机没啥必要
4、关键词在当前doc中出现的次数
5、每个doc的长度,越长相关度越低
6、包含这个关键词的所有doc的平均长度

(2) Lucene:jar包,帮我们创建倒排索引,提供了复杂的API
(3) 如果用Lucene做集群实现搜索,会有那些问题?
①节点一旦宕机,节点数据丢失,后果不堪设想,可用性差。
②自己维护,麻烦(自己创建管理索引),单台节点的承载请求的能力是有限的,需要人工做负载(雨露均沾)。


4、Elasticsearch:分布式、高性能、高可用、可伸缩、易维护 ES≠搜索引擎

(1)分布式的搜索,存储和数据分析引擎:
(2)优点:

①面向开发者友好,屏蔽了Lucene的复杂特性,集群自动发现(cluster discovery)
②自动维护数据在多个节点上的建立
③会帮我做搜索请求的负载均衡
④自动维护冗余副本,保证了部分节点宕机的情况下仍然不会有任何数据丢失
⑤ES基于Lucene提供了很多高级功能:复合查询、聚合分析、基于地理位置等。
⑥对于大公司,可以构建几百台服务器的大型分布式集群,处理PB级别数据;对于小公司,开箱即用,门槛低上手简单。
⑦相遇传统数据库,提供了全文检索,同义词处理(美丽的cls>漂亮的cls),相关度排名。聚合分析以及海量数据的近实时(NTR)处理,这些传统数据库完全做不到。

(3)应用领域:

①百度(全文检索、高亮、搜索推荐)
②各大网站的用户行为日志(用户点击、浏览、收藏、评论)
③BI(Business Intelligence商业智能),数据分析:数据挖掘统计。
④Github:代码托管平台,几千亿行代码
⑤ELK:Elasticsearch(数据存储)、Logstash(日志采集)、Kibana(可视化)


5、ES核心概念:

(1) cluster(集群):每个集群至少包含两个节点.
(2) node:集群中的每个节点,一个节点不代表一台服务器
(3) field:一个数据字段,与index和type一起,可以定位一个doc
(4) document:ES最小的数据单元 Json

{
    "id": "1",
    "name": "小米",
    "price": {
        "标准版": 3999,
        "尊享版": 4999,
        "吴磊签名定制版": 19999
    }
}

Type:逻辑上的数据分类,es 7.x中删除了type的概念
Index:一类相同或者类似的doc,比如一个员工索引,商品索引。

Doc <>row
type<>table
index<>db


Shard分片:
1:一个index包含多个Shard,默认5P,默认每个P分配一个R,P的数量在创建索引的时候设置,如果想修改,需要重建索引。
2:每个Shard都是一个Lucene实例,有完整的创建索引的处理请求能力。
3:ES会自动在nodes上为我们做shard 均衡。
4:一个doc是不可能同时存在于多个PShard中的,但是可以存在于多个RShard中。
5: P和对应的R不能同时存在于同一个节点,所以最低的可用配置是两个节点,互为主备。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值