6.8 KiB
6.8 KiB
智能搜索系统 - 简单实用版
一个基于RSS订阅和API的智能搜索系统,支持8个行业的权威信息检索和自动文档生成。
🌟 核心特性
- 英文优先搜索: 默认英文搜索,包含中文关键词时自动切换
- 8行业覆盖: 金融、AI/软件、制造业、医疗制药、快消品、零售电商、能源化工、房地产建筑
- 权威信源: 200+ RSS源,按权威级别分类(官方机构 > 主流媒体 > 专业平台)
- 多种接口: 命令行、Web界面、RSS监控器
- 自动导出: 搜索结果自动生成DOCX报告
- 实时监控: RSS源自动更新,建立本地文章数据库
🚀 快速开始
1. 安装依赖
cd 搜索/代码实现
pip install -r requirements.txt
必需依赖:
pip install requests feedparser python-docx
可选依赖 (增强功能):
pip install flask newsapi-python pandas
2. 配置API密钥 (可选)
创建环境变量或修改 config.py:
# NewsAPI (可选 - 增强英文搜索)
export NEWSAPI_KEY="your_newsapi_key"
# Twitter API (可选 - 社交媒体搜索)
export TWITTER_BEARER_TOKEN="your_twitter_token"
# Alpha Vantage (可选 - 金融数据)
export ALPHA_VANTAGE_KEY="your_alphavantage_key"
3. 启动系统
方式一: 交互命令行 (推荐新手)
python main.py
方式二: Web界面
python main.py --mode web --port 5000
方式三: 直接搜索
python main.py --query "AI breakthrough 2024" --export
方式四: 启动RSS监控器
python main.py --mode monitor
📖 使用指南
命令行搜索示例
# 基础搜索
>>> AI ethics regulation
# 行业搜索
>>> search renewable energy policy
# 中文搜索 (自动检测)
>>> 英伟达最新财报
# 查看统计
>>> stats
# 查看历史
>>> history
# 帮助
>>> help
搜索语言自动检测
- 英文搜索:
AI breakthrough,Tesla earnings,oil prices - 中文搜索:
中国AI政策,英伟达财报,新能源汽车 - 强制中文: 包含关键词:
中国,国内,A股,人民币,央行
支持的行业
| 行业代码 | 中文名称 | 主要信源 |
|---|---|---|
finance |
金融行业 | Fed, SEC, Bloomberg, Reuters |
ai_software |
AI与软件 | arXiv, Google AI, OpenAI, TechCrunch |
manufacturing |
制造业 | ISO, IEEE, Industry Week |
healthcare_pharma |
医疗制药 | FDA, NIH, STAT News |
fmcg |
快消品 | Nielsen, Euromonitor |
ecommerce_retail |
零售电商 | Shopify, eMarketer |
energy_chemical |
能源化工 | IEA, Energy.gov |
real_estate |
房地产建筑 | HUD, Construction Dive |
📁 文件结构
搜索/代码实现/
├── main.py # 主程序入口
├── config.py # 配置文件
├── database.py # 数据库操作
├── search_engine.py # 搜索引擎
├── rss_monitor.py # RSS监控器
├── document_exporter.py # 文档导出器
├── database_schema.sql # 数据库结构
├── requirements.txt # 依赖包
├── data/ # 数据目录
│ ├── search_system.db # SQLite数据库
│ └── search_system.log # 系统日志
└── 新闻/ # 导出文档目录
└── *.docx # 生成的报告
🔧 高级配置
自定义RSS源
编辑 config.py 中的 RSS_SOURCES:
RSS_SOURCES = {
'finance': [
{
'name': 'Your Custom Source',
'url': 'https://example.com/rss.xml',
'authority_level': 2, # 1=官方, 2=主流, 3=专业
'language': 'en'
}
]
}
调整搜索参数
修改 config.py 中的 SEARCH_CONFIG:
SEARCH_CONFIG = {
'max_results_per_source': 50, # 每源最大结果数
'min_relevance_score': 0.3, # 最低相关性分数
'keywords_for_china': ['中国', '国内'] # 中文检测关键词
}
RSS监控频率
调整 RSS_MONITOR_CONFIG:
RSS_MONITOR_CONFIG = {
'check_interval': 3600, # 检查间隔(秒) - 3600=1小时
'max_retries': 3, # 最大重试次数
'timeout': 30 # 请求超时(秒)
}
🎯 使用场景
场景一: 行业研究
python main.py --query "renewable energy investment 2024" --industry energy_chemical --export
场景二: 竞争情报
python main.py --query "Tesla quarterly results" --industry ai_software --export
场景三: 政策追踪
python main.py --query "FDA drug approval" --industry healthcare_pharma --export
场景四: 技术趋势
python main.py --query "quantum computing breakthrough" --industry ai_software --export
📊 导出文档格式
生成的DOCX文档包含:
- 标题页: 搜索关键词、行业、日期
- 搜索信息: 参数、结果统计
- 文章列表:
- 标题和来源信息
- 权威级别标注
- 发布时间和相关性评分
- 文章摘要
- 原文链接 (可点击)
文件命名规则:
- 英文:
YYYYMMDD_industry_keywords.docx - 中文:
YYYYMMDD_industry_keywords_CN.docx
🔍 故障排除
常见问题
Q: RSS源无法访问怎么办? A: 系统会自动重试和降级处理,单个源失败不影响整体搜索。
Q: 搜索结果太少? A:
- 检查关键词是否过于具体
- 尝试不指定行业进行全局搜索
- 确保RSS监控器已运行一段时间累积数据
Q: 如何提高搜索质量? A:
- 配置NewsAPI等付费API
- 添加更多RSS源
- 调整相关性评分算法
日志查看
# 查看系统日志
tail -f data/search_system.log
# 查看RSS监控状态
python -c "from rss_monitor import RSSMonitor; print(RSSMonitor().get_monitor_status())"
数据库维护
# 查看统计信息
python -c "from database import DatabaseManager; print(DatabaseManager().get_statistics())"
# 手动检查RSS源
python -c "from rss_monitor import RSSMonitor; print(RSSMonitor().manual_check_source(1))"
🚀 性能优化
建议配置
- CPU: 2核心以上 (并行RSS处理)
- 内存: 4GB以上 (大量文章缓存)
- 存储: 10GB以上 (数据库和文档)
- 网络: 稳定外网连接 (RSS和API访问)
扩展建议
- 数据库: SQLite → MySQL/PostgreSQL (大规模数据)
- 搜索: 基础匹配 → Elasticsearch (全文搜索)
- NLP: 简单关键词 → BERT/GPT (语义搜索)
- 缓存: 无 → Redis (快速响应)
📞 技术支持
- 文档问题: 检查RSS源状态和网络连接
- 搜索问题: 查看日志文件定位错误
- 性能问题: 调整监控频率和结果数量限制
系统设计为轻量级和容错性,单个组件故障不会影响整体功能。