
fmgp/prism-indexerPRISM Indexer是一个轻量级、高性能的数据索引工具,旨在为用户提供高效的数据索引、存储和查询能力。它能够快速处理结构化和非结构化数据,构建高效索引,并支持低延迟的数据检索,适用于需要实时或近实时数据查询的应用场景。该工具通过Docker容器化部署,具备环境隔离、部署便捷、配置灵活等特点,可快速集成到各类应用架构中。
docker run命令部署bashdocker run -d \ --name prism-indexer \ -p 8080:8080 \ # 映射服务端口(容器内默认8080) -v /host/path/index:/app/index \ # 挂载索引数据目录(持久化数据) -v /host/path/config:/app/config \ # 挂载配置文件目录(可选) -e INDEX_PATH=/app/index \ # 容器内索引存储路径 -e LOG_LEVEL=info \ # 日志级别(debug/info/warn/error) -e MAX_CONCURRENT_REQUESTS=100 \ # 最大并发请求数 -e INDEX_REFRESH_INTERVAL=60s \ # 索引自动刷新间隔 prism/indexer:latest # 镜像名称及标签
docker-compose部署创建docker-compose.yml文件:
yamlversion: '3.8' services: prism-indexer: image: prism/indexer:latest container_name: prism-indexer restart: unless-stopped # 异常退出时自动重启 ports: - "8080:8080" volumes: - ./index-data:/app/index # 本地索引数据目录 - ./config:/app/config # 本地配置文件目录(可选) environment: - INDEX_PATH=/app/index - LOG_LEVEL=info - MAX_CONCURRENT_REQUESTS=100 - INDEX_REFRESH_INTERVAL=60s - DATA_FORMAT=json # 默认数据格式(json/csv/text) - QUERY_TIMEOUT=5s # 查询超时时间 networks: - app-network # 自定义网络(可选,用于与其他服务通信) networks: app-network: driver: bridge
启动服务:
bashdocker-compose up -d
| 参数名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
PORT | 服务监听端口 | 8080 | 1-65535 |
INDEX_PATH | 索引数据存储路径 | /app/index | 容器内可写路径 |
LOG_LEVEL | 日志输出级别 | info | debug, info, warn, error |
MAX_CONCURRENT_REQUESTS | 最大并发请求数 | 50 | 1-1000 |
INDEX_REFRESH_INTERVAL | 索引自动刷新间隔(数据更新后生效) | 30s | 格式:{数字}s(如60s) |
DATA_FORMAT | 默认数据格式 | json | json, csv, text |
QUERY_TIMEOUT | 查询请求超时时间 | 3s | 格式:{数字}s(如5s) |
MAX_INDEX_SIZE | 单索引最大大小限制(防止磁盘占满) | 10GB | 格式:{数字}{B/K/M/G}(如5GB) |
若需更复杂的配置(如自定义索引字段、查询规则),可通过挂载配置文件实现。配置文件需命名为config.yaml,放置于/app/config目录(通过-v挂载),示例:
yamlindex: fields: # 自定义索引字段(仅结构化数据生效) - name: content type: text # 文本类型(支持全文检索) - name: timestamp type: datetime # 时间类型(支持范围查询) - name: priority type: integer # 整数类型(支持比较查询) query: default_limit: 100 # 默认查询结果条数 max_limit: 1000 # 最大查询结果条数限制
bash# 查看容器运行状态 docker ps | grep prism-indexer # 查看服务日志(验证启动是否正常) docker logs -f prism-indexer
若日志中出现"PRISM Indexer started successfully on port 8080",表示服务启动成功。
通过HTTP POST请求添加数据(默认API端点:/api/index):
bash# 添加单条JSON数据 curl -X POST http://localhost:8080/api/index \ -H "Content-Type: application/json" \ -d '{ "id": "data-001", "content": "PRISM Indexer测试数据", "timestamp": "2023-10-01T12:00:00Z", "priority": 1 }' # 批量添加CSV数据(需指定Content-Type为text/csv) curl -X POST http://localhost:8080/api/index/batch \ -H "Content-Type: text/csv" \ -d 'id,content,timestamp,priority data-002,批量测试数据1,2023-10-01T12:01:00Z,2 data-003,批量测试数据2,2023-10-01T12:02:00Z,3'
通过HTTP GET请求查询数据(默认API端点:/api/query):
bash# 关键词查询(搜索content字段包含"测试"的数据) curl "http://localhost:8080/api/query?q=测试" # 条件查询(timestamp >= 2023-10-01且priority > 1) curl "http://localhost:8080/api/query?timestamp>=2023-10-01T00:00:00Z&priority>1" # 限制返回条数 curl "http://localhost:8080/api/query?q=测试&limit=10"
bash# 停止容器 docker stop prism-indexer # 重启容器 docker restart prism-indexer # 删除容器(保留数据卷) docker rm prism-indexer
INDEX_PATH)需通过-v挂载到宿主机,避免容器删除后数据丢失MAX_CONCURRENT_REQUESTS和INDEX_REFRESH_INTERVAL,平衡性能和资源占用LOG_LEVEL=warn或error,减少日志量;调试时使用debug级别MAX_INDEX_SIZE或分片索引(多实例部署)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务