NewsSearchEngine

所属分类:搜索引擎
开发工具:C++
文件大小:44244KB
下载次数:0
上传日期:2021-09-04 10:44:33
上 传 者sh-1993
说明:  新闻搜索引擎
(News search engine)

文件列表:
LICENSE (35149, 2021-09-04)
NewsProcess (0, 2021-09-04)
NewsProcess\merge_file.py (1032, 2021-09-04)
NewsProcess\process.py (4549, 2021-09-04)
NewsProcess\rule.py (1050, 2021-09-04)
NewsProcess\statistics.py (1839, 2021-09-04)
NewsSpider (0, 2021-09-04)
NewsSpider\NewsSpider (0, 2021-09-04)
NewsSpider\NewsSpider\items.py (475, 2021-09-04)
NewsSpider\NewsSpider\middlewares.py (2448, 2021-09-04)
NewsSpider\NewsSpider\pipelines.py (1243, 2021-09-04)
NewsSpider\NewsSpider\settings.py (592, 2021-09-04)
NewsSpider\NewsSpider\spiders (0, 2021-09-04)
NewsSpider\NewsSpider\spiders\__init__.py (44, 2021-09-04)
NewsSpider\NewsSpider\spiders\netease.py (7091, 2021-09-04)
NewsSpider\NewsSpider\spiders\sina.py (3992, 2021-09-04)
NewsSpider\NewsSpider\spiders\sohu.py (3779, 2021-09-04)
NewsSpider\NewsSpider\utils (0, 2021-09-04)
NewsSpider\NewsSpider\utils\bloom.py (1787, 2021-09-04)
NewsSpider\main.py (1370, 2021-09-04)
NewsSpider\scrapy.cfg (263, 2021-09-04)
NewsWeb (0, 2021-09-04)
NewsWeb\app (0, 2021-09-04)
NewsWeb\app\__init__.py (42, 2021-09-04)
NewsWeb\app\forms.py (42, 2021-09-04)
NewsWeb\app\models.py (42, 2021-09-04)
NewsWeb\app\static (0, 2021-09-04)
NewsWeb\app\static\404.jpeg (9815, 2021-09-04)
NewsWeb\app\static\style.css (7331, 2021-09-04)
NewsWeb\app\static\toggle-theme.js (692, 2021-09-04)
NewsWeb\app\templates (0, 2021-09-04)
NewsWeb\app\templates\about.html (98, 2021-09-04)
NewsWeb\app\templates\components (0, 2021-09-04)
NewsWeb\app\templates\components\base.html (1084, 2021-09-04)
NewsWeb\app\templates\components\footer.html (334, 2021-09-04)
NewsWeb\app\templates\components\header.html (491, 2021-09-04)
NewsWeb\app\templates\components\search.html (211, 2021-09-04)
NewsWeb\app\templates\detail.html (123, 2021-09-04)
... ...

# 新闻搜索引擎 使用 Python 和 C++ 结合实现的新闻搜索引擎系统,本系统主要包括数据爬取、根据 BM25 算法进行搜索排序以及热门搜索等功能。 ## 效果展示 ![](https://github.com/hiyoung123/NewsSearchEngine/blob/master/Resource/Sep-04-2021%2017-58-34.gif) ## 下载系统 使用 Scrapy 框架,爬取新浪新闻、网易新闻和搜狐新闻每日滚动新闻,进行增量爬取。通过 BloomFilter 进行网页 URL 过滤,保证爬取网页唯一。 ### 依赖 * scrapy * redis:代码依赖 redis 数据库,使用 BloomFilter 进行 URL 过滤,所以先安装好 Redis 数据库,并在使用中更改数据库配置(NewsSpider/utils/BloomFilter.py)。 ### 使用 进入 NewsSpider 目录下,通过 main.py 文件执行操作,爬取对应网站的新闻,详细说明请参考[NewsSpider](https://github.com/hiyoung123/NewsSpider) ## 分析系统 对爬取的到的新闻数据进行合并,并且进行一些列预处理,比如去除 html 标签等操作。并将处理后的数据建立倒排索引。 ### 依赖 * pandas * jieba * numpy * pymysql ### 使用 进入 NewsProcess 目录,执行对应操作。 * Merge_file:将爬取到的多个 csv 文件合并 * Process:处理 csv 文件中的新闻数据,包括去除 html 标记,中文分词等操作。 * statistics:统计新闻词频,文档长度等信息,并建立倒排索引文件 news.json,同时将新闻数据插入到 mysql 数据库中。 在该文件中配置数据库信息。 ### mysql 数据库配置 * 创建数据库 ``` bash create database webserver; ``` * 创建表 ``` bash create table news(id int, title char(255), content text, url char(255), primary key(id)); ``` ## 搜索服务 本系统后端是由 brpc 搭建的多个服务相互调用的 rpc 服务。 * NLP Server:提供了分词、召回和排序服务。 * Search Server:作为搜索服务的统一入口服务,通过调用 NLP Server 提供的服务进行搜索处理。并且提供了热门查询搜索的服务。 ### 依赖 * c++11 * cppjieba * hiredis * brpc * protobuf * mysqlclient * nlohmann/json ### 使用 * 开启 NLP 相关服务 ``` bash cd brpc_nlp_service make server ./bin/server ``` * 开启 Search 服务 ```bash cd brpc_search_service make server ./bin/server ``` * 数据库相关配置在 brpc_search_service/code/service/search.hpp 文件中 ## 前端展示 使用 Flask 框架,进行页面展示以及前端逻辑操作。 ### 依赖 * Flask ### 使用 直接进入 NewsWeb 目录,执行 run.py 程序即可。 修改调用后台服务信息:NewsWeb/app/views.py ## TODO * 优化整体模块代码结构,目前代码模块整体流程不连续,无法自动化执行。 * 优化连接池代码,Mysql 和 Redis 连接池统一继承连接池类,减少重复代码 * 优化数据配置,改为由配置文件提供,减少代码修改。 * 添加搜索 Cache 机制 * 添加语义召回等召回策略 * 完善 README.md 文档

近期下载者

相关文件


收藏者