Files
20250715-66bfff96/代码实现/README.md
2026-04-25 19:21:03 +08:00

6.8 KiB
Raw Blame History

智能搜索系统 - 简单实用版

一个基于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

打开 http://localhost: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文档包含:

  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. 调整相关性评分算法

日志查看

# 查看系统日志
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访问)

扩展建议

  1. 数据库: SQLite → MySQL/PostgreSQL (大规模数据)
  2. 搜索: 基础匹配 → Elasticsearch (全文搜索)
  3. NLP: 简单关键词 → BERT/GPT (语义搜索)
  4. 缓存: 无 → Redis (快速响应)

📞 技术支持

  • 文档问题: 检查RSS源状态和网络连接
  • 搜索问题: 查看日志文件定位错误
  • 性能问题: 调整监控频率和结果数量限制

系统设计为轻量级和容错性,单个组件故障不会影响整体功能。