下面我们就一步一步来搭建这个简单的资源搜索网站

一、搭建前的一些准备和分析

资源搜索网站有如下几个关键点:

1、原始数据

没有个几百万条初始搜索数据,都不好意思和别人说是做资源站的,在这个案例里面,我们采用了simplecd官方制作的电驴地址打包,虽然年代比较久远,但也有百万条左右,下载地址为:

https://www.douban.com/group/topic/17230136/

请注意保护版权!

2、数据存储与检索

十多年前资源的数量以百万计算,现在一个饱满的资源站的资源数量应该早已过亿,数据库大小也应该在50G以上,这样的数据,使用阿里云RDS MySQL数据库具有较高的性价比,数据量再大一些还可以结合DRDS分布式数据库一同使用

对于具体的检索技术,不同的数据库的全文索引、分词等技术各不相同,甚至连MySQL的各种版本之间的处理都有区别,而由于数据库我是确实不会。。要是会的话就不至于一直用Linq ORM了。。我想象中的100万条数据全文检索的速度应该在0.01秒左右,但自己操作MySQL进行配置和优化,始终达不到这样的查询效率

因此今天这里选择了阿里云的开放搜索服务,让阿里云来处理这些难点。

这也是今天的一个主要讲解重点,实测证明,确实检索效率很高!

3、数据爬虫与更新

初始数据载入后,后续的数据更新也非常重要,主要靠爬虫程序进行每日更新,重点在于爬虫程序的效率的所爬目标的资源质量,这里有两个难点

1)所爬目标资源。电影站、软件站、BT搜索站等等,都可以是爬虫目标资源,而如果掌握了搜索引擎的高级用法,并引入无限数量的代理IP,则可以对搜索引擎直接进行定向爬取,效果更加。如能做到每日新增10万左右新资源,则是一个比较完美的效果。

2)爬虫程序。如果仅仅是对HTML进行查询和分析,则需要很高的正则使用技巧,而如果涉及到语义分析的话,更需要很强的语言分析相关技术。爬虫程序的逻辑编写,我想.NET Framework 4.5是再适合不过了,拥有先进的多线程并行库和丰富而全面的HTTP访问手段,完胜其他各种新型语言

经过以上的分析,设计出如下的系统架构图:

二、具体的搭建步骤

1、购买一个阿里云RDS数据库并进行相关配置

因为本项目纯属测试,所以买个便宜点的按时计费的MySQL RDS

每天7块多钱,还算可以接受的范围内。

购买完成后,申请一个外网地址(用于初始数据迁移)

最后获得了内外网的地址:

2、使用Navicat Premium(请支持正版,)打开下载好的SQLite格式的电驴初始数据

根据表结构可以看出相关数据存储方式,由于今天的案例比较简单,我们仅需要title、updatetime、ed2k这3个字段

3、根据需要的字段,在购买的RDS数据库中,建立数据库和表

通过Navicat Premium连接到阿里云

建立一个电驴资源表

4、通过Navicat Premium的数据迁移工具,将初始化数据导入RDS

由于没有直接的导入方式,我们先将SQlite数据导出为文本文件

再将文本文件导入到最终表中

5、通过阿里云开放搜索服务,与RDS连接并建立索引

选择通过数据源创建应用

设置ID为主键

默认定义了如下索引结构

我们只需要用到Title的检索,需要展示的内容则是title,ed2k,因此修改为如下:

创建完成后进行激活,选择了3G容量,每秒6次的配置(好像价格不便宜哦~)

激活完成后,会进行大约半个小时左右的索引,索引建立好之后,我们测试一下搜索效果

d

注意用时:用时0.008791秒

这比自己处理数据库,真是要高不少效率!看来使用阿里云开放搜索服务确实是一个值得尝试的新思路!

6、基本配置完成后,就是如何使用开放搜索服务了

先看一下官方文档的结构

标红的地方可以重点了解,在今天的案例里面,我们只需要用到API接口里面的Search接口,这是最简单的调用方式

文档还是比较简单,很容易就看懂了,签名这块阿里做的有些混乱,不过用官方提供的SDK,也能快速的使用服务

7、下面就在.NET中测试一下效果

先到官网下载一下.NET的SDK

然后建一个控制台测试程序,代码如下:

模拟进行搜索美食

返回成功

8、继续新建一个简单的asp.net Web Application,做一下前端访问首页

服务输出使用一个一般处理程序RS.ashx,代码如下:

页面就一个单页面

JS逻辑也很简单

访问效果如下:

好了,今天这个资源搜索网站就搭建好了

麻雀虽小五脏俱全,这个案例还是具备很强的实践性和延展性的,后续可以做的事情有如下:

1)完善爬虫程序

2)实现一个独立的管理后台,管理爬虫数据和开放搜索服务数据同步

3)增加用户管理

4)增加广告等营收

【阿里云】2020双十一优惠:

https://www.aliyun.com/1111/new?userCode=fggt3m9n

【阿里云】永久优惠:

https://www.aliyun.com/minisite/goods?userCode=fggt3m9n

使用阿里云开放搜索服务快速搭建资源搜索网站相关推荐

  1. 【初码干货】使用阿里云开放搜索服务快速搭建资源搜索网站

    大家好,我又来了,答应云栖论坛一周一篇文章, 由于工作太忙已中断1个多月实在抱歉,这一次写点轻松有趣的东西-快速的做个资源搜索站 依稀记得十来年前,带宽还只有2M的时候,受各个论坛启发,做了可以搜索嘿 ...

  2. 阿里云上基于WordPress快速搭建个人博客

    阿里云上基于WordPress快速搭建个人博客 文章目录 阿里云上基于WordPress快速搭建个人博客 一.服务器环境: 二.环境部署: 1.重置实例密码 2.链接ECS服务器 3.安装Apache ...

  3. 开个坑, 写个阿里云开放储存服务(OSS)的C++版SDK以及客户端

    这应该是继我研究手册QQ协议后的第2个稍微正式一点的网络程序, 不只是Scoket套接字编程, 还涉及到更多的HTTP协议知识! 阿里云开放储存服务OSS官方已经提供了不少SDK, 包括PHP/Pyt ...

  4. 阿里云ECS服务器+WordPress快速搭建个人博客

    本文是转载,但完善了一些细节,精简了部分步骤,以及lnmp一键安装后的一些单独服务启动命令. 开始前准备: 一台阿里云ECS或者轻量级的服务器 Linux基础操作 喜欢捣鼓,善于思考 Windows上 ...

  5. 【阿里云学习笔记】快速搭建网站

    在ECS服务器上,执行以下命令安装Apache及其扩展包,run命令 yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql ...

  6. SpringBoot-短信验证码-快速入门Demo(含redis)(手把手教你开通阿里云短信服务到写出个最终代码来)

    B站小狂神-此博客的内容就是看了这个视频的总结(博主自己写的哦~并非转载) 视频链接-[狂神说]通俗易懂的阿里云短信业务实战教程(露脸) 您是否还在为别人的项目有短信功能自己的却没有? 您是否还在为自 ...

  7. 极智开发 | 阿里云ECS本地开发环境搭建

      欢迎关注我的公众号 [极智视界],获取我的更多笔记分享   大家好,我是极智视界,本文介绍一下 阿里云ECS本地开发环境搭建.   之前介绍过华为云的开发环境搭建,有兴趣的同学可以移步我的这篇&l ...

  8. thinkphp6对接阿里云短信服务完成定时发送短信功能

    1.导入阿里短信包 通过composer下载依赖包 composer require alibabacloud/dysmsapi-20170525 2.0.22 具体可参见阿里云短信服务 >&g ...

  9. 阿里云开放搜索实践,使用阿里云开放搜索来做网站站内搜索...

    阿里云的开放搜索已经做得很完善了,现在阿里云集成了开放搜索,只要定义好表结构,上传数据,就会自动生成索引,马上就可以搜索了,简直可以做个搜索引擎了.一起来看看. 阿里云开放搜索介绍及购买页 首先,创建 ...

最新文章

  1. firefox+linux+nginx搭建server与client通过证书双向认证环境
  2. linux中的tasklet机制【转】
  3. 历届试题 连号区间数
  4. c++ 继承机制易犯的错误
  5. 设计模式:解释器模式(Interpreter)
  6. git diff old mode 100644 new mode 100755
  7. 2字节取值范围_5G NR 下行同步SSB(2)—PSS和SSS的用途
  8. Orleans配置---持久化
  9. NBT:你想成为计算生物学家?
  10. Hadoop之YARN介绍
  11. 解决IE6下CSS兼容性的两把神器
  12. 咦,用浏览器做人脸检测,竟然这么简单?
  13. 测试经验谈:测试人怎么从 0—1 进化
  14. 记一次部署发现r2dbc连接数据库问题
  15. 常见前端bug及其修复方法_50个最常见的WordPress错误及其修复方法
  16. Eclipse版本代号
  17. win10修改服务器时间,win10设置时间服务器地址
  18. 语言 英语名称 中文名称 国家码
  19. 近红外超扫描 | 群际冲突会影响脑间同步
  20. 【OpenCV入门到精通之九】OpenCV之视频截取、图片与视频互转

热门文章

  1. Mysql 表单的创建
  2. 引入pymssql模块
  3. 微信小程序页内锚链接跳转效果
  4. PS_03_综合案例
  5. Python版超市管理系统源代码,基于django+mysql
  6. 如何修复ubuntu中检测到系统程序错误的问题
  7. 【linux】循序渐进学运维-基础篇-rpm管理
  8. 10个顶级商业思维_9个启发 | 如何用设计思维解决商业难题
  9. 2020.7.27 安装tensorflow对应的keras版本
  10. SAAS应用灰度设计