乐趣区

关于搜索:APP搜索如何又快有准

摘要:搜寻的概念深入人心,但做好一个体验绝佳的搜寻服务并不是一件容易的事。

本文分享自华为云社区《云搜寻服务在 APP 搜寻场景的利用》,作者:写代码的贺巨匠

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

  • 查找用户:依据输出匹配用户昵称,根据用户属性对搜寻后果进行排序;
  • 搜寻话题:依据用户输出匹配话题,根据话题属性对搜寻后果排序;
  • 搜寻帖子:依据用户输出匹配帖子内容,根据内容属性对搜寻后果排序;
  • 依照地理位置搜寻或举荐:依据用户输出地址信息,转换为经纬度,在肯定间隔范畴内匹配话题、内容中的地址信息,根据它们的属性对搜寻后果排序。

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

基于数据库的性能问题:

• 数据个别都是分库分表存储在 MySql 数据库中,搜寻时存在关联操作,查问效率很低;

• 数据库的查问性能很难做到毫秒级,用户搜寻体验非常不好。

基于数据库的匹配问题:

•数据库中,无奈做到综合思考查问条件的属性后排序;

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

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

• 默认的 BM25 相关性打分排序无奈确保搜寻后果的合理性;

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

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

对于想要搭建 APP 搜寻的客户来讲,从技术层面登程,实现计划如下。华为云搜寻服务是基于 Elasticsearch,可能在毫秒级实现 TB 级检索工作并返回后果,可能很好解决传统数据库的性能问题。

▽ 整体实现计划

在云搜寻服务中,咱们针对客户的搜寻痛点,做了如下优化,帮忙客户加强用户体验,晋升效率,疾速实现业务增长。

华为云搜寻服务中搜寻计划优化:

● 反对 自定义词库,用户在词库中增加热搜词、关键词、网络常用词等来进步搜寻输出的匹配精度;

● 反对 自定义权重,用户能够依据业务定义不同查问条件的权重,来决定最终后果的排序;

● 反对 越搜越准(布局),云搜寻服务依据对搜寻后果的点击行为,自动更新属性权重,达到最终后果排序更精准的成果。

在云搜寻服务中,咱们额定提供对于分词和词库的解决方案,帮忙客户解决搜寻精准度等问题。

云搜寻服务分词、词库计划:

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

● 采取应用简繁体分词器,还能够反对所有可搜寻字段都能解决繁体字;

● 对于热搜词、关键词、网络常用词,常常随工夫变动,因而,咱们采取用户自定义词库的形式更新,来进步搜寻精准度。

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

一键化操作,无忧运维

所有次要操作都是一键可达,业余团队贴身运维,疾速实现搭建搜寻功能模块;

灵便弹性

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

灵便词库治理

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

灵便分词、灵便权重

不同字段应用不同的分词形式,进步搜寻准确率。不同条件设置不同权重,进步搜寻精准度;

高效实时检索

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

大数据普惠翻新包年 75 折起,MapReduce、数据仓库、云搜寻、数据湖摸索、数据可视化、数据湖治理核心助力企业开释千行百业数据价值!参加流动,注册即有红包支付!更有机会参加抽奖赢好礼!

点击关注,第一工夫理解华为云陈腐技术~

退出移动版