写点什么

云搜索服务在 APP 搜索场景的应用

  • 2020-04-01
  • 本文字数:1379 字

    阅读完需:约 5 分钟

云搜索服务在APP搜索场景的应用

搜索无处不在,尤其是在移动互联的今天。无论是社交,电商,还是视频等 APP 中,搜索都已经在其中扮演了重要的角色。作为信息的入口,搜索能帮用户从海量信息中找到想要的信息。在 APP 搜索的典型场景如下:


  • 查找用户:根据输入匹配用户昵称,依据用户属性对搜索结果进行排序;

  • 搜索话题:根据用户输入匹配话题,依据话题属性对搜索结果排序;

  • 搜索帖子:根据用户输入匹配帖子内容,依据内容属性对搜索结果排序;

  • 按照地理位置搜索或推荐:根据用户输入地址信息,转换为经纬度,在一定距离范围内匹配话题、内容中的地址信息,依据它们的属性对搜索结果排序。



事实上,尽管搜索的概念深入人心,但做好一个体验绝佳的搜索服务并不是一件容易的事。在性能和搜索精度等细节上,都存在不可忽略的难点,而这些往往又是提升搜索体验的关键。客户难点如下:


  • 基于数据库的性能问题:

  • 数据一般都是分库分表存储在 MySql 数据库中,搜索时存在关联操作,查询效率很低;

  • 数据库的查询性能很难做到毫秒级,用户搜索体验十分不好。

  • 基于数据库的匹配问题:

  • 数据库中,无法做到综合考虑查询条件的属性后排序;

  • 数据库中无法过滤一些特殊字符,搜索过程中如果用户昵称中有特殊字符,就会不准确。

  • 基于开源搜索引擎 Elasticsearch 的问题:

  • 默认的 BM25 相关性打分排序无法确保搜索结果的合理性;

  • 简单的分词器对特殊字符处理不当。


举个例子:搜索用户“大海”时为什么大 V 用户“kkw 眼中 de 星辰大海”排在了“寻找那片大海”后面?



对于想要搭建 APP 搜索的客户来讲,从技术层面出发,实现方案如下。云搜索服务是基于 Elasticsearch,能够在毫秒级完成 TB 级检索任务并返回结果,能够很好解决传统数据库的性能问题。


整体实现方案



在云搜索服务中,我们针对客户的搜索痛点,做了如下优化,帮助客户增强用户体验,提升效率,快速实现业务增长。


云搜索服务中搜索方案优化:


  • 支持自定义词库,用户在词库中添加热搜词、关键词、网络常用词等来提高搜索输入的匹配精度;

  • 支持自定义权重,用户可以根据业务定义不同查询条件的权重,来决定最终结果的排序;

  • 支持越搜越准(规划),云搜索服务根据对搜索结果的点击行为,自动更新属性权重,达到最终结果排序更精准的效果。



在云搜索服务中,我们额外提供关于分词和词库的解决方案,帮助客户解决搜索精准度等问题。


云搜索服务分词、词库方案:


  • 因为用户昵称和内容、话题表达的含义不同,针对不同字段可以采取不同的分词器,以便于提升匹配精准度。具体作用见下表所示:



  • 采取使用简繁体分词器,还可以支持所有可搜索字段都能处理繁体字;

  • 对于热搜词、关键词、网络常用词,经常随时间变化,因此,我们采取用户自定义词库的方式更新,来提高搜索精准度。



总体而言,云搜索服务在互联网 APP 的搜索场景有如下的优势:


  • 一键化操作,无忧运维

  • 所有主要操作都是一键可达,专业团队贴身运维,快速实现搭建搜索功能模块;

  • 灵活弹性

  • 按需申请,在线扩容,轻松满足业务增长需求;

  • 灵活词库管理

  • 支持自定义词库与拼音分词,支持词库热更新,无需重启,配置即生效,对最终用户无影响;

  • 灵活分词、灵活权重

  • 不同字段使用不同的分词方式,提高搜索准确率。不同条件设置不同权重,提高搜索精准度;

  • 高效实时检索

  • 毫秒级检索结果返回,新数据入库后,即刻能被检索到,提供良好的用户体验。


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/X8R9Y5uCck_N5xEPh___kQ


2020-04-01 14:551326

评论

发布
暂无评论
发现更多内容

一文看懂博睿数据AIOps场景、算法和能力

博睿数据

AIOPS 智能运维 博睿数据

BladeDISC 0.2.0更新发布

阿里云大数据AI技术

深度学习 存储 并行计算 异构计算 算法框架/工具

亚马逊云科技 2022 年 3 月新服务新功能强势来袭

亚马逊云科技 (Amazon Web Services)

服务 亚马逊

Wallys-QCN9074 /802.11ax/4x4 MU-MIMO /6GHz wifi6E

wallys-wifi6

如何为服务网格做端到端测试

Flomesh

测试 Service Mesh 服务网格

鸿蒙生态 | 从开发到运营,如何步步为“赢”?

最新动态

【二级等保】二级等保怎么做?价格怎么样?贵吗?

行云管家

运维 网络安全 堡垒机 运维审计

如何评估服务是否内存泄漏了?

BUG侦探

缓存 容器 内存泄漏

开源集结令!参与开源之夏 EMQ 项目开发,赢最高 12000 元奖金

EMQ映云科技

开源 物联网 emq 开源之夏 5月月更

面试突击50:单例模式有几种写法?

王磊

Java java面试

如何写好产品手册?

小炮

你想学Python爬虫?看看这篇关于开发者工具神器的博客吧

梦想橡皮擦

5月月更

聊武侠、讲段子,为了帮小白入门Spring Boot,这书有多拼!

博文视点Broadview

EMQX+阿里云Tablestore多场景一站式IoT数据解决方案正式发布

EMQ映云科技

阿里云 物联网 一站式平台 emqx 5月月更

OpenHarmony 3.1 Release版本特性解析——OpenHarmony硬件资源池化架构介绍

OpenHarmony开发者

OpenHarmony 多设备协同

Wallys-Waterproof Enclosure Metal Outdoor

wallys-wifi6

IPQ4019 802.11ac

大数据课程培训到离职转行这个过程你知道经历了什么吗

@零度

大数据开发

什么?JDK8的ConcurrentHashMap 有 Bug

skow

Java 后端 并发

AI简报-FIX你的模型

AIWeker

人工智能 深度学习 5月月更 AI简报

数字孪生智慧物流之 Web GIS 地图应用

一只数据鲸鱼

GIS 数据可视化 智慧物流 数字孪生 三维仿真

官宣|秒云与极狐(GitLab)达成战略合作,打造云原生DevOps一体化解决方案

MIAOYUN

DevOps 运维 云原生

web前端培训创建 NPX 工具

@零度

web前端开发

leetcode 451. Sort Characters By Frequency 根据字符出现频率排序

okokabcd

LeetCode 排序

实例讲解FusionInsight MRS RTD 实时决策引擎在医保行业应用

华为云开发者联盟

数据湖 风控 医保 FusionInsight RTD 实时决策

数据库堡垒机品牌有哪些?买哪家划算?咨询电话多少?

行云管家

网络安全 信息安全 数据安全 堡垒机

手把手教你搭个Frida + Sekiro Rpc框架

奋飞安全

小程序转APP,小团队也能实现数字化生态闭环

Speedoooo

APP开发 跨端开发 小程序容器 小程序转app 跨端运行

java培训学习后找不到工作的原因你占了几条

@零度

JAVA开发

深度探索通过数据共享(data sharing)优化 Amazon Redshift 工作负载分解

亚马逊云科技 (Amazon Web Services)

数据 负载

如何通过 Amazon Textract 改善新冠疫情期间的 PPP 贷款效率

亚马逊云科技 (Amazon Web Services)

效率 Amazon

ABAP Code Inspector 的一些高级功能分享

汪子熙

编程语言 代码扫描 SAP abap 5月月更

云搜索服务在APP搜索场景的应用_服务革新_华为云产品与解决方案_InfoQ精选文章