/SearchEngineZ

:globe_with_meridians:基于vue+scrapy+elasticsearch+flask实现一个简易的搜索引擎,当然搜索引擎关联的技术非常多,这里只是玩具性质的实现功能.:whale:

Primary LanguagePython

SearchEngineZ

说明

这个是自己用来练习的一个小项目 从头到尾实现一个简易的搜索引擎,搜索引擎里当然有很多核心的算法和技术,这里只做最轮廓的东西,当然了, 你也可以为公司内部,针对产品,运维,开发,测试等所产生的文档抓取,入ES,实现一个知识库,方便大家的搜索

技术栈

首页门面使用vue.js

网站内容使用flask,提供必须的接口

分布式爬虫部分,暂定知乎,伯乐在线, 微博三个网站, 每个网站10W条数据以上

爬虫采用scrapy + scrapy-redis来搭建,并且加入布隆过滤器,实现增量的爬取,所有的项目都运行在容器中,并且使用k8s管理起来

搜索引擎部分使用当下很火的ElasticSearch,,之后会根据开源项目试着自己实现一个简易搜索引擎

设计

  1. 使用百度进行的搜索的时候, 我们可以看到一个结果集, 里面有标题, 结果的详情url, 内容详情(关键词标红),所以title,detail_url,contents都是必须要采集的字段

步骤

  1. 先从一个最简单的爬虫入手(jobbole),然后入ES,然后加入布隆过滤器,实现增量爬取.
  2. 然后加入scrapy-redis,改造成分布式.
  3. 开发知乎,微博爬虫.
  4. 开发vue首页,结果页