写点什么

云搜索服务在 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:551613

评论

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

腾讯前端二面常考vue面试题(附答案)

yyds2026

Vue 前端

喜讯!华秋电子荣获第六届“蓝点奖”十佳分销商奖

华秋电子

javascript 高级编程 之 Array 用法总结

hellocoder2029

JavaScript 前端

一文详解ATK Loss论文复现与代码实战

华为云开发者联盟

人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

webpack实战,手写loader和plugin

Geek_02d948

JavaScript 前端

有哪些前端面试题是必须要掌握的

hellocoder2029

JavaScript 前端

ChatGPT热度“狂飙”,OceanBase也去找它唠了唠

OceanBase 数据库

数据库 oceanbase

全民开发者时代到来!华为云开发者日深圳站成功举办

华为云开发者联盟

云计算 华为云 ChatGPT 企业号 2 月 PK 榜 华为云开发者联盟

webpack模块化的原理

Geek_02d948

JavaScript 前端

Nodejs相关ORM框架分析

coder2028

JavaScript 前端

使用 PGO 优化 Databend 二进制构建

Databend

大中华区联合企业捷成集团在 AWS 上使用 F5 防御恶意 Web 攻击

F5 Inc

从银行数字化转型来聊一聊,火山引擎VeDI旗下ByteHouse的应用场景

字节跳动数据平台

大数据 Clickhouse 数据平台 企业号 2 月 PK 榜

多级分流

胖子笑西风

Java 架构 高并发 流量

Nodejs+Redis实现简易消息队列

coder2028

JavaScript 前端

国外的SRE都是干啥的?薪资如何?

巴辉特

SRE

这些数据可视化工具必备

2D3D前端可视化开发

数据可视化 数据可视化工具 可视化大屏 可视化图表 sovitchart

软件测试/测试开发 | 黑盒测试方法论-判定表

测试人

软件测试 测试开发 测试用例 黑盒测试

低代码开发平台 助力教育行业信息化建设

力软低代码开发平台

20道前端高频面试题(附答案)

Geek_02d948

JavaScript 前端

javascript尾递归优化

hellocoder2029

JavaScript 前端

前端一面常见面试题及答案

coder2028

JavaScript 前端

flutter系列之:Navigator的高级用法

程序那些事

flutter 架构 大前端 程序那些事

图文实录|澜舟科技合伙人李京梅:基于预训练模型的 AIGC 技术与应用实践

澜舟孟子开源社区

AI NLP 大模型 AIGC

助力硬件创新,华秋电子荣获科技创新示范奖

华秋电子

高级前端面试题汇总

hellocoder2029

JavaScript 前端

NFT碎片化股权分割众筹dapp系统开发合约定制

开发微hkkf5566

IoT 存量设备 零改造,泛化SDK实现整体业务迁移上云——实践类

阿里云AIoT

前端开发 物联网 开发工具 传感器 测试技术

Vue组件是怎样挂载的

yyds2026

Vue 前端

字节前端必会面试题(持续更新中)

Geek_02d948

JavaScript 前端

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