Mediawiki extensions: sphinxsearch
From wikinotes
WARNING:
The sphinxsearch mediawiki extension requires a version of sphinxsearch that is no longer maintained.
The unsupported sphinxsearch could no longer be built with packages for a modern OS.
I have moved to mediawiki extensions: cirrussearch - it is the new standard for all wikimedia sites.
Updates/Troubleshooting
If updating, to start clean:
service sphinxsearch stop
ps -aux | grep -i searchd # check if sphinxsearch is stopped
rm /var/db/sphinxsearch/data/wiki_*
rm /var/log/sphinxsearch/*
When troubleshooting a sphinxsearch process that has not started (check for searchd
,
check the logs in
/var/db/sphinxsearch/*.log
Install SphinxSearch Extension
curl -O# https://github.com/wikimedia/mediawiki-extensions-SphinxSearch/archive/master.tar.gz -o /usr/local/www/mediawiki/extensions
tar -xvf /usr/local/www/mediawiki/extensions/master.tar.gz
mv /usr/local/www/mediawiki/extensions/mediawiki-extensions-SphinxSearch-master \
/usr/local/www/mediawiki/extensions/SphinxSearch
chown -R www:www /usr/local/www/mediawiki/extensions/SphinxSearch
Install/Configure SphinxSearch
pkg install sphinxsearch
cp /usr/local/www/mediawiki/extensions/SphinxSearch/sphinx.conf /usr/local/etc/sphinx.conf
mkdir -p /var/data
chown -R _sphinx:_sphinx /var/data
chmod 775 /var/data
Configure SphinxSearch Extension
/usr/local/etc/sphinx.conf
source_wiki_main {
sql_db = wikidb
sql_user = wiki
sql_pass = <password>
# defaults...
}
index wiki_main {
path = /var/db/sphinxsearch/data/wiki_main
# defaults...
}
index wiki_incremental {
path = /var/db/sphinxsearch/data/wiki_incremental
}
searchd {
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
pid_file = /var/log/sphinxsearch/searchd.pid
}
Create initial index of Wiki:
/usr/local/bin/indexer --config /usr/local/etc/sphinx.conf --all
Copy sphinxapi.php from sphinxsearch installation
cp /usr/local/share/examples/sphinxsearch/api/sphinxapi.php /usr/local/www/mediawiki/extensions/SphinxSearch/
Setup Crontab to periodically run indexer
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin
## minute hour mday month wday command ##
0 3 * * * /usr/local/bin/indexer --config /usr/local/etc/sphinx.conf wiki_main --rotate
*/30 * * * * /usr/local/bin/indexer --config /usr/local/etc/sphinx.conf wiki_incremental --rotate
Enable SpinxSearch Extension in Mediawiki
/usr/local/www/mediawiki/LocalSettings.php
require_once "$IP/extensions/SphinxSearch/SphinxSearch.php";
$wgSearchType = 'SphinxMWSearch';
$wgEnableSphinxPrefixSearch = true;
$wgSphinxSearch_matches = 20;