如何在 sphinxsearch Docker 容器中运行索引器?

问题描述

我正在使用 macbre/sphinxsearch/ 泊坞窗图像。 我为卷创建了目录,并使用命令运行容器:

podman run --name sphinxsearch -p 36307:36307 -v ~/podman/volumes/sphinxsearch/:/opt/sphinx/index:z -v ./sphinx.conf:/opt/sphinx/conf/sphinx.conf:z --rm macbre/sphinxsearch

我得到一个错误,因为索引不是由 indexer 创建的:

WARNING: index 'test1': prealloc: Failed to open /opt/sphinx/index/test1.sph: No such file or directory; NOT SERVING
FATAL: no valid indexes to serve

在这种情况下我应该如何运行索引器?

解决方法

在运行 searchd 守护进程之前,您首先需要构建索引。为此,通过容器运行第一个索引器作业:

podman run -v $VOLPATH/sphinxsearch/index/:/opt/sphinx/index:z \
-v $VOLPATH/sphinxsearch/sphinx.conf:/opt/sphinx/conf/sphinx.conf:z \
--rm macbre/sphinxsearch indexer --all --config /opt/sphinx/conf/sphinx.conf

稍后,当容器已经开始工作时,您可以使用以下命令刷新索引:

podman exec -it sphinxsearch indexer --rotate --all --config /opt/sphinx/conf/sphinx.conf

我还在帖子中记录了整个过程: Running SphinxSearch in Podman container

感谢@Manticore-Search 和@macbre 指明方向。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...