274 lines
6.8 KiB
Markdown
274 lines
6.8 KiB
Markdown
# 智能搜索系统 - 简单实用版
|
||
|
||
一个基于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源状态和网络连接
|
||
- **搜索问题**: 查看日志文件定位错误
|
||
- **性能问题**: 调整监控频率和结果数量限制
|
||
|
||
系统设计为轻量级和容错性,单个组件故障不会影响整体功能。 |