(待续,未完...)
经历了很多版本的迭代升级,期间采用过机器学习、深度学习、tensorflow 和 PaddlePaddle,经历大量的开发测试与项目实战经验。
(开源技术清单)
(思维导图)
通过SmarterAPI与Elasticsearch对接,将内部整套数据处理流程完成后对外输出。
URL去重
采用了redis集群
内容去重
采用Elasticsearch内部的查询将文章标题一样的内容检索过滤掉。
自动提取字段,标题、正文、时间、作者、来源 等。
百度飞桨
将文章通过“海明距离”算法生成加密串码存储在clickhouse集群中,通过clickhouse距离查询方法实现,文章相似度聚类。
为了储存海量的数据,同时还能保证系统的性能和运行效率,我们将一条数据储存了多份,用储存空间换取查询时间。
MySQL
在系统中储存两部分相关的信息内容,系统配置和临时脏数据储存。
redis
在系统中除了作为系统缓存,还作为站点数据采集的index索引库。
kafak
由于数据处理的过程比较多,而且数据量很大,因此采用分布式以及异步的方式对海量数据加工处理。
Elasticsearch
储存加工好的数据,以及打上各种标签的数据,储存在分布式搜索中,这样便于用户对数据的检索。
MongoDB
带样式的文章正文原始网页储存在MongoDB中。
Clickhouse
将每篇文章指纹及海明距离储存在clickhouse中,以便于对相似度和文章主题聚类的计算。
需要定期对 Elasticsearch、Mongodb 中存储的数据删除,同时还要将Mongodb中的表删除,否则磁盘空间容量不会减少。