Elasticsearch大咖说 | Elasticsearch 在手机垂直搜索业务的应用创新

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Elasticsearch作为一个分布式、高扩展、实时的搜索与数据分析引擎,因其轻量级、稳定、可靠、快速等特性受到越来越多开发者的青睐,在搜索、日志分析、运维监控和安全分析等领域得到广泛应用。阿里云Elasticsearch技术团队,深度采访了来自阿里巴巴、vivo、携程、eBay等知名公司的技术专家,推出了Elasticsearch大咖说系列专题,为广大开发者提供技术入门与进阶的经验分享,以及最佳应用实践参考。

Elasticsearch 作为一个分布式、高扩展、实时的搜索与数据分析引擎,因其轻量级、稳定、可靠、快速等特性受到越来越多开发者的青睐,在搜索、日志分析、运维监控和安全分析等领域得到广泛应用。阿里云 Elasticsearch 技术团队,深度采访了来自阿里巴巴、vivo、携程、eBay 等知名公司的技术专家,推出了 Elasticsearch 大咖说系列专题,为广大开发者提供技术入门与进阶的经验分享,以及最佳应用实践参考。


分享嘉宾

杨振涛

vivo 互联网搜索引擎架构师

vivo 是一个专注于智能手机领域的知名品牌,而 vivo 互联网为 vivo 智能手机用户提供极致的互联网产品和服务。从 Elasticsearch 2.1.1版本开始,到目前,vivo 互联网已经使用了 200 多个 Elasticsearch 集群来支撑全球 2 亿多台手机每天的各种搜索请求,涵盖了 vivo 的应用商店、游戏、音乐、主题、壁纸、铃声等各种手机服务背后的搜索服务,也包括产品配件、售后、FAQ 等企业门户官网的搜索请求。

一、ES技术养成之路


话题1:如何学习 Elasticsearch 及相关技术栈的知识

‍‍从两个方面说,一是以官方提供的入门和参考文档为主,‍‍因为业内现在 Elasticsearch 相关的资料相对来说比较丰富,但是想要跟上官方最新版本的节奏以及考虑权威性,还是官方的参考文档和‍‍有关的手册会比较靠谱;‍‍

另一方面,建议可以积极参与社区的一些活动,比如国内的中文社区有提供一些官方文档‍‍的中文版翻译,可以一定程度上降低学习门槛。另外国内的社区活动相对是比较丰富的,在一些一二线‍‍城市都有本地的技术沙龙活动,大家可以积极参加和交流学习。

二、 Elasticsearch 从业者的职业发展


话题2:对 Elasticsearch 开发者技术发展方向的建议

Elasticsearch 开发者大致可以分为三类:

第一类,是做垂直搜索业务的开发者。就我个人而言,我是从 1.0 版本开始接触的,最早是做垂直搜索业务,Elasticsearch 能帮我们快速上手搜索业务。如果你想在搜索业务持续精进,深入掌握 Elasticsearch 是很好的方式,因为 Elasticsearch 底层使用的是Lucene,加上它的分布式系统架构,这都是做搜索引擎的过程中,迟早都要接触的。Elasticsearch 是一个成熟的开源项目,从它的源代码可以学习到很多分布式系统知识,包括各种线程池的设计,以及多个节点间的协同,给搜索从业者提供了一个范本,即使你业务规模大到一定程度,不再使用 Elasticsearch ,转为自行开发,它的系统原理和 Elasticsearch 也可能基本是一致的。

另一类 Elasticsearch 开发者,已经分化到不同业务领域,比如做安全分析、日志分析、源代码搜索等等。他们对 Elasticsearch 的了解是阶段性的, Elasticsearch 作为一个搜索的解决方案,从数据索引到检索、查询和最后的排序,都能够很好地支撑。如果开发者希望他的业务有更好的提升的话,还得持续加深研究,甚至可以考虑考取 Elastic 官方认证,来给自身职业进行加分。

还有一类开发者,当公司的 Elasticsearch 集群发展到一定规模后,公司出于资源使用率和集群稳定性及可用性考虑,可能会自研 Elasticsearch 服务化平台,对所有 Elasticsearch 集群进行管控和资源使用率优化。对这一类开发者,我们建议他们对 Elasticsearch 底层做更深入的研究,可能需要为业务方做定制化的插件开发,甚至做一些基础研发,替换掉官方的某个模块,包括通过 Docker 和 K8S 实现容器化。

三、 Elasticsearch 应用实践


话题3:所在团队业务背景和 Elasticsearch 应用介绍

Elasticsearch 作为垂搜引擎的抉择

从 2014 年开始,我们在 vivo 开始做垂直搜索业务,典型场景包括:应用商店、游戏中心、官方商城、铃声、壁纸和主题等,因为手机上有很多内容资源需要分发给用户,搜索是用户获取资源的非常重要的方式。在安卓生态蓬勃发展的时期,有两三百万 APP,搜索功能对用户体验就至关重要,对游戏或 APP 开发者来说,搜索对提升他们内容的分发效率也是很重要的渠道,搜索在整个平台上的分发量超过了 8 成。所以我们从那个时候开始发力做垂直搜索。现在回过头来看,很庆幸当时非常明智的选择了 Elasticsearch,如果当时选择了其他技术栈,现在很可能会经历一个替换的过程。

在垂搜领域对 Elasticsearch 做定制化改造

vivo 互联网的垂直搜索业务刚开始用 Elasticsearch 时,从 0 到 1 的过程没有太大挑战,很快就能实现垂搜的基本功能。但是一旦实现了这个功能之后,搜索引擎需要持续优化迭代,大家会发现诸如分词效果不好,数据召回率或准确率不够等方面的问题。数据索引、检索以及排序这三个方面都有做深入的干预。因此把 Elasticsearch 作为一个底层快速检索和粗排工具,利用 Elasticsearch 做首轮召回,然后再通过后续其他自研系统做精排(二次排序),实现更精细的业务逻辑。这是我们遇到的第一大挑战,我相信在业界的垂搜项目,大概率会经历这样一个过程。经历过这样的定制化改造后,就可以根据用户点击行为等评价指标做持续性优化。

四、 Elasticsearch 技术前瞻


话题4: Elasticsearch 和数据可视化的结合

在监控运维领域,需要通过数据面板将数据结果呈现给开发者或其他角色去查看,之前大家用 Grafana 比较多,也有部分项目会使用 Kibana。据我们了解,国内开发者者和国外相比,在用户体验的需求上,可能存在差异。

国外开发者可能更偏好 Kibana,既可以通过拖拽实现查询,也可以写一些简单表达式实现高级查询,然后快速得到可视化面板。

但在国内,特别是非技术人员和大数据开发者,不太习惯使用表达式的方式来高度定制,更习惯于拖拽类的,或是表达式定制类的。在未来希望能够考虑到开发者不同偏好群体的习惯,对目前功能做一些区隔处理。另外,国内的可视化项目,特别是数字化大屏,需要非常立体和丰富的展现,Kibana 对这方面需求可以多做一些考量。

话题5: Elasticsearch 和 AI 的结合

‍‍目前我们在 Github 看到一些 Elasticsearch 和 AI 结合的开源项目,比如尝试使用 Learn to Rank,使用机器学习去优化排序,包括 Elastic 官方也在增强这方面的能力。我觉得 AI 的部分比较难做成像 Elasticsearch 功能化的部分那样开箱即用,因为需要开发者对机器学习模型有基本的认知,知道模型的输入和输出是什么,优化点是哪个部分。我觉得这是未来可以加大投入的地方,如何将 AI 能力赋能给那些没有机器学习背景的开发者,让他们能给业务更好的提升。另外一方面,业内也有同行在探索基于机器学习构建索引,这个对于大平台大数据量来说是一个比较新的但很有吸引力的方向。

相关活动


image.png

更多折扣活动,请访问阿里云 Elasticsearch 官网

• 阿里云 Elasticsearch 商业通用版,1核2G首月免费
阿里云 Elasticsearch 日志增强版,首月六折,年付六折
阿里云 Logstash 2核4G首月免费

image.png

image.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
运维 监控 开发工具
应用研发平台EMAS产品常见问题之华为手机没收到通知如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
3月前
|
安全 Linux 开发工具
Elasticsearch 搜索入门技术之一
Elasticsearch 搜索入门技术之一
227 1
|
3月前
|
存储 监控 iOS开发
iOS应用崩溃了,如何通过崩溃手机连接电脑查找日志方法
在iOS应用开发过程中,调试日志和奔溃日志是开发者必不可少的工具。当iOS手机崩溃时,我们可以连接电脑并使用Xcode Console等工具来查看日志。然而,这种方式可能不够方便,并且处理奔溃日志也相当繁琐。克魔助手的出现为开发者带来了极大的便利,本文将详细介绍其功能和使用方法。 克魔助手会提供两种日志,一种是实时的,一种的是崩溃的。(由于崩溃日志的环境很麻烦,目前只展示实时日志操作步骤)
|
3月前
|
存储 JSON 自然语言处理
Elasticsearch 利用API进行搜索
Elasticsearch 利用API进行搜索
35 0
|
3月前
|
存储 缓存 数据库
PB数据毫秒级搜索之Elasticsearch(二)基础了解
PB数据毫秒级搜索之Elasticsearch(二)基础了解
90 0
|
2月前
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
235 1
|
2月前
|
JSON Prometheus Cloud Native
Grafana 系列 - 统一展示 -8-ElasticSearch 日志快速搜索仪表板
Grafana 系列 - 统一展示 -8-ElasticSearch 日志快速搜索仪表板
|
4月前
|
搜索推荐 Java 数据处理
Elasticsearch搜索分析引擎本地部署与远程访问
Elasticsearch搜索分析引擎本地部署与远程访问
|
1月前
|
运维 监控 Cloud Native
应用研发平台EMAS常见问题之尝试设置小米的通道但是小米手机收不到消息如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
29 4
|
1月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
50 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用

相关产品

  • 检索分析服务 Elasticsearch版