搜索无处不在,尤其是在移动互联的今天。
无论是社交,电商,还是视频等APP中,搜索都已经在其中扮演了重要的角色。
作为信息的入口,搜索能帮用户从海量信息中找到想要的信息。
在搜索框中快速依据关键字,找出对应内容,这是网站或APP不可或缺的一个功能。
搜索性能、精准度,又是和最终用户使用体验息息相关的。
云搜索服务正是在高性能、全文检索、自定义词库、多种类分词、
模糊查询、自动纠错、同近义词匹配、简繁体匹配等方面,来满足用户对搜索的诉求。
Google搜索引擎大家都用过,Google的搜索内容,都是依靠爬虫从网络上爬取的网页数据。
当用户在输入框中输入关键字,Google就会在后台进行内容相关性计算,
然后以相关性从高到低返回结果。对于一个网站或者APP来说,
我们也希望拥有类似于Google的搜索框。只不过搜索的内容,是网站自己提供的内容。
接下来,就以一个网站的搜索框作为举例,通过构建网站的搜索框,
带您体验网站搜索场景中云搜索服务的应用。
这个网站的内容包含注册用户,以及用户发的帖子。
包括三个搜索场景:用户搜索,根据用户名称匹配度、是否VIP、最近登录时间、发帖数、粉丝数综合评分得出搜索结果;
帖子搜索,根据帖子内容匹配度、发布时间、查看数、评论数、点赞数综合评分得出搜索结果;
同义词搜索,根据表达意思相同的词,得到相应的搜索结果。
总体分为三个步骤:第一步准备环境,主要会用到云搜索服务、弹性云服务器和虚拟私有云。云搜索服务(Cloud Search Service)是一个基于Elasticsearch且完全托管的在线分布式搜索服务,为用户提供结构化、非结构化文本的多条件检索、统计、报表。完全兼容开源Elasticsearch软件原生接口。弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率。虚拟私有云(Virtual Private Cloud)是用户在华为云上申请的隔离的、私密的虚拟网络环境。用户可配置VPC内的IP地址段、子网、安全组等子服务,可申请弹性带宽和弹性IP搭建业务系统。
第二步索引数据。索引数据是将数据源中的数据,在Elasticsearch集群中建立索引。通常会使用数据同步工具或者ETL工具,从MySQL拉取数据,写入Elasticsearch。在本次课程里,我们的数据源是磁盘上的很多JSON文件,因此,我们写了一个程序IndexingApp,从磁盘上读取文件内容后,调用Elasticsearch的写接口,将输入写入Elasticsearch集群。
第三步搜索请求。搜索请求是从搜索框中接收用户的输入,然后构造搜索查询语句,调用Elasticsearch的搜索接口下发检索数据请求到Elasticsearch。在本次课程里,我们试用SearchApp来模拟一个网站的前后台。结合用户输入和搜索范围选择,来显示相应的搜索结果。
进入华为云学院(https://edu.huaweicloud.com/ )
,学习课程《21天晋级大数据实战营》,获取更多操作教程!
原文地址:http://blog.51cto.com/13988201/2326599