
manticoresearch/manticoreManticore Search是一款易于使用的开源快速搜索数据库,帮助从小型到大型的数千家公司(如Craigslist)在单个或数百个节点上搜索和过滤PB级文本数据,实现流全文过滤,为网站和应用添加自动补全、拼写纠错、相似推荐、分面搜索等搜索相关技术。
默认配置包含示例实时索引,并监听以下默认端口:
9306:用于MySQL客户端连接9308:用于HTTP协议连接9312:用于二进制协议连接(如集群环境)该镜像内置库,可轻松从MySQL、PostgreSQL、XML和CSV文件索引数据。
Dockerfile链接13.13.0, latest - 最新版本dev - 最新开发版本历史版本:
13.11.113.11.013.6.713.2.310.1.09.3.29.2.147.4.67.0.06.3.86.3.66.3.46.3.26.3.06.2.126.2.06.0.46.0.2
6.0.2-extra36.0.2-extra26.0.2-extra6.0.0-hf5.0.2
5.0.2-extra25.0.2-extra5.0.04.2.03.6.03.5.43.5.23.5.03.4.23.4.03.3.03.2.23.2.03.1.23.1.03.0.23.0.02.8.22.8.12.8.02.7.52.7.42.7.32.7.22.7.12.7.02.6.42.6.32.6.2适用于各种规模的企业,包括:
以下是启动Manticore容器并通过MySQL客户端登录的最简单方式:
bashdocker run --name manticore --rm -d manticoresearch/manticore && echo "等待Manticore容器启动。考虑映射数据目录以加快下次启动速度" && until docker logs manticore 2>&1 | grep -q "accepting connections"; do sleep 1; echo -n .; done && echo && docker exec -it manticore mysql && docker stop manticore
注意:退出MySQL客户端后,Manticore容器将停止并删除,数据不会保留。生产环境使用方法见下文。
镜像包含示例表,可通过以下命令加载:
sqlmysql> source /sandbox.sql
MySQL客户端历史记录中包含示例查询,可通过上下方向键查看和运行。
为实现数据持久化,需将/var/lib/manticore/目录挂载到本地存储或其他存储引擎。
容器内配置文件路径为/etc/manticoresearch/manticore.conf,如需自定义配置,需将该文件挂载到本地配置文件。此外,可通过环境变量设置配置参数。
重要:通过环境变量设置的参数优先级更高。例如,若通过环境变量
-e searchd_listen='***:mysql'和配置文件中listen = 9306:mysql同时设置,最终SQL连接将监听***端口。
默认端口9306(SQL)、9308(HTTP)、9312(二进制),根据使用需求暴露端口。示例:
bashdocker run --name manticore -v $(pwd)/data:/var/lib/manticore -p 127.0.0.1:9306:9306 -p 127.0.0.1:9308:9308 -d manticoresearch/manticore
或使用自定义配置文件:
bashdocker run --name manticore -v $(pwd)/manticore.conf:/etc/manticoresearch/manticore.conf -v $(pwd)/data:/var/lib/manticore/ -p 127.0.0.1:9306:9306 -p 127.0.0.1:9308:9308 -d manticoresearch/manticore
若需外部主机访问端口,移除
127.0.0.1:前缀。
Manticore Search Docker镜像预装了Manticore Columnar Library和Manticore Buddy。
在多容器环境中,可通过Docker Compose配置Manticore。以下是推荐的基础配置:
yamlversion: '2.2' services: manticore: container_name: manticore image: manticoresearch/manticore restart: always ports: - 127.0.0.1:9306:9306 - 127.0.0.1:9308:9308 ulimits: nproc: 65535 nofile: soft: 65535 hard: 65535 memlock: soft: -1 hard: -1 volumes: - ./data:/var/lib/manticore # - ./manticore.conf:/etc/manticoresearch/manticore.conf # 如需自定义配置,取消注释此行
除暴露9306和9308端口外,可通过docker-compose exec manticore mysql登录容器。
HTTP协议监听9308端口,映射端口后可通过curl访问:
bashdocker run --name manticore -p 9308:9308 -d manticoresearch/manticore
创建表:
bashcurl -X POST '[***] -d 'mode=raw&query=CREATE TABLE testrt ( title text, content text, gid integer)'
插入文档:
bashcurl -X POST '[***] -d'{"index":"testrt","id":1,"doc":{"title":"Hello","content":"world","gid":1}}'
执行搜索:
bashcurl -X POST '[***] -d '{"index":"testrt","query":{"match":{"*":"hello world"}}}'
默认情况下,服务器日志输出到/dev/stdout,可通过以下命令从主机查看:
bashdocker logs manticore
通过设置环境变量QUERY_LOG_TO_STDOUT=true,可将查询日志重定向到Docker日志。
以下是定义双节点集群的简单docker-compose.yml:
yamlversion: '2.2' services: manticore-1: image: manticoresearch/manticore restart: always ulimits: nproc: 65535 nofile: soft: 65535 hard: 65535 memlock: soft: -1 hard: -1 networks: - manticore manticore-2: image: manticoresearch/manticore restart: always ulimits: nproc: 65535 nofile: soft: 65535 hard: 65535 memlock: soft: -1 hard: -1 networks: - manticore networks: manticore: driver: bridge
操作步骤:
启动集群:docker-compose up
在节点1创建集群:
sql$ docker-compose exec manticore-1 mysql mysql> CREATE TABLE testrt ( title text, content text, gid integer); mysql> CREATE CLUSTER posts; Query OK, 0 rows affected (0.24 sec) mysql> ALTER CLUSTER posts ADD testrt; Query OK, 0 rows affected (0.07 sec) mysql> exit
sql$ docker-compose exec manticore-2 mysql mysql> JOIN CLUSTER posts AT 'manticore-1:9312'; mysql> INSERT INTO posts:testrt(title,content,gid) VALUES('hello','world',1); Query OK, 1 row affected (0.00 sec) mysql> exit
sql$ docker-compose exec manticore-1 mysql MySQL [(none)]> select * from testrt; +---------------------+------+-------+---------+ | id | gid | title | content | +---------------------+------+-------+---------+ | 3891565839006040065 | 1 | hello | world | +---------------------+------+-------+---------+ 1 row in set (0.00 sec) mysql> exit
推荐覆盖Docker默认ulimit设置:
bash--ulimit nofile=65536:65536
为获得最佳性能,可将表组件"mlocked"到内存中。在Docker中运行时,需添加以下参数以允许内存锁定:
bash--cap-add=IPC_LOCK --ulimit memlock=-1:-1
如需使用包含表定义的自定义配置,需挂载配置文件:
bashdocker run --name manticore -v $(pwd)/manticore.conf:/etc/manticoresearch/manticore.conf -v $(pwd)/data/:/var/lib/manticore -p






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务