Execute these instructions after you have followed the other instructions for setting up a development virtual machine. It is assumed that you have already installed libpq5.

Installing Sphinx on the VM

  • Download the latest version of Sphinx (starting out as the ordinary tatoeba user, not superuser):
$ mkdir ~/downloads
$ cd ~/downloads/
$ wget http://sphinxsearch.com/files/sphinxsearch\_2.1.5-release-1~wheezy\_i386.deb
$ su -
$ dpkg -i sphinxsearch_2.1.5-release-1~wheezy_i386.deb
$ exit 
  • Now make the Sphinx directory and subdirectories:
$ mkdir ~/sphinx
$ cd ~/sphinx
$ mkdir indices
$ mkdir log
  • Edit docs/generate_sphinx_conf.php as follows:
    line 15
        $sourcePath = "/home/tatoeba/sphinx/indices";
    line 193-196:
        - sql_user = root
        - sql_pass = tatoeba
        - sql_db = tatoeba
        - sql_sock = /var/run/mysqld/mysqld.sock
    line 383:
        - change `port` to `listen` because the latest sphinx version uses `listen` instead of `port`.
    line 384, 385, 388:
        - log = /home/tatoeba/sphinx/log/searchd.log
        - query_log = /home/tatoeba/sphinx/log/query.log
        - pid_file = /home/tatoeba/sphinx/log/searchd.pid
  • Generate the sphinx.conf file:
$ php generate\_sphinx\_conf.php > sphinx.conf
  • As superuser, copy sphinx.conf to sphinxsearch, index, and run the service:
$ su 
$ cp sphinx.conf /etc/sphinxsearch/
$ indexer --all
$ searchd
$ exit
  • If you want to stop the service, execute:
service sphinxsearch stop

Note that every time you add new sentences, you need to index. As long as they are not indexed, the search engine is not aware of their existence. Indexation doesn't happen on the fly. On Tatoeba's server, sentences are indexed every 15 minutes or so, with a cron job. On your local machine, they are not. However, you can run the indexation manually. There are two types of index: the main index and the delta index. As long as you're not dealing with more than a few thousand sentences, you don't need the delta index.


Article available in: