三步搭建自己的Google搜索引擎

举报
Amber 发表于 2018/12/05 17:03:29 2018/12/05
【摘要】 三步搭建自己的Google搜索引擎 搜索无处不在,尤其是在移动互联的今天。无论是社交,电商,还是视频等APP中,搜索都已经在其中扮演了重要的角色。作为信息的入口,搜索能帮用户从海量信息中找到想要的信息。在搜索框中快速依据关键字,找出对应内容,这是网站或APP不可或缺的一个功能。搜索性能、精准度,又是和最终用户使用体验息息相关的。云搜索服务正是在高性能、全文检索、自定义词库、多种类分词...

三步搭建自己的Google搜索引擎

 

    搜索无处不在,尤其是在移动互联的今天。无论是社交,电商,还是视频等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.cn/),学习课程《21天晋级大数据实战营》,获取更多操作教程!

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。