杂货数据服务器

一个用于处理和分析杂货数据的服务器,支持Elasticsearch和Redis集群的数据存储与检索。

  • by jessalva7
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jessalva7/grocery-mcp-server

使用说明

杂货MCP服务器

设置

数据集设置

  1. 创建数据集目录:
mkdir dataset
  1. 从Kaggle下载杂货数据集:
kaggle datasets download -d maximsakhan/rc-superstore-grocery-data -p dataset/
  1. 提取数据集:
unzip dataset/rc-superstore-grocery-data.zip -d dataset/

该数据集包含每月的杂货数据文件:

  • 杂货_数据_詹_2025.csv
  • 杂货店_数据_网站_2025.csv
  • 杂货_数据_ 2025.csv
  • 杂货店_数据_apr_2025.csv
  • 杂货_数据_ 2025.csv
  • 杂货_数据_ un_2025.csv
  • 杂货_数据_ ul_2025.csv
  • 杂货店_数据_aug_2025.csv
  • 杂货_数据_sep_2023.csv
  • 杂货_数据_sep_2023_clean.sv

Elasticsearch设置

  1. 使用Docker Compose启动Elasticsearch:
docker-compose up -d
  1. 验证Elasticsearch是否正在运行:
curl http://localhost:9200
  1. 要停止Elasticsearch:
docker-compose down
  1. 使用映射创建Elasticsearch索引:
./create_index.sh
  1. 安装Python依赖项:
pip install -r requirements.txt
  1. 用类别映射填充Redis集群:
python populate_categories.py
  1. 将数据引入Elasticsearch:
python ingest_data.py

Docker Compose配置包括:

  • Elasticsearch 8.19.2(ARM64版本)
  • 单节点开发设置
  • 为简单起见,已禁用安全性
  • 具有命名卷的数据持久性
  • 服务监控的健康检查
  • Redis集群(3个节点)用于存储类别键值
  • 自动群集初始化

数据模式

数据集包含具有不同架构的文件:

架构类型

  • 2023格式:7-9列的简单模式(名称、当前价格、先前价格等)
  • 2025格式:复杂的电子商务模式,有54-66列(产品ID、品牌、定价详情等)

统一架构

统一的模式(unified_schema.json)已创建用于规范所有文件格式的数据。关键映射包括:

统一字段 2025格式 2023格式
productId productId 产品ID
名称 标题 姓名
当前价格 定价.price 当前价格
上一个价格 定价.was价格 上一个价
类别 - 类别
productUrl 链接 产品URL

看 unified_schema.json 以获取完整的字段映射和转换规则。