This repo is no longer being maintained. Users are welcome to fork it, but we make no warranty of its functionality.
This image borrows heavily from Leo Di Donato work at leodido/dockerfiles. The The updates to the image was done to facilitate the following:
- Temporary fix for the issue of
libstemmer
that changed the name of the non-UTF8 Hungarian source files. - Flip the order of EXPOSEd ports for convenient linking.
- Mount the VOLUMEs to expose the corresponding directories.
- By default, specify a CMD to run the
indexall.sh
script. It can be overriding at runtime.
Version: 2.1.9
You can read here the official changelog.
A Sphinx Search instance builded from source.
Supports:
-
stemming (via libstemmer, link)
-
xml (with expat and iconv)
-
postgresql
-
mysql
-
odbc
-
regular expression filter (via RE2 engine, link)
-
lemmatization
/var/diz/sphinx/ru.pak
(russian dict)
-
9312
for client connections -
9306
for SQL connections
This image provides some directories for your configurations:
-
/var/idx/sphinx
-
/var/log/sphinx
-
/var/lib/sphinx
-
/var/run/sphinx
-
/var/diz/sphinx
searchd.sh
, to startsearchd
in the foreground (needed also for real-time indexes)indexall.sh
, to index all the plain indexes (i.e.,indexer --all
) defined in the configuration
The simplest use case is to start a Sphinx Search container, attach to it and do whatever you want with it:
docker run -i -t leodido/sphinxsearch /bin/bash
Assume that we want to index our documents into some real-time indexes.
Given a Sphinx Search configuration file (e.g., sphinx.conf
) in our current directory (i.e., $PWD
), we have to share its content with the container using docker option -v
.
We also want to link to exposed 9306
port to query Sphinx Search from the host machine.
So, the command to run a daemonized instance of this container is:
SS=$(docker run -i -t -v $PWD:/usr/local/etc -p 9306 -d leodido/sphinxsearch ./searchd.sh)
Now we want to see to which host address it has been linked:
docker port $SS 9306
And eventually try to connect to it:
mysql -h 0.0.0.0 -P 49174
We can now index documents into our Sphinx Search container or perform queries against it.
Assume that we want to index our documents into some plain indexes.
We need:
-
the data source files (e.g. XML files structured as demanded by the Sphinx Search's xmlpipe2 driver)
-
a valid Sphinx Search configuration file that defines our plain indexes and their sources
-
a way to querying Sphinx Search from the host machine (e.g., using IP
127.0.0.1
and port9306
)
So, assuming that in our current directory (i.e., $PWD
) we have these files, we run a daemonized instance of Sphinx Search as follow:
docker run -i -t -v $PWD:/usr/local/etc -p 127.0.0.1:9306:9306 -d leodido/sphinxsearch ./indexall.sh
This way we have indexed our documents and started serving queries.
Again, if you want to query from the host machine:
mysql -h 127.0.0.1 -P 9306