docker Sphinx是一款基于SQL的高性能全文检索引擎
使用 Docker 运行 Sphinx 是一个非常便捷的方式。目前社区中最主流、维护最活跃的镜像是macbre/sphinxsearch。下面是一些常用的镜像和快速上手指南。 常用 Docker 镜像macbre/sphinxsearch最推荐更新频繁支持 Sphinx 3.x。dockerpull macbre/sphinxsearch:latestsphinxsearch/sphinxsearch官方镜像但更新不频繁。dockerpull sphinxsearch/sphinxsearch其他备选镜像sunfjun/coreseek集成了中文分词的 Coreseek 版本。marijngiesen/sphinxsearch-alpine基于 Alpine Linux体积小巧。centurylink/sphinx基于 CentOS版本较旧2.1.9。 快速上手1. 使用 Docker 命令行最直接的运行方式以macbre/sphinxsearch为例# 1. 拉取镜像dockerpull macbre/sphinxsearch:latest# 2. 准备配置文件和数据目录mkdir-p./sphinx_data ./sphinx_conf# 你需要将你的 sphinx.conf 配置文件放入 ./sphinx_conf 目录# 3. 首次运行创建索引dockerrun--rm-v./sphinx_data:/opt/sphinx/indexes-v./sphinx_conf:/opt/sphinx/conf macbre/sphinxsearch:latest indexer--all# 4. 启动 Sphinx 服务dockerrun-d--namesphinx-server\-p9306:9306\-v./sphinx_data:/opt/sphinx/indexes\-v./sphinx_conf:/opt/sphinx/conf\macbre/sphinxsearch:latest注意macbre/sphinxsearch镜像内索引文件默认存放在/opt/sphinx/indexes配置文件在/opt/sphinx/conf。2. 使用 Docker Compose对于更复杂的项目推荐使用docker-compose.yml。version:3.7services:sphinx:image:macbre/sphinxsearch:3.8.1# 推荐使用具体版本号container_name:sphinx-serverports:-9306:9306# SphinxQL 端口# - 9312:9312 # 如需 API 端口可取消注释volumes:-./data:/opt/sphinx/indexes# 索引数据存放目录-./sphinx.conf:/opt/sphinx/conf/sphinx.conf# 配置文件mem_limit:512m# 限制内存使用启动步骤创建data目录和sphinx.conf配置文件。生成索引docker-compose run sphinx indexer --all。后台启动docker-compose up -d。⚙️ 核心配置与连接端口映射Sphinx 默认使用9306端口SphinxQL和9312端口API。记得在docker run或docker-compose.yml中做好映射。环境变量部分镜像支持通过环境变量配置数据库连接例如dockerrun-d-p9306:9306\-eMYSQL_HOSTmy-mysql-host\-eMYSQL_USERmyuser\-eMYSQL_PASSWORDmypassword\sphinxsearch/sphinxsearch连接 Sphinx容器启动后你可以通过SphinxQL协议使用任何 MySQL 客户端连接宿主机的9306端口来操作 Sphinx。mysql-h127.0.0.1-P9306 注意事项配置文件容器启动需要有效的sphinx.conf否则会报错退出。先建索引后启服务务必先执行indexer创建好索引再启动searchd服务否则服务会因找不到索引文件而报错。中文支持官方镜像不支持中文分词。如有需求可考虑sunfjun/coreseek等第三方镜像。版本与客户端注意 Sphinx 客户端如sphinxapi.php的版本要与服务端匹配否则可能报错。 参考资源官方文档Sphinx 官方网站GitHub 仓库macbre/docker-sphinxsearch分布式部署Distributed Sphinx Search in Docker Containers

相关新闻

最新新闻

日新闻

周新闻

月新闻