jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/377661 )
Change subject: compsuggest: Handle edge case of empty index ...................................................................... compsuggest: Handle edge case of empty index In prod we have a some closed wikis (akwiktionary, probably others) that have no content pages. As such their titlesuggest index is also empty. It seems that when the titlesuggest index is empty elasticsearch short-circuits it's regular response handling and doesn't return the empty suggest keys that it usually does. Change-Id: Ifa9ee4eb7f76a1864c5e786c5680d07e487b6e70 --- M includes/CompletionSuggester.php M tests/unit/CompletionSuggesterTest.php 2 files changed, 11 insertions(+), 1 deletion(-) Approvals: Smalyshev: Looks good to me, approved Cindy-the-browser-test-bot: Looks good to me, but someone else must approve jenkins-bot: Verified diff --git a/includes/CompletionSuggester.php b/includes/CompletionSuggester.php index d923e40..625ea8e 100644 --- a/includes/CompletionSuggester.php +++ b/includes/CompletionSuggester.php @@ -368,7 +368,13 @@ */ protected function postProcessSuggest( \Elastica\Response $response, $profiles, CompletionRequestLog $log ) { $log->setResponse( $response ); - $data = $response->getData()['suggest']; + $fullResponse = $response->getData(); + if ( !isset( $fullResponse['suggest'] ) ) { + // Edge case where the index contains 0 documents and does not even return the 'suggest' field + return SearchSuggestionSet::emptySuggestionSet(); + } + + $data = $fullResponse['suggest']; $limit = $this->getHardLimit(); $suggestionsByDocId = []; diff --git a/tests/unit/CompletionSuggesterTest.php b/tests/unit/CompletionSuggesterTest.php index 3047b43..363bae2 100644 --- a/tests/unit/CompletionSuggesterTest.php +++ b/tests/unit/CompletionSuggesterTest.php @@ -300,6 +300,10 @@ $resp, 5, 200, null, null, 0, 300 ], + 'Empty index' => [ + new \Elastica\Response( [] ), + 5, 200, null, null, 0, 50 + ], ]; } } -- To view, visit https://gerrit.wikimedia.org/r/377661 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ifa9ee4eb7f76a1864c5e786c5680d07e487b6e70 Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/extensions/CirrusSearch Gerrit-Branch: master Gerrit-Owner: EBernhardson <ebernhard...@wikimedia.org> Gerrit-Reviewer: Cindy-the-browser-test-bot <bernhardsone...@gmail.com> Gerrit-Reviewer: DCausse <dcau...@wikimedia.org> Gerrit-Reviewer: Gehel <guillaume.leder...@wikimedia.org> Gerrit-Reviewer: Smalyshev <smalys...@wikimedia.org> Gerrit-Reviewer: Tjones <tjo...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits