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月前
|
存储 自然语言处理 BI
|
2月前
|
机器学习/深度学习 存储 监控
Elasticsearch 在日志分析中的应用
【9月更文第2天】随着数字化转型的推进,日志数据的重要性日益凸显。日志不仅记录了系统的运行状态,还提供了宝贵的洞察,帮助企业改进产品质量、优化用户体验以及加强安全防护。Elasticsearch 作为一个分布式搜索和分析引擎,因其出色的性能和灵活性,成为了日志分析领域的首选工具之一。本文将探讨如何使用 Elasticsearch 作为日志分析平台的核心组件,并详细介绍 ELK(Elasticsearch, Logstash, Kibana)栈的搭建和配置流程。
275 4
|
15天前
|
存储 SQL 监控
|
14天前
|
存储 缓存 固态存储
Elasticsearch高性能搜索
【11月更文挑战第1天】
32 6
|
15天前
|
自然语言处理 监控 数据可视化
|
13天前
|
API 索引
Elasticsearch实时搜索
【11月更文挑战第2天】
29 1
|
20天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
20 1
|
29天前
|
Web App开发 缓存 前端开发
拿下奇怪的前端报错(六):多摄手机webrtc拉取视频流会导致应用崩溃,从而无法进行人像扫描
本文介绍了一种解决手机摄像头切换导致应用崩溃的问题的方法。针对不支持facingMode配置的四摄手机,通过缓存和序号切换的方式,确保应用在特定设备上不会频繁崩溃,提升用户体验。
|
1月前
|
人工智能
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
172 2
|
1月前
|
Web App开发 JavaScript Java
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
这篇文章是关于如何使用Spring Boot整合Elasticsearch,并通过REST客户端操作Elasticsearch,实现一个简单的搜索前后端,以及如何爬取京东数据到Elasticsearch的案例教程。
184 0
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。

相关产品

  • 检索分析服务 Elasticsearch版
  • 下一篇
    无影云桌面