大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

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

评论

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

C语言-函数的可变形参(不定形参)

DS小龙哥

C语言

评委拍案叫绝、项目惊喜不断,这是一届怎样的 Hackathon ?丨TiDB Hackathon 2021 回顾

PingCAP

在Windows上运行Rainbond,10分钟快速安装

北京好雨科技有限公司

详解数据中台的底层架构逻辑

五分钟学大数据

数据中台 数据仓库 1月月更

从内存管理原理,窥探OS内存管理机制

华为云开发者联盟

cpu 内存 内存管理 应用程序 OS

区块链,元宇宙时代的“基础设施”

CECBC

缓存一致性最佳实践

得物技术

缓存 分布式 数据 一致性 实践

C语言-语句(if,for,while,switch,goto,return,break,continue)

DS小龙哥

C语言

发挥好数字人民币促“双碳”作用

CECBC

Hadoop中mapreduce作业日志是如何生成的

华为云开发者联盟

hadoop hdfs mapreduce YARN 作业日志

最佳实践:青藤云安全发布国内首个K8S ATT&CK攻防矩阵

青藤云安全

新能力让数据多端协同更便捷,数据跨端迁移更高效!|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

微服务分布式架构中,如何实现日志链路跟踪

华为云开发者联盟

微服务 日志 分布式架构 logback 链路跟踪

Hyperf结合PhpOffice/PhpSpreadsheet实现Excel&CSV文件导出导入

Owen Zhang

php hyperf php扩展 PhpOffice/PhpSpreadsheet

抢占先机!为何说区块链通证经济象征未来?

CECBC

深入解析Kafka的offset管理

编程江湖

kafka

大搜车面向复杂业务场景的研发运维体系治理实践

阿里云弹性计算

弹性计算 运维峰会 研发运维

C语言-基本数据类型与位运算

DS小龙哥

C语言

Ubuntu LNMPR环境搭建(Ubuntu 20.04 + Nginx1.8 + PHP 7.3 + Mysql8.0 + Redis5.0)

Owen Zhang

ubuntu LNMPR

2021关键词:重新起航

faiting

数据结构算法 盘点 2021

Golang:定时器的终止与重置

恒生LIGHT云社区

golang 定时器 语言 Go 语言

阿里云何川:开放兼容的云,计算巢帮助合作伙伴云化升级

阿里云弹性计算

弹性计算 年度峰会 计算巢

城墙上的“云镜派”,如何守护云上资产安全?

白洞计划

在Mac上运行Rainbond,10分钟快速安装

北京好雨科技有限公司

企业管理系统可视化权限功能设计

雯雯写代码

可视化 权限 企业管理系统

『征文精选』技术翻译与术语管理技术:专业人说专业话

SphereEx

数据库 翻译 ShardingSphere 征文 SphereEx

Java开发Redis面试题分享

@零度

redis Java 开发

C语言-函数的定义、声明、传参

DS小龙哥

C语言

Ubuntu 基于Nginx1.8的Golang环境搭建(Ubuntu 20.04 + Nginx1.8 + Golang 1.17 )

Owen Zhang

golang nginx ubuntu

跨平台技术实战!百度文库跨平台技术快速落地全过程

百度Geek说

跨平台 PC 百度文库

C语言-数组

DS小龙哥

C语言

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