# sese-engine Go 重构版 Python 原版的 Go 语言重构,使用标准英文命名,单二进制部署。 ## 目录结构 ``` sese-engine-go/ ├── main.go # 主入口,goroutine 启动所有模块 ├── go.mod ├── config/ │ └── config.go # 全局配置参数 ├── storage/ │ ├── types.go # 核心数据类型定义 │ └── store.go # Redis + MySQL 存储层 ├── crawler/ │ ├── crawler.go # BFS 爬虫调度 │ └── fetcher.go # HTTP 获取 + robots.txt + 限流 ├── parser/ │ └── parser.go # HTML 解析 ├── analyzer/ │ └── analyzer.go # 分词 + 关键词权重 + 语言检测 ├── search/ │ └── server.go # 搜索 API + 收获服务 ├── backlink/ │ └── backlink.go # 反向链接计算 └── info/ └── info.go # 繁荣表 / 调整表 / 屏蔽词 ``` ## 依赖项 | Go 包 | 用途 | |-------|------| | `github.com/yanyiwu/gojieba` | 中文分词 | | `github.com/pemistahl/lingua-go` | 语言检测(内置模型) | | `github.com/redis/go-redis/v9` | Redis 客户端(高性能内存存储) | | `github.com/go-sql-driver/mysql` | MySQL 驱动(持久化存储) | | `github.com/andybalholm/brotli` | Brotli 压缩 | | `golang.org/x/net/html` | HTML 解析 | ## 构建与运行 ```bash # 下载依赖(需要 CGo 编译器,用于 gojieba) go mod tidy # 构建 go build -o sese-engine . # 运行 ./sese-engine --storage ./savedata --entry https://zh.wikipedia.org/ ``` ## 架构说明 - **Redis**:高性能内存存储,用于实时索引读写 - **MySQL**:持久化存储,用于数据备份和复杂查询 - **内存聚合**:写入先到 Redis,定期合并到 MySQL ## 注意事项 1. **CGo 依赖**:gojieba 需要 C/C++ 编译器(gcc/clang)。 2. **Redis + MySQL**:需要提前部署并配置连接参数。 3. **配置文件**:`config/config.yml` 中配置数据库连接信息。