Mediawiki extensions: cirrussearch
CirrusSearch is an extension that enables full text search, and previews within your wiki.
CirrusSearch has replaced Lucene/Sphinx for all official wikimedia wikis (~2020).
Documentation
extension docs https://www.mediawiki.org/wiki/Extension:CirrusSearch usage docs https://www.mediawiki.org/wiki/Help:CirrusSearch#How_frequently_is_the_search_index_updated? install/bootstrap docs /usr/local/www/mediawiki/extensions/CirrusSearch/README
Install
Install Requirements
pkg install \ php74-composer \ php74-curl \ elasticsearch6Install Elastica Extension
Visit https://www.mediawiki.org/wiki/Extension:Elastica and download elastica for your mediawiki version.
Extract it to/usr/local/www/mediawiki/extensions/Elastica
.fetch https://extdist.wmflabs.org/dist/extensions/Elastica-REL1_34-b33d985.tar.gz tar -xvf Elastica-REL1_34-b33d985.tar.gz -C /usr/local/etc/www/mediawiki/extensions find /usr/local/etc/www/mediawiki/extensions -exec chown www:www {} \;
Run composer install for elasticacd /usr/local/www/mediawiki/extensions/Elastica composer install --no-dev
Install CirrusSearch Extension
Visit https://www.mediawiki.org/wiki/Extension:CirrusSearch and download cirrussearch for your mediawiki version.
Extract it to/usr/local/www/mediawiki/extensions/Cirrussearch
.fetch https://extdist.wmflabs.org/dist/extensions/CirrusSearch-REL1_34-a86e0a5.tar.gz tar -xvf CirrusSearch-REL1_34-a86e0a5.tar.gz -C /usr/local/etc/www/mediawiki/extensions find /usr/local/etc/www/mediawiki/extensions -exec chown www:www {} \;Enable plugins within mediawiki
# /usr/local/www/mediawiki/LocalSettings.php wfLoadExtension('Elastica'); wfLoadExtension('CirrusSearch'); $wgSearchType = "CirrusSearch";Enable ElasticSearch service
# /etc/rc.conf elasticsearch_enable="YES"Bootstrap Indexing (Reqd for new wikis, and Restoring old wikis)
Disable SearchUpdate# /usr/local/www/mediawiki/LocalSettings.php # disable searchupdate $wgDisableSearchUpdate = true; # configure elasticsearch nodes (just localhost for me!) $wgCirrusSearchServers = ['localhost'];
Generate ElasticSearch indexcd /usr/local/www/mediawiki/extensions/CirrusSearch php maintenance/updateSearchIndexConfig.phpNow Re-Enable SearchUpdate
# /usr/local/www/mediawiki/LocalSettings.php # $wgDisableSearchUpdate = true;Finally, Bootstrap the search index
cd /usr/local/www/mediawiki/extensions/CirrusSearch php maintenance/forceSearchIndex.php --skipLinks --indexOnSkip php maintenance/forceSearchIndex.php --skipParseFrom now on, whenever you edit a page, the index is updated automatically.