ARTS 第52周

ARTS (第52周)

积累自己。

Algorithm 算法

小型搜索引擎

简介

实现了搜索引擎的爬取、构建索引功能。

并使用Socket和NIO,自定义一个简易的http服务器。实现浏览器使用搜索引擎的功能。

项目地址

1
https://github.com/la-huan/small_search_engine

实现思路

核心的实现思路是倒排索引。

功能分为三部分

1、爬取数据,提取有用的信息,并倒排索引。

首先维护若干个种子URL,放入URL队列。

然后不断从队列里获取URL,使用这些URL爬取信息,分析返回的信息,从返回的信息中提取URL再放入队列,并从中提取有用的信息,如网页的keyword、description等,再将信息进行分词,以统计出每一个URL里有哪些分词。最后再进行倒排索引。形成类似每个词对应多个URL的索引,并进行报错。

索引结果如:

1
8[1,2,3]   //词为8,所对应的URL为1,2,3。

2、根据倒排索引的结果,快速查询结果。

输入要查询的信息,将查询信息进行分词。

根据分词查找索引,即可快速找出所有匹配的URL信息。

3、自定义的简易HTTP服务器

使用Socket和NIO,自建一个简易的http服务器。实现浏览器使用搜索引擎的功能。

使用NIO的Select方法,使用非阻塞式IO处理请求。

根据请求内容,分别处理首页请求和查询请求,做对应的处理。

Review 英文文章

https://spring.io/guides/gs/relational-data-access/

spring整合JDBC,即spring的 JdbcTemplate

Tip 技巧

HTTP请求报文

一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据。

HTTP响应报文

同样的,HTTP响应报文也由三部分组成:响应行、响应头、响应体

https://www.cnblogs.com/ldq2016/p/9055933.html

HTTP协议其实就是基于TCP协议的,在TCP协议的基础上写HTTP的报文 如报文头等。所以利用SOCKET就可以实现一个简单的HTTP服务器。

Share 分享

https://www.cnblogs.com/ldq2016/p/9055933.html HTTP请求/响应报文结构

https://www.jianshu.com/p/6bdee8cfee90 [NIO] selector 为什么无限触发就绪事件