热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

APP搜索如何又快又准?

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

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

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

查找用户:根据输入匹配用户昵称,依据用户属性对搜索结果进行排序;

搜索话题:根据用户输入匹配话题,依据话题属性对搜索结果排序;

搜索帖子:根据用户输入匹配帖子内容,依据内容属性对搜索结果排序;

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


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

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

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

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

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

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

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

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

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

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

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


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


▽ 整体实现方案


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

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

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

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

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


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


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

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


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

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


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

● 一键化操作,无忧运维

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

● 灵活弹性

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

● 灵活词库管理

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

● 灵活分词、灵活权重

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

● 高效实时检索

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

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


 

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



推荐阅读
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 一份来自清华的数据分析笔记,请查收!
    之前发过很多数据分析的文章,收到不少好评,但也有一些困惑:入门数据分析该学哪些知识点?该看哪些书?是从Pyth ... [详细]
  • Hadoop——Hive简介和环境配置
    一、Hive的简介和配置1.简介Hive是构建在Hadoop之上的数据操作平台lHive是一个SQL解析引擎,它将SQL转译成MapReduce作业,并 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
author-avatar
三心两意真实扭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有