Files
2026-04-25 19:21:03 +08:00

274 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 智能搜索系统 - 简单实用版
一个基于RSS订阅和API的智能搜索系统支持8个行业的权威信息检索和自动文档生成。
## 🌟 核心特性
- **英文优先搜索**: 默认英文搜索,包含中文关键词时自动切换
- **8行业覆盖**: 金融、AI/软件、制造业、医疗制药、快消品、零售电商、能源化工、房地产建筑
- **权威信源**: 200+ RSS源按权威级别分类官方机构 > 主流媒体 > 专业平台)
- **多种接口**: 命令行、Web界面、RSS监控器
- **自动导出**: 搜索结果自动生成DOCX报告
- **实时监控**: RSS源自动更新建立本地文章数据库
## 🚀 快速开始
### 1. 安装依赖
```bash
cd 搜索/代码实现
pip install -r requirements.txt
```
**必需依赖:**
```bash
pip install requests feedparser python-docx
```
**可选依赖 (增强功能):**
```bash
pip install flask newsapi-python pandas
```
### 2. 配置API密钥 (可选)
创建环境变量或修改 `config.py`:
```bash
# 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. 启动系统
#### 方式一: 交互命令行 (推荐新手)
```bash
python main.py
```
#### 方式二: Web界面
```bash
python main.py --mode web --port 5000
```
打开 http://localhost:5000
#### 方式三: 直接搜索
```bash
python main.py --query "AI breakthrough 2024" --export
```
#### 方式四: 启动RSS监控器
```bash
python main.py --mode monitor
```
## 📖 使用指南
### 命令行搜索示例
```bash
# 基础搜索
>>> 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`:
```python
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`:
```python
SEARCH_CONFIG = {
'max_results_per_source': 50, # 每源最大结果数
'min_relevance_score': 0.3, # 最低相关性分数
'keywords_for_china': ['中国', '国内'] # 中文检测关键词
}
```
### RSS监控频率
调整 `RSS_MONITOR_CONFIG`:
```python
RSS_MONITOR_CONFIG = {
'check_interval': 3600, # 检查间隔(秒) - 3600=1小时
'max_retries': 3, # 最大重试次数
'timeout': 30 # 请求超时(秒)
}
```
## 🎯 使用场景
### 场景一: 行业研究
```bash
python main.py --query "renewable energy investment 2024" --industry energy_chemical --export
```
### 场景二: 竞争情报
```bash
python main.py --query "Tesla quarterly results" --industry ai_software --export
```
### 场景三: 政策追踪
```bash
python main.py --query "FDA drug approval" --industry healthcare_pharma --export
```
### 场景四: 技术趋势
```bash
python main.py --query "quantum computing breakthrough" --industry ai_software --export
```
## 📊 导出文档格式
生成的DOCX文档包含:
1. **标题页**: 搜索关键词、行业、日期
2. **搜索信息**: 参数、结果统计
3. **文章列表**:
- 标题和来源信息
- 权威级别标注
- 发布时间和相关性评分
- 文章摘要
- 原文链接 (可点击)
文件命名规则:
- 英文: `YYYYMMDD_industry_keywords.docx`
- 中文: `YYYYMMDD_industry_keywords_CN.docx`
## 🔍 故障排除
### 常见问题
**Q: RSS源无法访问怎么办**
A: 系统会自动重试和降级处理,单个源失败不影响整体搜索。
**Q: 搜索结果太少?**
A:
1. 检查关键词是否过于具体
2. 尝试不指定行业进行全局搜索
3. 确保RSS监控器已运行一段时间累积数据
**Q: 如何提高搜索质量?**
A:
1. 配置NewsAPI等付费API
2. 添加更多RSS源
3. 调整相关性评分算法
### 日志查看
```bash
# 查看系统日志
tail -f data/search_system.log
# 查看RSS监控状态
python -c "from rss_monitor import RSSMonitor; print(RSSMonitor().get_monitor_status())"
```
### 数据库维护
```bash
# 查看统计信息
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访问)
### 扩展建议
1. **数据库**: SQLite → MySQL/PostgreSQL (大规模数据)
2. **搜索**: 基础匹配 → Elasticsearch (全文搜索)
3. **NLP**: 简单关键词 → BERT/GPT (语义搜索)
4. **缓存**: 无 → Redis (快速响应)
## 📞 技术支持
- **文档问题**: 检查RSS源状态和网络连接
- **搜索问题**: 查看日志文件定位错误
- **性能问题**: 调整监控频率和结果数量限制
系统设计为轻量级和容错性,单个组件故障不会影响整体功能。