# Vagrant **Repository Path**: linux_20/vagrant ## Basic Information - **Project Name**: Vagrant - **Description**: Vagrant - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-03 - **Last Updated**: 2026-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vagrant Alpine Linux 开发环境 基于 Alpine Linux 3.19 + Podman 的轻量级开发虚拟机。 ## 环境信息 | 项目 | 配置 | |------|------| | 系统 | Alpine Linux 3.19 | | 容器运行时 | Podman (兼容 Docker) | | CPU | 2 核 | | 内存 | 2 GB | | 镜像源 | 阿里云 | ## 端口转发 | 主机端口 | 虚拟机端口 | 用途 | |----------|------------|------| | 3000 | 3000 | Web 应用 | | 9306 | 9306 | Manticore SQL | | 9308 | 9308 | Manticore HTTP | | 2222 | 22 | SSH | ## 共享目录 | 主机目录 | 虚拟机目录 | |----------|------------| | F:\Vagrant | /work | ## 快速开始 ```bash # 安装 Vagrant 和 VirtualBox # https://developer.hashicorp.com/vagrant/install # https://www.virtualbox.org/wiki/Downloads # 销毁旧虚拟机(如存在) vagrant destroy -f # 创建并启动虚拟机 vagrant up # SSH 登录 vagrant ssh # 进入工作目录 cd /work ``` ## 常用命令 ```bash # 启动虚拟机 vagrant up # 停止虚拟机 vagrant halt # 重启虚拟机 vagrant reload # SSH 登录 vagrant ssh # 查看虚拟机状态 vagrant status # 销毁虚拟机 vagrant destroy -f ``` ## Podman 使用 虚拟机内已安装 Podman,命令兼容 Docker: ```bash # 运行容器 podman run -d --name nginx -p 80:80 nginx # 使用 docker 命令(已配置兼容套接字) docker ps docker-compose up -d ``` ## Manticore Search Manticore 已配置好共享目录: - 数据目录:`F:\manticore_data` ↔ `/manticore_data` - 配置文件:`F:\manticore_conf` ↔ `/etc/manticore` ### 启动 Manticore ```bash vagrant reload # 虚拟机内 podman run -d \ -p 9306:9306 \ -p 9308:9308 \ -v /manticore_data:/var/lib/manticore \ -v /etc/manticore:/etc/manticore \ --name manticore \ manticoresearch/manticore podman run -d -p9306:9306 -p9308:9308 -v /manticore_data:/var/lib/manticore --name manticore manticoresearch/manticore ``` ### 使用方式 #### HTTP API (端口 9308) ```bash # 创建表 curl -X POST 'http://localhost:9308/sql' -d 'CREATE TABLE products (title text, price float)' # 插入数据 curl -X POST 'http://localhost:9308/sql' -d "INSERT INTO products (title, price) VALUES ('iPhone 15', 999.0)" # 搜索 curl -X POST 'http://localhost:9308/sql' -d "SELECT * FROM products WHERE MATCH('iPhone')" ``` #### MySQL 协议 (端口 9306) ```bash # 使用 mysql 客户端连接 mysql -h 127.0.0.1 -P 9306 # SQL 查询 SHOW TABLES; SELECT * FROM products WHERE MATCH('iPhone'); ``` #### Docker Compose 方式 在 `/work` 目录创建 `docker-compose.yml`: ```yaml version: '3' services: manticore: image: manticoresearch/manticore ports: - "9306:9306" - "9308:9308" volumes: - /manticore_data:/var/lib/manticore - /etc/manticore:/etc/manticore ``` ```bash podman-compose up -d # 或使用 docker 命令 docker-compose up -d vagrant ssh podman pull manticoresearch/manticore ``` ## 搜索引擎对比 ### Manticore vs Meilisearch vs ZincSearch | 特性 | Manticore Search | Meilisearch | ZincSearch | |------|------------------|-------------|------------| | **类型** | 全文搜索引擎 | 即时搜索引擎 | 轻量级 ES 替代 | | **语言** | C++ | Rust | Go | | **内存占用** | 低 (~100MB) | 中 (~300MB) | 低 (~150MB) | | **索引速度** | ⚡️ 极快 | 快 | 快 | | **查询速度** | ⚡️ 极快 | 极快 | 快 | | **中文分词** | 需配置 | 内置支持 | 需配置 | | **拼音搜索** | ✅ 支持 | ✅ 支持 | ❌ 不支持 | | **模糊搜索** | ✅ 支持 | ✅ 优秀 | ✅ 支持 | | **聚合分析** | ✅ 强大 | ❌ 有限 | ✅ 支持 | | **实时性** | 近实时 | 实时 | 实时 | | **分布式** | ✅ 支持 | ❌ 单机 | ❌ 单机 | | **数据持久化** | ✅ 支持 | ✅ 支持 | ✅ 支持 | | **RESTful API** | ✅ 支持 | ✅ 优秀 | ✅ 兼容 ES | | **SQL 支持** | ✅ MySQL 协议 | ❌ | ❌ | | **适用场景** | 大数据量搜索、日志分析 | 站内搜索、即时搜索 | 日志分析、ES 替代 | ### 性能对比 #### 1. 索引速度(100 万条数据) - **Manticore**: ~30 秒 - **Meilisearch**: ~60 秒 - **ZincSearch**: ~45 秒 #### 2. 查询延迟(P99) - **Manticore**: <10ms - **Meilisearch**: <20ms - **ZincSearch**: <30ms #### 3. 内存使用 - **Manticore**: 100-200MB - **Meilisearch**: 300-500MB - **ZincSearch**: 150-300MB ### 使用场景推荐 #### ✅ 选择 Manticore 的理由: - 需要处理 **大数据量**(千万级以上) - 需要 **SQL 查询** 和聚合分析 - 需要 **分布式部署** - 需要 **低内存占用** - 已有 MySQL 生态,想平滑迁移 #### ✅ 选择 Meilisearch 的理由: - **站内搜索** 需求(电商、文档) - 需要 **即时搜索**(打字即搜索) - 需要 **优秀的中文分词** - 追求 **极简部署** 和配置 - 数据量在 **百万级以下** #### ✅ 选择 ZincSearch 的理由: - 需要 **Elasticsearch 替代品** - 日志分析和监控 - 追求 **轻量级部署** - 需要 **兼容 ES API** - 数据量在 **千万级以下** ### 快速部署对比 #### Manticore Search ```bash # Podman/Docker podman run -d \ -p 9306:9306 \ -p 9308:9308 \ -v ./data:/var/lib/manticore \ manticoresearch/manticore # 连接方式 mysql -h 127.0.0.1 -P 9306 curl http://localhost:9308/sql ``` #### Meilisearch ```bash # Podman/Docker podman run -d \ -p 7700:7700 \ -v ./data:/meili_data \ getmeili/meilisearch # 连接方式 curl http://localhost:7700 # API Key 默认空,生产环境需设置 ``` #### ZincSearch ```bash # Podman/Docker podman run -d \ -p 4080:4080 \ -e ZINC_USERNAME=admin \ -e ZINC_PASSWORD=ComplexPassword \ -v ./data:/data \ public.ecr.aws/zinclabs/zincsearch:latest # 连接方式 curl http://localhost:4080 # 兼容 Elasticsearch API ``` ### 功能特性详细对比 #### 搜索功能 | 功能 | Manticore | Meilisearch | ZincSearch | |------|-----------|-------------|------------| | 全文搜索 | ✅ | ✅ | ✅ | | 短语搜索 | ✅ | ✅ | ✅ | | 布尔搜索 | ✅ | ✅ | ✅ | | 地理位置搜索 | ✅ | ✅ | ❌ | | 同义词 | ✅ | ✅ | ✅ | | 拼写纠正 | ✅ | ✅ | ✅ | | 词干提取 | ✅ | ✅ | ✅ | | 高亮显示 | ✅ | ✅ | ✅ | | 分面搜索 | ✅ | ✅ | ✅ | | 权重调整 | ✅ | ✅ | ✅ | #### 数据管理 | 功能 | Manticore | Meilisearch | ZincSearch | |------|-----------|-------------|------------| | 实时索引 | ✅ | ✅ | ✅ | | 批量导入 | ✅ | ✅ | ✅ | | 索引快照 | ✅ | ❌ | ✅ | | 数据备份 | ✅ | ✅ | ✅ | | 索引重建 | ✅ | ✅ | ✅ | | 多索引 | ✅ | ✅ | ✅ | | 索引别名 | ✅ | ❌ | ✅ | #### 开发支持 | 功能 | Manticore | Meilisearch | ZincSearch | |------|-----------|-------------|------------| | SDK 语言 | 多种 | 多种 | 多种 | | 官方文档 | 中文 | 中文 | 英文 | | 社区活跃度 | 中 | 高 | 中 | | 更新频率 | 月 | 月 | 月 | | 商业支持 | ✅ | ✅ | ✅ | ### 成本对比 | 项目 | Manticore | Meilisearch | ZincSearch | |------|-----------|-------------|------------| | 开源协议 | GPL-2.0 | MIT | Apache-2.0 | | 商业版 | ✅ | ✅ | ✅ | | 云服务 | ✅ | ✅ | ❌ | | 维护成本 | 低 | 极低 | 低 | | 学习曲线 | 中 | 低 | 低 | ### 总结建议 - **小型项目/快速原型**: 选 Meilisearch(最简单) - **大型搜索平台**: 选 Manticore(性能最强) - **ES 替代/日志分析**: 选 ZincSearch(兼容 ES) - **中文环境**: 三者都支持,Meilisearch 体验最佳 - **预算有限**: 三者都有开源版,ZincSearch 最轻量