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

本文分享自华为云社区《云搜索服务在APP搜索场景的应用》,作者:写代码的贺大师

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

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

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

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

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

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

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

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

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

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

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

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

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

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

▽ 整体实现方案

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

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

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

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

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

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

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

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

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

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

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

● 一键化操作,无忧运维

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

● 灵活弹性

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

● 灵活词库管理

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

● 灵活分词、灵活权重

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

● 高效实时检索

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

大数据普惠创新包年75折起,MapReduce、数据仓库、云搜索、数据湖探索、数据可视化、数据湖治理中心助力企业释放千行百业数据价值!参与活动,注册即有红包领取!更有机会参与抽奖赢好礼!

点击关注,第一时间了解华为云新鲜技术~

APP搜索如何又快又准?的更多相关文章

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

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

  2. 【转】 FineBI:自助式BI工具打造业务分析的“快与准”

    如今的企业经营方式,业务对于数据分析有极大的需求,但却苦于没有数据以及工具的有效支持,业务分析仍就依赖于IT报表制作.而IT方不断地按业务需求去调研.确认业务逻辑,然后取数做报表,其中还要忍受业务的需 ...

  3. 网页搜索之后的APP搜索

    搜索技术是互联网最核心的技术之一.但是移动互联网迅猛发展的今天,互联网产生的数据已经不是简单的网页搜索所能涵盖的了.比如微信公众号,产生了许多优质的内容,如果这些公众号仅仅将这些内容发布到微信平台,那 ...

  4. 将代码设置的剪切板内容通过输入法软件粘贴入app搜索框

    #进入app搜索框位置--双击#等待输入法软件弹出#将代码设置的剪切板内容通过输入法软件粘贴入app搜索框#搜索 import win32apiimport timeimport win32clipb ...

  5. 开发手机APP过程,不同使用场景APP搜索框的样式及区别

    搜索框是 app 内最常见的控件之一,可以帮助用户快速又精准找到期望的内容与功能.不同的使用场景下,根据页面中搜索的重要程度,搜索框也有着不同的样式. 下面就常州开发APP公司和大家聊聊常见的四种样式 ...

  6. 【转】简单几步让App Store软件下载快如迅雷 -- 不错!!!

    原文网址:http://pad.zol.com.cn/237/2376160_all.html 下载速度慢的原因     1)国内用户从苹果软件商店下载软件速度很慢这是大家都知道的事实,究其原因就是苹 ...

  7. RxJava(七) 使用debounce操作符 优化app搜索功能

    欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/51555203 本文出自:[余志强的博客] 一.抛出问题 现在几乎所有 ...

  8. 异构智联Wi-Fi+蓝牙模组,连接快、准、稳!

    下班回家打开门,电灯.电视.空调.音响.电动窗帘.扫地机器人--一呼百应,有序开工,原本冰冷的房子立刻变成了温暖港湾.可以说,舒适便捷的智能设备已经完全融入了我们的生活中. 从单一场景.单一设备,到现 ...

  9. Python小工具:据说这是搜索文件最快的工具!没有之一!一起感受下......

    电脑自带的搜索文件功能相信大家都体验过,那是真的慢,等它找到文件,我都打完一把游戏了! 那必须不能忍,于是我自己做了一个文件搜索工具,犄角旮旯的文件都能一秒钟搜索出来的那种! 保证能把你们男(女)朋友 ...

  10. Vue2.5开发去哪儿网App 搜索功能完成

    效果展示: Search.vue: <div class="search-content" ref="search" v-show="keywo ...

随机推荐

  1. UVA908[Re-connecting Computer Sites]题解

    原题 1.题意分析 题意就是给你很多组数,对于每组数,有三组小数据.第一组小数据先输入一个n表示顶点数,然后再输入n-1条边表示初始边数.其它组小数据先输入一个数k,表示增加的边的数量,然后再输入k条 ...

  2. keepalived部署+nginx高可用

    nginx+keepalived搞性能web网络架构实战配置: 环境准备: keepalived+nginx-1: 192.168.1.23 keepalived+nginx-2: 192.168.1 ...

  3. Java初始化顺序及使用Spring情况下初始化

    Java初始化顺序 1  无继承情况下的Java初始化顺序: class Sample {       Sample(String s)       {             System.out. ...

  4. 设置Eclipse自动补全变量名

    具体配置步骤如下: Windows -> Preferences -> Java -> Editor -> Content Assist 选中 Enable auto-acti ...

  5. 第1章 .NET起步

    1.1 什么是.NET? .NET 8.0 SDK下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0 .NET 是一个免费的跨平台开 ...

  6. Apache Hudi Timeline:支持 ACID 事务的基础

    Apache Hudi 维护在给定表上执行的所有操作的Timeline(时间线),以支持以符合 ACID 的方式高效检索读取查询的数据. 在写入和表服务期间也会不断查阅时间线,这是表正常运行的关键. ...

  7. NativeBuffering,进一步提升字符串的序列化性能

    在<NativeBuffering,一种高性能.零内存分配的序列化解决方案[性能测试篇]>我比较了NativeBuffering和System.Text.Json两种序列化方式的性能,通过 ...

  8. 最小生成树(Kruskal Prim)

    最小生成树 (克鲁斯卡尔算法) Kruskal 给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数. 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible. 给 ...

  9. iOS程序生命周期流程

    盛年不重来,一日难再晨.及时宜自勉,岁月不待人.   iOS系统资源是有限的,合理的去配置应用程序的运行状态以及了解app的生命周期对于大多数开发者来说是很重要的一件事情!在后台进行运行时app会受到 ...

  10. OpenSSL 使用AES对文件加解密

    AES(Advanced Encryption Standard)是一种对称加密算法,它是目前广泛使用的加密算法之一.AES算法是由美国国家标准与技术研究院(NIST)于2001年发布的,它取代了原先 ...