三步搭建自己的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.com/
,学习课程《21天晋级大数据实战营》,获取更多操作教程!

原文地址:http://blog.51cto.com/13988201/2326599

时间: 2024-10-08 17:48:45

三步搭建自己的Google搜索引擎的相关文章

Hexo + Serverless Framework,简单三步搭建你的个人博客

很多人都想拥有自己的个人博客,还得看起来漂亮.酷酷的.尤其对开发者来说,不仅可以分享技术(装)心得(逼),面试的时候还能成为加分.这里介绍两款好用的神器,不用忙前(前端)忙后(后端),简单3min即可搞定,本文免费分享给大家. PS:不会写代码?没有备案的域名?没有服务器?在这里,这些都不是事儿! 工具介绍 Serverless Framework:Serverless Framework 是业界非常受欢迎的无服务器应用框架,开发者无需关心底层资源即可部署完整可用的 Serverless 应用架

一步一步搭建开发框架(三)基类基接口

1,AdoNetDal和EfDal都实现IDal这个接口,公共的方法写到接口中,接口中的代码! 1 namespace PCITC.OA.IDal 2 { 3 public interface IUserInforDal 4 { 5 UserInfor Add(UserInfor userInfor); 6 7 bool Update(UserInfor userInfor); 8 9 bool Delete(UserInfor userInfor); 10 11 int Delete(para

AngularJs + WebApi + EF + SqlServer 一步一步搭建项目(三)

上一篇,我们完成了对数据库和数据模型的创建,这一篇我们将进行仓储的建立. 概要: 基于DDD(领域驱动设计)的仓储建造Repository和UnitOfWork搭配简单使用. 一.创建上下文 二.创建领域的好伙伴,仓库管理员TRepository 三.创建工作单元 至此,仓储建造完毕.接下来我们将对请求和响应的基础数据结构进行封装. 为什么使用领域驱动设计? Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间.它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合

值得我们深入研究和学习:从零开始一步一步搭建坚不可摧的Web系统主流架构

本文标签: Web系统主流架构 搭建Web系统架构 缓存服务器 数据库架构   技术型初创公司  互联网杂谈 主题简介: 1.网站系统架构当前现状 2.Web系统主流架构解析 3.互联网技术团队初期组建经验分享 本文主要结合我之前在海尔电商平台和现在公司的一些实际架构经验,综合实际情况和个人的理解,跟大家分享一下搭建Web系统的一些常用的技术架构和应用技巧. 首先要跟大家探讨一个问题,就是当前传统IT企业或是传统企业的IT系统目前的系统架构是怎样的呢? 就我所经历的NEC软件.海尔集团.青岛航空

三步升级已安装的 Android SDK 和 ADT 插件(转载)

转载:http://www.tfan.org/update-adt-and-android-sdk-in-five-minutes/ 如何快速地把已安装的 Android SDK 及 Eclipse 的 ADT 插件升级到最新版本?同时又能保证之前下载的 Android API 和扩展可用.下面我们使用三步来完成更新操作. 第一步,升级 Android SDK 首先到 Google Android SDK 的下载页面下载最新的 SDK,注意是 “SDK tools only”,不要下载 ADT

高效阅读文章的“三步曲”

高效阅读文章的“三步曲” 通读杨春玲老师的两篇博文“我科研过程中走过的弯路及纠偏探索 ”.“如何有效阅读文献(图) ”及其中链接的文章How to Read a Paper http://blog.sciencenet.cn/home.php?mod=attachment&filename=howtoread.pdf&id=47254,现给出自己对于这一问题的思考,以下没有标注的引号里的内容均来自杨老师的两篇博文中. 一.认真研读自己专业的经典教材,“教材是一个领域里最佳参考,研究之前先查

.net三步配置错误页面,让你的网站远离不和谐的页面

如果你的网站出现一堆让人看不懂的报错,那么你就不是一个合格的程序员,也不是一个合格的站长. 下面的方面可以帮助你的网站远离让人头大的页面. 第一步:配置web.config 打开web.config,在<system.web>节点下添加如下代码: <customErrors mode="On" defaultRedirect="ErrorPages.aspx"> <error statusCode="403" red

Ceph对象存储RGW对接企业级网盘OwnCloud三步走

上篇文章我们把Ceph对象存储搭建成功了,但是成功了之后我们怎么用呢?下面我们本文就来讲下Ceph对象存储对接企业私有云网盘OwnCloud. OwnCloud分为企业版和社区版,我们只说社区版,在这里我就不多赘述了. 那么Ceph对接OwnCloud分三步走. 第一:安装Ceph配置RGW对象存储 第二:安装OwnCloud 第三:对接 第一步在上个文章里面已经做了,那么第二步是安装OwnCloud,可以看下我之前的文章进行安装. 如何搭建OwnCloud网盘 主要讲下第三步 要点:网盘节点D

使用python一步一步搭建微信公众平台(一)

最近无聊,想玩玩微信的公众平台,后来发现乐趣无穷啊~ 使用的工具,python 新浪SAE平台,微信的公众平台 你需要先在微信的公众平台与新浪SAE平台上各种注册,微信平台注册的时候需要你拍张手持身份证的照片,还有几天的审核期 微信公众平台:http://mp.weixin.qq.com 新浪SAE:http://sae.sina.com.cn/ 等待微信公众审核通过后,登录公众平台后,点击高级功能.将会看到需要提供一个接入信息: 微信接口配置 那么我们需要一个网址作为接口(这时就需要SAE上搭