Elasticsearch应用场景(三)

一、搜索引擎

        ES最擅长的是充当搜索引擎,在这类场景中较典型的应用领域是垂直搜索,如电商搜索、地图搜索、新闻搜索等各类站内搜索。

        创建索引时,业务系统模块把数据存储到数据库中,第三方数据同步模块(如Canal)负责将数据库中的数据按照业务需求同步到ES中。

        搜索时,前端应用先向搜索模块发起搜索请求,然后搜索模块组织搜索DSL向ES发起请求,ES响应搜索模块的请求开始搜索,并将搜索到的商品信息(如名称、价格、地理位置等)进行封装,然后把数据传送给搜索模块,进而数据再由搜索模块传递到前端进行展现,如下图所示:

二、 推荐系统

        ES在高版本(7.0及以上版本)中引入了高维向量的数据类型。可以把推荐模型算法计算的商品和用户向量存储到ES索引中,当实时请求时,加载用户向量并使用ES的Script Score进行查询,使每个文档最终的排序分值等于当前用户向量与当前文档向量的相似度。为同时满足实时向量计算和实时数据过滤的需求,可以在Script Score查询中添加filter(即过滤条件,如库存、上下架状态等),期架构图如下:

三、二级索引

        在有些场景中,部分数据是强事务性的,或者说这些数据需要关联多张表才可以获取到,这种数据不适合在ES中作为最终数据进行呈现,最好将它们存储在RDBMS中。

        如果需要使用任意组合字段进行查询,或者按照某些文本字段进行搜索且这些字段是弱事务性的,那么可以考虑使用ES作为二级索引,如下图所示:

        数据存储在RDBMS中,建立ES索引时其中仅包含查询字段,RDBMS中的主键在ES中仅存储不用建立索引。这些主键存在于RDBMS的索引中,叫作一级索引;ES中的查询字段构成的索引叫作二级索引。查询时客户端可以把查询请求分发到ES中,ES从索引中查询并返回符合条件的记录主键,客户端再根据返回的记录主键请求RDBMS得到实时数据。 

四、日志分析

        ES具有很强的查询能力,支持任意字段的各种组合查询,同时它又具有很强大的数据统计和分析能力,因此也可以当作数据分析引擎。

        ES官方提供的ELK(Elasticsearch+Logstash+Kibana)全家桶可以完成日志采集、索引创建再到可视化的数据分析等工作,使用户可以0代码完成搭建工作。

        ES支持的日志分析类型可以是多种多样的,生产中的用户行为日志、Web容器日志、接口调用日志及数据库日志等都可以通过ELK进行分析。

        ES官网提供的ELK-Stack架构层级,其中的Beats是新加入的成员,定位为轻量型的单一功能数据采集器。

ELK-Stack架构层级如下: 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆天至尊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值