Extension talk:CirrusSearch

About this board

Discussion related to the CirrusSearch MediaWiki extension.

See also the open tasks for CirrusSearch on phabricator.

Can CirrusSearch index the content of PDFs?

2
Lucasjkr (talkcontribs)

I have PDFHandler installed, as I thought I read that you need it installed in order for CirrusSearch to be able to parse PDF's.

Additionally, I have PdfEmbed installed, so that on the (few) pages that contain PDF's, I can embed them directly in the page. Which works great for those cases. I only wish that CirrusSearch could index either the embedded PDF itself, or index the upload in the File namespace. But alas, despite seeing messages here and other places that imply that one of those solutions might exist, I have not found definitive instructions for how to actually implement this.

Can anyone advise? Is this a pipe dream that I have? Or is there a solution that I'm just not seeing?

Many thanks!

Cavila (talkcontribs)
Reply to "Can CirrusSearch index the content of PDFs?"

New install, UpdateSearchIndexConfig.php issue - CURL 52

4
Summary by DCausse (WMF)

Elasticsearch 8.6.0 is not supported, with MW 1.39 you must install elasticsearch 7.10.2.

HadleySo (talkcontribs)
MediaWiki 1.39.1
CirrusSearch 6.5.4 (d13de17)
Elastica 6.2.0 (1baee3b)
Elasticsearch 8.6.0

On a fresh install of MediaWiki and Elasticsearch I'm running into an issue with creating the elasticsearch index. Running `maintenance/UpdateSearchIndexConfig.php` script produces the following error:

Updating cluster ...

indexing namespaces...

Elastica\Exception\Connection\HttpException from line 186 of /var/www/team-wiki/extensions/Elastica/vendor/ruflin/elastica/src/Transport/Http.php: Unknown error:52

#0 /var/www/team-wiki/extensions/Elastica/vendor/ruflin/elastica/src/Request.php(178): Elastica\Transport\Http->exec()

#1 /var/www/team-wiki/extensions/Elastica/vendor/ruflin/elastica/src/Client.php(513): Elastica\Request->send()

#2 /var/www/team-wiki/extensions/Elastica/vendor/ruflin/elastica/src/Client.php(548): Elastica\Client->request()

#3 /var/www/team-wiki/extensions/Elastica/vendor/ruflin/elastica/src/Index.php(666): Elastica\Client->requestEndpoint()

#4 /var/www/team-wiki/extensions/Elastica/vendor/ruflin/elastica/src/Index.php(452): Elastica\Index->requestEndpoint()

#5 /var/www/team-wiki/extensions/CirrusSearch/includes/MetaStore/MetaStoreIndex.php(386): Elastica\Index->exists()

#6 /var/www/team-wiki/extensions/CirrusSearch/includes/MetaStore/MetaStoreIndex.php(135): CirrusSearch\MetaStore\MetaStoreIndex->cirrusReady()

#7 /var/www/team-wiki/extensions/CirrusSearch/includes/Maintenance/Maintenance.php(227): CirrusSearch\MetaStore\MetaStoreIndex->createIfNecessary()

#8 /var/www/team-wiki/extensions/CirrusSearch/maintenance/IndexNamespaces.php(40): CirrusSearch\Maintenance\Maintenance->maybeCreateMetastore()

#9 /var/www/team-wiki/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php(72): CirrusSearch\Maintenance\IndexNamespaces->execute()

#10 /var/www/team-wiki/maintenance/includes/MaintenanceRunner.php(309): CirrusSearch\Maintenance\UpdateSearchIndexConfig->execute()

#11 /var/www/team-wiki/maintenance/doMaintenance.php(85): MediaWiki\Maintenance\MaintenanceRunner->run()

#12 /var/www/team-wiki/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php(117): require_once('...')

#13 {main}


Elasticsearch is running when this CURL error 52 is produced. It looks like CirrusSearch is giving an "empty reply from server" from Elasticsearch. Not sure if I should be passing additional parameters besides what is provided in the CirrusSearch README.

Ciencia Al Poder (talkcontribs)

You may also check the elasticsearch log in case there's some error in ES causing this empty reply.

DCausse (WMF) (talkcontribs)

I see that you are running elasticsearch in version 8.6.0. This version is not supported, with MW 1.39 you must install elasticsearch 7.10.2.

HadleySo (talkcontribs)

Ah that was the issue, I installed the wrong version of Elasticsearch. Thanks for the help!

UpdateSearchIndexConfig.php not working?

3
Summary by DCausse (WMF)

The root cause was not using the default node.name or cluster.name in /etc/elasticsearch/elasticsearch.yml

Gamebrew (talkcontribs)

I couldn't able to figure out why the UpdateSearchIndexConfig.php isn't working on the latest Mediawiki 1.39. Can someone able to help me a bit?


Error Log:

php /extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php


Updating cluster ...

indexing namespaces...

mw_cirrus_metastore missing, creating new metastore index.

Creating metastore index... mw_cirrus_metastore_first   Scanning available plugins...none

Elastica\Exception\ResponseException from line 178 of /public/extensions/Elastica/vendor/ruflin/elastica/src/Transport/Http.php:

#0 /public/extensions/Elastica/vendor/ruflin/elastica/src/Request.php(178): Elastica\Transport\Http->exec()

#1 /public/extensions/Elastica/vendor/ruflin/elastica/src/Client.php(513): Elastica\Request->send()

#2 /public/extensions/Elastica/vendor/ruflin/elastica/src/Index.php(655): Elastica\Client->request()

#3 /public/extensions/CirrusSearch/includes/MetaStore/MetaStoreIndex.php(201): Elastica\Index->request()

#4 /public/extensions/CirrusSearch/includes/MetaStore/MetaStoreIndex.php(139): CirrusSearch\MetaStore\MetaStoreIndex->createNewIndex()

#5 /public/extensions/CirrusSearch/includes/Maintenance/Maintenance.php(227): CirrusSearch\MetaStore\MetaStoreIndex->createIfNecessary()

#6 /public/extensions/CirrusSearch/maintenance/IndexNamespaces.php(40): CirrusSearch\Maintenance\Maintenance->maybeCreateMetastore()

#7 /public/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php(72): CirrusSearch\Maintenance\IndexNamespaces->execute()

#8 /public/maintenance/includes/MaintenanceRunner.php(309): CirrusSearch\Maintenance\UpdateSearchIndexConfig->execute()

#9 /public/maintenance/doMaintenance.php(85): MediaWiki\Maintenance\MaintenanceRunner->run()

#10 /public/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php(117): require_once('/home/nginx/dom...')

#11 {main}


My Mediawiki Info:

Product Version
Mediawiki 1.39.1
PHP 7.4.33 (fpm-fcgi)
MariaDB 10.3.37-MariaDB
ICU 62.2
Pygments 2.11.2
Elasticsearch 7.10.2
CirrusSearch 6.5.4 (e15ac38) 06:42, January 10, 2023 GPL-2.0-or-later
Elastica 6.2.0 (1baee3b) 06:13, December 4, 2022


Elastic is working fine at my end.

curl -XGET 'localhost:9200'

{

  "name" : "node",

  "cluster_name" : "nodecluster",

  "cluster_uuid" : "_na_",

  "version" : {

    "number" : "7.10.2",

    "build_flavor" : "default",

    "build_type" : "rpm",

    "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",

    "build_date" : "2021-01-13T00:42:12.435326Z",

    "build_snapshot" : false,

    "lucene_version" : "8.7.0",

    "minimum_wire_compatibility_version" : "6.8.0",

    "minimum_index_compatibility_version" : "6.0.0-beta1"

  },

  "tagline" : "You Know, for Search"

}

DCausse (WMF) (talkcontribs)

Creating the mw_cirrus_metastore index seems to be failing, the stack indicates that an error was detected in the elasticsearch response body, so elasticsearch did receive the request but refused to process it.

Unfortunately the exception does not tell us more, so you might have to investigate. Elasticsearch logs might possibly contain some indication. Another way might be to hack the include/MetaStore/MetaStoreIndex.php script with something like (around line 199 in the createNewIndex method):

try {
   $index->request(
      '',
      \Elastica\Request::PUT,
      $this->buildIndexConfiguration(),
      [
         'master_timeout' => $this->getMasterTimeout(),
      ]
   );
} catch ( \Elastica\Exception\ResponseException $e ) {
   $this->log( print_r( $e->getResponse()->getData(), true ) );
   throw $e;
}

Please let us know if you find the root cause.

Thanks!

Gamebrew (talkcontribs)

The root cause was not using the default node.name or cluster.name in /etc/elasticsearch/elasticsearch.yml

It's all good now. Thanks.

MediaWiki 1.39 + Elasticsearch 7.17.7 + php 7.4.3 +SMW 4.0.2

5
Lotusccong (talkcontribs)

My hosting only support Elasticsearch 7.17 & 7.9.

It seems that MW 1.39 only support Elasticsearch 7.10.

When I run this command

php $MW_INSTALL_PATH/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php

I got this error message

PHP Deprecated: Use of PersonalUrls hook was deprecated in MediaWiki 1.39. [Called from SMW\MediaWiki\Hooks::register in /home/XXX/public_html/extensions/SemanticMediaWiki/src/MediaWiki/Hooks.php at line 151] in /home/XXX/public_html/includes/debug/MWDebug.php on line 381

Updating cluster ... indexing namespaces... mw_cirrus_metastore missing, creating new metastore index. Creating metastore index... mw_cirrus_metastore_first Scanning available plugins... analysis-icu, analysis-phonetic ok Green!Creating mw_cirrus_metastore alias to mw_cirrus_metastore_first. Indexing namespaces...done content index... Fetching Elasticsearch version...7.17.7...partially supported You use a version of elasticsearch that is partially supported, you should upgrade to 7.10.x

It seems that I need to use Elasticsearch 7.10.X only .

Ciencia Al Poder (talkcontribs)

Yes, it only supports 7.10.x

Lotusccong (talkcontribs)

Any roadmap to support Elasticsearch 7.17 ?

Can we use Elasticsearch 7.9 with MW 1.39 ?

Ciencia Al Poder (talkcontribs)

I don't know what's wrong with ElasticSearch that breaks compatibility so much between versions, but the required versions on this page are accurate and anything outside of what's expected there would indeed break

DCausse (WMF) (talkcontribs)

Sadly versions above 7.10.2 are distributed under the SSPL license and makes such versions unlikely to be installed on the WMF production servers, please see T272111 for more details. While nothing is set in stone I believe that the WMF is unlikely to invest time in making CirrusSearch compatible with elasticsearch 7.17 but rather will try to find an alternative to elasticsearch.

Reply to "MediaWiki 1.39 + Elasticsearch 7.17.7 + php 7.4.3 +SMW 4.0.2"

Does ElasticSearch 7.x work with MediaWiki 1.38?

3
Coyotefather (talkcontribs)

The dependencies section of the instructions say:

  • MediaWiki 1.33.x - 1.38.x require Elasticsearch 6.5.x - 6.8.x. (6.8.23+ recommended)


Does that mean that anything higher than 6.8.23 _including_ 7.x is recommended, or only 6.8.23 but less than version 7?

Ciencia Al Poder (talkcontribs)

Anything between the 6.5.x - 6.8.x versions, not higher than that.

6.9 (if that version even exists) and 7.0 would not be compatible

Coyotefather (talkcontribs)

Ok, thank you!

Reply to "Does ElasticSearch 7.x work with MediaWiki 1.38?"

how to delete an index?

7
185.31.48.30 (talkcontribs)

When I run updateSearchIndexConfig.php I get "Looks like the index has more than one identifier" error: How do I delete these indexes? I want to delete all and create one from scratch:

 php maintenance/updateSearchIndexConfig.php
content index...
        Fetching Elasticsearch version...1.0.0...ok
        Scanning available plugins...none
        Infering index identifier...error
Looks like the index has more than one identifier. You should delete all
but the one of them currently active. Here is the list: XX_pre_content,XX_pre_content_1401790881,XX_pre_content_first,XX_pre_content_1401791290
129.6.88.86 (talkcontribs)

when i typed in the XDELETE function i got `{"acknowledged":true}` but it still was there?

Aparolini (talkcontribs)

To delete : curl -X DELETE "localhost:9200/my-index-000001"

To display indexes: curl -X GET "localhost:9200/_cat/indices"

Reply to "how to delete an index?"

MediaWiki 1.39 + Elasticsearch 7.10.2 + php 8

9
Spiros71 (talkcontribs)

Has the above been tested to work without issues?

I read in the page: Note that Elasticsearch versions prior to 6.8 are not compatible with PHP 8.

Utpark (talkcontribs)

MediaWiki 1.40 + Elasticsearch 7.17 + php 8.1 has been working fine since September.

Kghbln (talkcontribs)

7.10 is not a version prior to 6.8 so I would expect it to work from reading this. You never know with Elasticsearch in combination with MediaWiki.

Anyone with actual experience?

DCausse (WMF) (talkcontribs)

CirrusSearch on 1.39 just had a couple patches back-ported from master to work flawlessly on elasticsearch 7.10.2.

Regarding PHP8: overall compatibility has increased a lot and the test suites are passing but since WMF is not running PHP8 it is hard to answer yes to your question. Most of the blockers on the CirrusSearch side have been resolved so please let us know if you encounter issue running this setup.

Spiros71 (talkcontribs)

The point is I have a rather large wiki with MW1.31, Elasticsearch 5.6.13, and php 7.3 so I try to be extra careful.

The idea is to upgrade all software in one go (will MW 1.39 support upgrade in one move form 1.31?) rather than going through all the hassle just to bump to php 7.4. It was quite a ride getting Cirrus to work properly with ICU folding last time: Topic:Upuxq1gl0v9ml4aw

I see many Wikimedia sites face similar issues, still running php 7.2 and php 7.3, is there any special way you deal with EOL php versions secutiry-wise?

DCausse (WMF) (talkcontribs)

I understand why you want to be careful here and sadly there might still be few issues regarding PHP8 in MW 1.39. Regarding your upgrade plan: beware that you won't be able to jump from elasticsearch 5.6 to 7.10 without re-creating all your indices from scratch.

Spiros71 (talkcontribs)

Thanks, yes, I was aware that I need to recreate indices; hope that analysis-icu plugin and the Extra Queries and Filters will be available for that version -:)

DCausse (WMF) (talkcontribs)

Yes all these plugins should be available for elasticsearch 7.10.2. The extra plugin might not get ported to more recent versions as the WMF is unlikely to deploy more recent versions of elasticsearch due to licensing issues.

Spiros71 (talkcontribs)

Yes, I remember you telling me about the possibility of switching to opensearch.

Reply to "MediaWiki 1.39 + Elasticsearch 7.10.2 + php 8"
195.65.152.115 (talkcontribs)

Mediawiki 1.38.2 and CirrusSearch generate Elastic queries using query_string. How do I make Cirrus use match_phrase_prefix instead ?

This will allow me to find page using partial keywords: Example "Cirr" will return pages with "Cirrus" inside.


Any ideas ? Thanks.

Reply to "match_phrase_prefix"

No results when searching

7
Donxello (talkcontribs)

Hi,

MediaWiki 1.26.3
PHP 5.6.24 (apache2handler)
MySQL 5.5.46
Elasticsearch 1.7.5

CirrusSearch 0.2

Elastica 1.3.0.0

Installation was without problems according to https://phab.wmfusercontent.org/file/data/ouaq2ogud2xcltawkhvx/PHID-FILE-pyat6n73gno5m22bmo2r/README

LocalSettings

wfLoadExtension( 'Elastica' );

require_once "$IP/extensions/CirrusSearch/CirrusSearch.php";

#$wgDisableSearchUpdate = true;

$wgCirrusSearchServers = array( 'localhost' );

$wgDebugLogGroups['CirrusSearch'] = "$IP/extensions/CirrusSearch/error.log";

$wgSearchType = 'CirrusSearch';

But when I enter something into the search field I get no results telling me there were no results matching the query.

Any ideas?

Sergezolotukhin (talkcontribs)

Hello. U need to run scripts in Cirrus maintanance:

Now run this script to generate your elasticsearch index:

php $MW_INSTALL_PATH/extensions/CirrusSearch/maintenance/updateSearchIndexConfig.php

Now remove $wgDisableSearchUpdate = true from LocalSettings.php.  Updates should start heading to Elasticsearch.

Next bootstrap the search index by running:

php $MW_INSTALL_PATH/extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipLinks --indexOnSkip

php $MW_INSTALL_PATH/extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipParse

https://phabricator.wikimedia.org/diffusion/ECIR/browse/master/README

103.70.129.74 (talkcontribs)

This is not mentioned anywhere! I installed mediawiki and then the extensions elastica and cirrussearch. Kept getting the error "Fatal exception of type "RuntimeException".

After adding these lines in LocalSettings.php:

$wgCirrusSearchServers = array( 'localhost' );

$wgDebugLogGroups['CirrusSearch'] = "$IP/extensions/CirrusSearch/error.log";

$wgSearchType = 'CirrusSearch';

and running these commands suggested by Sergezolotukhin, the search started working and no where in documentation this is mentioned.

GFXDude2010 (talkcontribs)

I'm having the exact same issue. I currently have SphinxSearch installed, but it does not seem to find all the articles I believe it should find. So, I'm attempting to install CIrrus to see how it performs.

My Setup
Operating System CentOS 7
MediaWiki 1.27.0
PHP 7.0.10
Apache 2.4.23
MySQL Amazon AWS Aurora
ElasticSearch 1.7.5
Elastica REL1_27-4607acf
CirrusSearch REL1_27-dcb0cf9 (0.2)

Followed instructions here: Extension:CirrusSearch

Installed ElasticSearch via RPM; enabled and started service. Verified working via curl.

Tried enabling Elastica extension using both wfLoadExtension and require_once. Both seem to have the same bearing.

I ran all three maintenance scripts outlined in the README. It indexed nearly 10000 pages.


I've verified that elastic search is actually running:

[centos@ip-10-90-1-9 html]$ sudo systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2016-09-01 15:12:48 UTC; 52min ago
     Docs: http://www.elastic.co
 Main PID: 8839 (java)
   CGroup: /system.slice/elasticsearch.service
           └─8839 /bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccu...


My LocalSettings.php has the following:

wfLoadExtension('Elastica');
require_once("$IP/extensions/CirrusSearch/CirrusSearch.php");
$wgCirrusSearchServers = array('localhost');
$wgSearchType = 'CirrusSearch';

When I uncomment the above settings in my LocalSettings, then attempt to search on my wiki, there are no results. So, for now, I'll have to deal with a half-working Sphinx setup, unless anyone here can suggest what I'm doing wrong?

Sergezolotukhin (talkcontribs)

root@openlist-www ~ # curl '********:9200/_cat/indices?v'

health status index                                 pri rep docs.count docs.deleted store.size pri.store.size

green  open   openlist_ua-wiki__content_first         4   0     193874        45941      2.6gb          2.6gb

green  open   openlist-wiki__content_first            4   0    2530251       723985     28.9gb         28.9gb

green  open   openlist-wiki__general_first            4   0       9792            7     35.8mb         35.8mb

green  open   mediawiki_cirrussearch_frozen_indexes   1   0          0            0       144b           144b

green  open   test                                    1   0          1            0      2.6kb          2.6kb

green  open   openlist_ru-formulars                   1   0    1648710            0    986.6mb        986.6mb

green  open   mw_cirrus_versions                      1   0          6            4     10.2kb         10.2kb

green  open   openlist_ua-wiki__general_first         4   0         63            7    727.4kb        727.4kb

green  open   openlist_ge-wiki__content_first         4   0       3514          953     68.5mb         68.5mb

green  open   openlist_ge-wiki__general_first         4   0         21            0     37.8kb         37.8kb

Sergezolotukhin (talkcontribs)

Okay. Are there documents in Elastic index? ( curl 'localhost:9200/_cat/indices?v' )

You can discover you Elastic data with DSL:

"query" : {
        "match_all" : {}
    }

The goal is to find out if data is indexed on not.

Amitumar (talkcontribs)

Hi,

I have installed cirrussearch inside mediawiki but it is not searching the word inside any uploaded documents.

Request someone to review and advise if any steps were missed:

Please note, the uploaded documents contains MS WORD, POWERPOINT, PDF'S, EXCEL, MSG (Outlook email) , TXT files.

I followed below steps:-

installed media wiki successfully.

installed elastica inside the extention folder.

installed cirrussearch inside the extention folder

after that I performed steps mentioned in README.txt file

--------------------------------------------------- Instructions in README.TXT file ----------------------------

All elastic versions prior to 5.3.1 have bugs that affect CirrusSearch:

- elastic versions before 5.3.x requires the following config in your LocalSettings.php:

  $CirrusSearchElasticQuirks = [ 'query_string_max_determinized_states' => true ];

- elastic versions before 5.3.1 suffer from a bug that prevent an index to be reindexed

  properly without missing docs when using multiple elasticsearch machines

- when using elastic prior to 5.5.2 with the extra plugin and the super_detect_noop script

  you must activate the "super_detect_noop_enable_native" option (see docs/settings.txt)

Place the CirrusSearch extension in your extensions directory.

Make sure you have the curl php library installed (sudo apt-get install php5-curl in Debian.)

You also need to install the Elastica MediaWiki extension.

Add this to LocalSettings.php:

wfLoadExtension( 'Elastica' );

require_once( "$IP/extensions/CirrusSearch/CirrusSearch.php" );

$wgDisableSearchUpdate = true;

Configure your search servers in LocalSettings.php if you aren't running Elasticsearch on localhost:

$wgCirrusSearchServers = [ 'elasticsearch0', 'elasticsearch1', 'elasticsearch2', 'elasticsearch3' ];

There are other $wgCirrusSearch variables that you might want to change from their defaults.

Now run this script to generate your elasticsearch index:

php $MW_INSTALL_PATH/extensions/CirrusSearch/maintenance/updateSearchIndexConfig.php

Now remove $wgDisableSearchUpdate = true from LocalSettings.php.  Updates should start heading to Elasticsearch.

Next bootstrap the search index by running:

php $MW_INSTALL_PATH/extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipLinks --indexOnSkip

php $MW_INSTALL_PATH/extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipParse

Note that this can take some time.  For large wikis read "Bootstrapping large wikis" below.

Once that is complete add this to LocalSettings.php to funnel queries to ElasticSearch:

$wgSearchType = 'CirrusSearch';

---------------------------------------------------------------------------

Reply to "No results when searching"

Make installation simpler

3
2001:9E8:957:7200:C2A0:1CA5:258E:5914 (talkcontribs)

It all sounds kinda straightforward until you open that README file and realize that it requires a special kind of MW nerd to get this thing up and running. Can|t this all be a little easier? I know MW hates GUI type installation and configuration but jeez.... a graphical installer with several steps to go through would be great

Spas.Z.Spasov (talkcontribs)

It looks complicated only first few times :) Here is one script that I'm using for past few years to create the index:

#!/bin/bash

# @author    Spas Z. Spasov <spas.z.spasov@metalevel.tech>
# @copyright 2022 Spas Z. Spasov
# @license   https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License, version 3 (or later)
#
# @name      /usr/local/bin/mlw-maintenance-cirrusSearch-elasticsearch-create-index.sh
# @desc      Create elastic search index for an MediaWiki instance
#
# @source    https://phabricator.wikimedia.org/source/extension-cirrussearch/browse/master/README

IP="/var/www/wiki.example.com"

# STEP 1
sed -i 's#^$wgSearchType#// $wgSearchType#' $IP/LocalSettings.php
sed -i 's#^// $wgDisableSearchUpdate#$wgDisableSearchUpdate#' $IP/LocalSettings.php
echo -e '\n\n\n*\n* $IP/LocalSettings.php\n*\n'
grep '$wgSearchType\|$wgDisableSearchUpdate = true' $IP/LocalSettings.php
echo
sleep 3
printf -- '\n\n*\n* Generate ElasticSearch Index for %s -----\n*\n\n' "$IP"
/usr/bin/php $IP/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php --startOver --conf $IP/LocalSettings.php

# STEP 2
sed -i 's#^$wgDisableSearchUpdate#// $wgDisableSearchUpdate#' $IP/LocalSettings.php
grep '$wgSearchType\|$wgDisableSearchUpdate = true' $IP/LocalSettings.php
echo
sleep 3
printf -- '\n\n*\n*  Bootstrap the Search Index for %s -----\n*\n\n' "$IP"
/usr/bin/php $IP/extensions/CirrusSearch/maintenance/ForceSearchIndex.php --skipLinks --indexOnSkip --conf $IP/LocalSettings.php
/usr/bin/php $IP/extensions/CirrusSearch/maintenance/ForceSearchIndex.php --skipParse --conf $IP/LocalSettings.php

# STEP 3
sleep 3
printf -- '\n\n*\n*  Enable Cirrus Search for %s -----\n*\n\n' "$IP"
sed -i 's#^// $wgSearchType#$wgSearchType#' $IP/LocalSettings.php
echo -e '\n\n\n*\n* $IP/LocalSettings.php\n*\n'
grep '$wgSearchType\|$wgDisableSearchUpdate = true' $IP/LocalSettings.php
echo

# Step 4
sleep 3
printf -- '\n\n*\n*  Update Cirrus Search Suggestions for %s -----\n*\n\n' "$IP"
/usr/bin/php $IP/extensions/CirrusSearch/maintenance/UpdateSuggesterIndex.php --conf $IP/LocalSettings.php
2001:9E8:958:7000:FC1D:AA47:52C6:681F (talkcontribs)

I bet practice helps, but it's a bummer how much manual fiddling is involved in getting an extension to work, the number of wikis not making the switch to CS because of that must be enormous

Reply to "Make installation simpler"
Return to "CirrusSearch" page.