Elasticsearch快速入门

1.什么是Elasticsearch

ES是一个基于Restful web接口开源分布式搜索引擎,同时ES还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据

2.Elasticsearch的用途

1.日志分析

复杂的业务场景通常会产生繁杂多样的日志,如MySQL Log等,往往很难从繁杂的日志中获取价值,却要承担其存储的成本。Elasticsearch能够借助Beats、Logstash等快速对接各种常见的数据源,并通过集成的Kibana高效地完成日志的可视化分析,让日志产生价值。

2.搜索服务

商品搜索,APP 搜索,站内搜索,视频搜索等     

3.数据分析

电商网站,最近7天手机这种商品销量排名前十的商家有哪些

新闻网站,最近一个月访问量排名前3的新闻板块是哪些

订单数据分析、用户画像等

4.后端存储

保存一些地图信息等,es里有个geo-point的类型,这个是存放地理坐标点的信息也就是经纬度的信息,然后通过点位查询距离范围内也就是一个圆内的所有数据

3.Elasticsearch的结构

集群(cluster)
一个Elasticsearch集群由一个或多个ES节点组成

节点(node)
一个节点是集群中的一个服务器,用来存储数据并参与集群的索引和搜索。 

索引(index)
一个索引是一个拥有一些相似特征的文档的集合(相当于关系型数据库中的一个数据库)

类型(type)
一个类型通常是一个索引的一个逻辑分类或分区,例如用户类型、博客类型等。ES7已经不支持在一个索引下创建多个类型,并且类型概念已经在后续版本中删除,这个主要是防止与Mysql的type混淆

文档(document)
一个文档是可以被索引的基本信息单元(相当于关系型数据库中的一行数据)

字段(field)
组成文档的最小单位。相当于关系型数据库中的一列数据。

映射(mapping)
用来定义一个文档以及其所包含的字段如何被存储和索引,例如在mapping中定义字段的名称和类型,以及所使用的分词器。

4.Elasticsearch为什么检索很快

主要原因是对检索的字段维护了一个倒排索引

DocIdDoc
1全文搜索引擎Elasticsearch
2分布式全文搜索引擎Elasticsearch
3分布式文档数据库Elasticsearch
4高性能数据库Elasticsearch

将文档进行分词维护成倒排索引

WordIdWordDocIds
1全文1, 2
2搜索1, 2
3引擎1, 2
4Elasticsearch1, 2, 3, 4
5分布式2, 3
6文档3
7数据库3, 4
8高性能4

分词之后将word按照字典顺序排序,这样就能够以二分查找的方式找到目标值,时间复杂度为logN(访问磁盘次数),但是这实际上和MySQL的B+树的查询时间复杂度是一样的

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值