Skip to content

Commit ee5f18f

Browse files
authored
Fallback to Wikibase's default search when Elasticsearch is down (#347)
* Update pacman to include patches for a new wikibase search fallback * Update WikibaseCirrusSearch and WikibaseLexemeCirrusSearch using sync.sh * Configure $wgWBCSElasticErrorFailSilently in LocalSettings.php
1 parent e317d96 commit ee5f18f

File tree

6 files changed

+26
-2
lines changed

6 files changed

+26
-2
lines changed

dist-persist/wbstack/src/Settings/LocalSettings.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,7 @@ function onPersonalUrlsConfirmAccount( array &$personal_urls, Title $title, Skin
659659
]
660660
];
661661
$wgWBCSUseCirrus = true;
662+
$wgWBCSElasticErrorFailSilently = true;
662663
}
663664

664665

dist/extensions/WikibaseCirrusSearch/extension.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@
8484
"LicenseMapping": {
8585
"value": [],
8686
"description": "Map of licence search strings to wikibase statements."
87+
},
88+
"ElasticErrorFailSilently": {
89+
"value": false,
90+
"description": "Don't throw an EntitySearchException when an Elasticsearch query fails."
8791
}
8892
},
8993
"ConfigRegistry": {

dist/extensions/WikibaseCirrusSearch/src/EntitySearchElastic.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Elastica\Query\MatchQuery;
1111
use Elastica\Query\Term;
1212
use Language;
13+
use MediaWiki\MediaWikiServices;
1314
use WebRequest;
1415
use Wikibase\DataModel\Entity\EntityIdParser;
1516
use Wikibase\Lib\LanguageFallbackChainFactory;
@@ -311,7 +312,13 @@ public function getRankedSearchResults(
311312
if ( $result->isOK() ) {
312313
$result = $result->getValue();
313314
} else {
314-
throw new EntitySearchException( $result );
315+
$services = MediaWikiServices::getInstance();
316+
$config = $services->getConfigFactory()->makeConfig( 'WikibaseCirrusSearch' );
317+
318+
if ( !$config->get( 'ElasticErrorFailSilently' ) ) {
319+
throw new EntitySearchException( $result );
320+
}
321+
$result = [];
315322
}
316323

317324
if ( $searcher->isReturnRaw() ) {

dist/extensions/WikibaseLexemeCirrusSearch/src/LexemeSearchEntity.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Elastica\Query\MatchQuery;
1212
use Elastica\Query\Term;
1313
use Language;
14+
use MediaWiki\MediaWikiServices;
1415
use Wikibase\DataModel\Entity\EntityIdParser;
1516
use Wikibase\Lexeme\MediaWiki\Content\LexemeContent;
1617
use Wikibase\Lib\Store\FallbackLabelDescriptionLookupFactory;
@@ -203,7 +204,13 @@ public function getRankedSearchResults(
203204
if ( $result->isOK() ) {
204205
$result = $result->getValue();
205206
} else {
206-
throw new EntitySearchException( $result );
207+
$services = MediaWikiServices::getInstance();
208+
$config = $services->getConfigFactory()->makeConfig( 'WikibaseCirrusSearch' );
209+
210+
if ( !$config->get( 'ElasticErrorFailSilently' ) ) {
211+
throw new EntitySearchException( $result );
212+
}
213+
$result = [];
207214
}
208215

209216
if ( $searcher->isReturnRaw() ) {

dist/wbstack/src/Settings/LocalSettings.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,7 @@ function onPersonalUrlsConfirmAccount( array &$personal_urls, Title $title, Skin
659659
]
660660
];
661661
$wgWBCSUseCirrus = true;
662+
$wgWBCSElasticErrorFailSilently = true;
662663
}
663664

664665

pacman.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,8 @@
265265
- .rubocop_todo.yml
266266
- Gruntfile.js
267267
- Doxyfile
268+
patchUrls:
269+
- https://gerrit.wikimedia.org/r/changes/mediawiki%2Fextensions%2FWikibaseCirrusSearch~908801/revisions/2/patch?download
268270
- name: WikibaseLexemeCirrusSearch
269271
artifactUrl: https://codeload.github.com/wikimedia/mediawiki-extensions-WikibaseLexemeCirrusSearch/zip/aab91971e160e0d5c133fa6a958e339f58a496dd
270272
artifactLevel: 1
@@ -287,6 +289,8 @@
287289
- .rubocop_todo.yml
288290
- Gruntfile.js
289291
- Doxyfile
292+
patchUrls:
293+
- https://gerrit.wikimedia.org/r/changes/mediawiki%2Fextensions%2FWikibaseLexemeCirrusSearch~908803/revisions/1/patch?download
290294
- name: UniversalLanguageSelector
291295
artifactUrl: https://codeload.github.com/wikimedia/mediawiki-extensions-UniversalLanguageSelector/zip/b6dea733354186fe4d21d71709e6fa264e52d47c
292296
artifactLevel: 1

0 commit comments

Comments
 (0)