明明有印象却找不到,APP内搜索为什么这么难用?
赶上了互联网浪潮的当代人,每当有任何困扰,第一反应都是打开搜索引擎。
什么叫做“硬核相亲”,什么是“pick一下”,“达达主义”,“隐形贫困人口”——你都默默搜索过,不想被时代与话题抛弃。也许只有这样暗自努力,才能让生活与社交看起来毫不费力。
但搜索引擎无法解决一切。
信息爆炸时,“大而全”不见得是一件好事,除了纷乱的资讯与竞价广告,搜索引擎能给的真的不多。更多的有效信息散落在专业网站与各色细分App中,其内容含金量相对高,时效性强,无用信息少,是web时代那些先天不足的网页无法比拟的。如果说搜索引擎是一个巨大的杂货市场,站内搜索就像一个简洁的购物中心,可它的体验……
文献库搜索曾是许多人的心病,关键词太少搜出1000多篇论文,输入太精准,却提示“没有更多的搜索结果”。
旅行时,听到了街头艺人唱过一首歌,只依稀记得旋律,回来后绞尽脑汁想出了歌词的近义词——毫无疑问没搜到。
好不容易问出小姐姐社交软件ID,搜了发现有60多个重名。
需要的PPT模板在素材网怎么也找不到;视频网站搜个冷门资源,搜索反馈要等上半天结果往往还是“404”。
找用户,搜话题,找帖子,求推荐……在移动互联的大背景下,搜索无处不在。作为信息的入口,用户唯一要求的是:在APP的内容较多,无法完成全部展现时,又快又准找到想看的内容。

简单直接的诉求无法实现,APP内搜索难用,根本问题有3点:
1. 响应时间
基于MySQL数据库进行搜索,文档数仅仅上万条时,若没有索引,关键词查询就比较吃力了。如果一旦到企业级的数据,响应速度就会更加不可接受。
2. 分词
传统数据库并不支持分词。例如,在做中文搜索时,当搜索框输入“四川火锅”时,数据库通常只能把这四个字进行全部匹配。可是在文本中,可能会出现“推荐四川好吃的火锅”,这时就会无结果显示。
3. 相关性
在用数据库做搜索时,结果经常会出现一系列文档。可是到底什么文档是用户真正想要的呢?怎么才能把用户想看的文档放在搜索列表最前面呢?
这些问题,基于Elasticsearch的华为云搜索服务可以解决。
Elasticsearch基于倒排索引,搜索时不用再遍历整张表了,如当搜索“手机”时,Elasticsearch会立即返回文档F,G,H。这样就不用花多余的时间在其他文档上,因此检索速度得到了数量级的提升

Elasticsearch支持中文分词插件,直接解决了分词搜索问题。例如当输入“四川火锅”时,Elasticsearch会自动做下面两件事:将“四川火锅”分词成“四川”和“火锅”,而后查找包含这两个词的文档
Elasticsearch支持相关性评分。通过合理的优化,云搜索服务能够返回精准的结果,满足用户的需求。返回结果会根据分数由高到低排列。分数越高,意味着和查询语句越相关。例如,当搜索“星巴克咖啡”,带有“星巴克咖啡”的信息就要比只包含“咖啡”的信息靠前。

除此之外,云搜索服务由华为专业团队贴身运维,最短时间搭建搜索功能模块。企业使用按需付费,费用低至¥0.59/小时起,包年包月最高可省51%,切实的优质低价!
最新活动上线,试用窗口短暂开启,企业可领30天免费试用。
这一次,希望你不会缺席。

你是不是也想起心里那个还没找到答案的问题呢?
来搜一下吧!http://t.cn/RFg3nXz
明明有印象却找不到,APP内搜索为什么这么难用?的更多相关文章
- 35.app后端搜索入门
现在人们的网络生活已经离不开搜索了,遇到不懂的问题,想知道的事情,搜索一下,就知道答案. 在app中,最常见的搜索情景就是搜索用户.只有几百,几千的用户量时,可以直接用用like这样的模糊查询,但是, ...
- app后端搜索入门
现在人们的网络生活已经离不开搜索了,遇到不懂的问题,想知道的事情,搜索一下,就知道答案. 在app中,最常见的搜索情景就是搜索用户.只有几百,几千的用户量时,可以直接用用like这样的模糊查询,但是, ...
- iOS多语言(国际化)开发(尾随系统 + APP内手动设置)
一:尾随系统切换语言 1>创建好项目project后, 新建一个多语言文件: 2>加入要设置的语言类型: 3>加入成功 细心的朋友可能会发如今English后面写的是3 Files ...
- iOS6:在你的App内使用Passbook
前言 这是一篇翻译,感谢Jonathan Tang. 原文地址:iOS 6 Tutorial: Integrating Passbook into Your Applications 另外,看到另一篇 ...
- Android app内语言环境切换
逻辑很简单: 1 app内所有activity继承自BaseActivity或BaseActivity派生出来的子类,BaseActivity中维护了一个静态的 app Activity访问栈,在创 ...
- Android原生APP内分享
Android原生APP内分享,可实现数据分享以及assets文件夹分享及私有文件分享 项目地址:https://github.com/json-pu/AndroidAppShare.git
- App内切换语言
前几天客户提需求,对App增加一个功能,这个功能目前市面上已经很常见,那就是应用内切换语言.啥意思,就是 英.中.法.德.日...语言随意切换. (本案例采用Data-Bingding模式,麻麻再也不 ...
- 用vue做app内嵌页遇到的坑
公司要求用vue做一个微信端的网站,其中还包含一些app的内嵌页.开始的时候没想那么多,就直接用vue-cli搭了一个单页的vue项目,可随着项目越做越大,页面越来越多,问题就开始暴露出来了. 众所周 ...
- iOS APP内购
看到网上文章一大把,看了这个觉得挺不错的,谢谢 iOS大全 公众平台; 原文:http://mp.weixin.qq.com/s?__biz=MzAxMzE2Mjc2Ng==&mid=2652 ...
随机推荐
- nginx isis
Nginx+IIS简单的部署 随着互联网项目用户访问量不断上升,单点web服务器是无法满足大型高并发高负载的业务处理的,为了给web服务器做负载均衡方案,打算采用Nginx搭建负载均衡服务器,把用 ...
- ehcache缓存入门学习
ehcache缓存入门学习 1,概念 特性 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 主要的特性有:1. 快速2 ...
- C#封装CRUD到SqlHelper类解读
1.简单说明一下,一般情况下,数据库连接字符串是在App.config文件中进行配置,然后再在代码中进行引用.因此,我们在这里先看一下App.config文件. 首先看需要添加的内容: 参数说明: n ...
- taglib标签在web.xml文件中报错的解决办法
报错的原因分析: 在jsp2.0中,且2.4版的DTD验证中,taglib描述符,正确写法是放到<jsp-config></jsp-config>描述符中.所以,我们的tagl ...
- PLM数据库迁移注意事项
需求: PLM应用程序与数据库是存放在同一台服务器上,现需要将数据库迁移到数据库服务器10.10.1.10中. 10.10.1.10中安装了三个实例,MSSQLSERVER.MSSQLSERVER_P ...
- JavaScript去除空格的三种方法(正则/传参函数/trim)
方法一: 个人认为最好的方法.采用的是正则表达式,这是最核心的原理. 其次.这个方法使用了JavaScript 的prototype 属性 其实你不使用这个属性一样可以用函数实现.但这样做后用起来比较 ...
- Niginx +Tomcat 集群搭建
1 安装niginx服务器,然后启动,访问localhost;出现欢迎界面证明niginx启动成功: 如上图的目录是nginx1.1的目录结构: 2 之后下载tomcat,然后赋值一份,总共两个tom ...
- 在Ubuntu里启用root账号
我的系统环境, 操作系统:Win7 虚拟机软件:VMware workstation 12 在虚拟机里安装了Ubuntu 18,安装时的账号frank,在安装其它软件的时候,报权限不足,因此,准备启用 ...
- 杭电acm 1021题
题意是要求能被3整除的数所以为了避免大数据的产生,直接对每个数据求余,然后相加 #include "iostream" using namespace std; int main( ...
- p4068 [SDOI2016]数字配对
传送门 分析 我们考虑对所有a[i]质因数分解,然后记cnt[i]为a[i]是由几个质数相乘得到的 然后我们建一个二分图,左面为所有cnt[i]为奇数的点,右面是为偶数的点 我们从源点向左面点连容量b ...