Data Caching Infrastructure

FastAPI → OpenSearch 网关

🌐 客户端请求

📦 API 层

入口文件

  • main.py - 入口点,//health 路由 + 异常处理
  • application.py - FastAPI 工厂,配置中间件和路由
  • lifecycle.py - startup/shutdown 生命周期管理

API v1 路由 /api/v1/search

端点 功能
POST /hybrid 混合搜索
POST /batch/ids 批量 ID 查询
POST /elasticsearch/dsl DSL 高级搜索

⚙️ 服务层

search/manager.py

  • SearchBackend 检测「local_118 或 aws」
  • 索引名称解析与别名映射
  • Shopify 代理转发逻辑
  • 结果格式化与排序

opensearch/service.py

  • 单例模式 - 客户端生命周期管理
  • 自动重试 - 3次指数退避「2s → 4s → 8s」
  • 连接池管理 - 3分钟或500请求后重置
  • 并发控制 - 信号量限制100并发

🔀 环境路由

🖥️ 本地 OpenSearch

ENVIRONMENT=local_118

192.168.10.118:9200

用户名/密码认证

☁️ AWS OpenSearch

ENVIRONMENT=aws

AWS OpenSearch Service

SigV4 认证

🛒 Shopify 特殊处理

当满足以下条件时:

  • platform = shopify
  • SHOPIFY_PROXY_LOCAL = true

转发到内网穿透地址 http://18.208.13.29:7101

📜 离线脚本

scripts/sync/

├─ linkedin_company/
│   ├─ create_index.py
│   └─ data_loaders.py
├─ linkedin_user/
└─ shopify/
    ├─ create_index.py
    └─ data_processor.py

数据导入到 OpenSearch

📚 共享库

lib/indexing/

├─ mappings/    # 索引映射
├─ settings/    # 索引设置
└─ processors/  # 数据转换
local_118awsshopify 请求数据导入