10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

评论

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

模块三作业

king

PancakeSwap交易所做市机器人|交易所画K线机器人

Geek_23f0c3

交易所机器人 pancakeswap 做市机器人

15年前的3篇论文,变成了万亿大生意

百度大脑

人工智能 论文

程序员崩溃的40个瞬间!最后一个是你意想不到的.....

网络攻防学习笔记 Day86

穿过生命散发芬芳

网络攻防 7月日更

时序数据库助力安全监控

greatersecurity

应届女生美团Java岗4面,一次性斩offfer,我受到了万点暴击

编程菌

程序员 面试 后端 计算机

别人都在谈爱琴海,凭什么程序员就“地中海”网友:还是太优秀!

2021年FiL最新消息:fil值得投资吗?

区块链 IPFS fil fil矿机 fil行情

Go 语言的信号式抢占原理

Xargin

后端 Go 语言 系统编程

粉了!京东商城核心亿级流量并发Java系统架构设计方案手册

Java架构追梦

Java 架构 面试 高并发 京东

关于体验设计的十大重要定律

石云升

读书笔记 用户体验 商业洞察 7月日更 体验设计

一种Vue应用程序错误/异常处理机制

devpoint

Vue 异常处理 vue2 7月日更

"开放数据,蔚然成林"—浪潮助力多地获得数据开放全国标杆

云计算

2021- iOS开发者一份你一定会被问到的面试题(附参考答案)

iOSer

ios 面试 ios开发 iOS 知识体系

掌握这些核心算法,拿不到10+个offer你来找我,我锤飞你个不争气的

北游学Java

Java 算法

Baetyl邀你来战EdgeX中国挑战赛!

百度开发者中心

人工智能 最佳实践 物联网

CODING 携手 CoDesign:让设计与开发更简单

CODING DevOps

DevOps 设计 开发工具 CoDesign

程序员面试时自称字节跳动工作两年,被发现学历造假,结果蒙了!

NGINX社区线下Meetup第三期成功举办 感受成都开发者们的NGINX热情

爱极客侠

【云厂商】部分知名云服务商名单

行云管家

云计算 公有云 云服务 私有云 云厂商

《面试八股文》之 Redis 16卷

moon聊技术

redis 面试

Tensorflow for Java + Spark-Scala分布式机器学习计算框架的应用实践

Qunar技术沙龙

机器学习 tensorflow spark 后端 分布式计算

加码物联网安全,熵核科技做终端安全的守护者

熵核科技

Java版人脸检测详解上篇:运行环境的Docker镜像(CentOS+JDK+OpenCV)

编程菌

Java 编程 程序员 后端 java技术宅

程序员小哥月入5万,却被丈母娘拒绝,丈母娘一番话让小哥很尴尬

如何下载YouTube视频/影片(4K画质)

资源君

分享 经验分享 youtube视频下载 工具分享 教程分享

详细架构设计文档

刘丽

为什么双赞安卓ARM工控主板应用前景那么好?

双赞工控

spring,springboot,底层原理解析

java小李

学生管理系统详细架构设计文档

张文龙

#架构实战营

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