jenkins-bot has submitted this change and it was merged.

Change subject: Make Cirrus work with $wgCirrusSearchAllFields['build'] === 
false
......................................................................


Make Cirrus work with $wgCirrusSearchAllFields['build'] === false

'all' field only exists if $wgCirrusSearchAllFields['build'] === true,
but IndexValidator just assumes its always there.

Change-Id: I890fc7ef8961b763e806fdae32ba4f54dee2c725
---
M includes/Maintenance/Validators/IndexValidator.php
M includes/Searcher.php
M maintenance/updateOneSearchIndexConfig.php
3 files changed, 26 insertions(+), 6 deletions(-)

Approvals:
  Chad: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/Maintenance/Validators/IndexValidator.php 
b/includes/Maintenance/Validators/IndexValidator.php
index d10260d..df2082c 100644
--- a/includes/Maintenance/Validators/IndexValidator.php
+++ b/includes/Maintenance/Validators/IndexValidator.php
@@ -34,6 +34,16 @@
        private $replicaCount;
 
        /**
+        * @var int
+        */
+       private $refreshInterval;
+
+       /**
+        * @var bool
+        */
+       private $searchAllFields;
+
+       /**
         * @var AnalysisConfigBuilder
         */
        private $analysisConfigBuilder;
@@ -50,11 +60,12 @@
         * @param int $shardCount
         * @param string $replicaCount
         * @param int $refreshInterval
+        * @param bool $searchAllFields
         * @param AnalysisConfigBuilder $analysisConfigBuilder
         * @param array $mergeSettings
         * @param Maintenance $out
         */
-       public function __construct( Index $index, $startOver, 
$maxShardsPerNode, $shardCount, $replicaCount, $refreshInterval, 
AnalysisConfigBuilder $analysisConfigBuilder, array $mergeSettings, Maintenance 
$out = null ) {
+       public function __construct( Index $index, $startOver, 
$maxShardsPerNode, $shardCount, $replicaCount, $refreshInterval, 
$searchAllFields, AnalysisConfigBuilder $analysisConfigBuilder, array 
$mergeSettings, Maintenance $out = null ) {
                parent::__construct( $out );
 
                $this->index = $index;
@@ -63,6 +74,7 @@
                $this->shardCount = $shardCount;
                $this->replicaCount = $replicaCount;
                $this->refreshInterval = $refreshInterval;
+               $this->searchAllFields = $searchAllFields;
                $this->analysisConfigBuilder = $analysisConfigBuilder;
                $this->mergeSettings = $mergeSettings;
        }
@@ -93,17 +105,22 @@
         */
        private function createIndex( $rebuild ) {
                $maxShardsPerNode = $this->maxShardsPerNode === 'unlimited' ? 
-1 : $this->maxShardsPerNode;
-               $this->index->create( array(
+               $args = array(
                        'settings' => array(
                                'number_of_shards' => $this->shardCount,
                                'auto_expand_replicas' => $this->replicaCount,
                                'analysis' => 
$this->analysisConfigBuilder->buildConfig(),
-                               // Use our weighted all field as the default 
rather than _all which is disabled.
-                               'index.query.default_field' => 'all',
                                'refresh_interval' => $this->refreshInterval . 
's',
                                'merge.policy' => $this->mergeSettings,
                                'routing.allocation.total_shards_per_node' => 
$maxShardsPerNode,
                        )
-               ), $rebuild );
+               );
+
+               if ( $this->searchAllFields ) {
+                       // Use our weighted all field as the default rather 
than _all which is disabled.
+                       $args['settings']['index.query.default_field'] = 'all';
+               }
+
+               $this->index->create( $args, $rebuild );
        }
 }
diff --git a/includes/Searcher.php b/includes/Searcher.php
index 6e6cd6b..78857fa 100644
--- a/includes/Searcher.php
+++ b/includes/Searcher.php
@@ -256,7 +256,7 @@
                        'title.near_match_asciifolding', 
'redirect.title.near_match_asciifolding',
                ) );
                if ( $wgCirrusSearchAllFields[ 'use' ] ) {
-                       // Inseat of using the highlight query we need to make 
one like it that uses the all_near_match field.
+                       // Instead of using the highlight query we need to make 
one like it that uses the all_near_match field.
                        $allQuery = new \Elastica\Query\MultiMatch();
                        $allQuery->setQuery( $search );
                        $allQuery->setFields( array( 'all_near_match', 
'all_near_match.asciifolding' ) );
diff --git a/maintenance/updateOneSearchIndexConfig.php 
b/maintenance/updateOneSearchIndexConfig.php
index fe86a77..1d67bd5 100644
--- a/maintenance/updateOneSearchIndexConfig.php
+++ b/maintenance/updateOneSearchIndexConfig.php
@@ -262,6 +262,8 @@
        }
 
        private function validateIndex() {
+               global $wgCirrusSearchAllFields;
+
                // $this->startOver || !$this->getIndex()->exists() are the 
conditions
                // under which a new index will be created
                $this->tooFewReplicas = ( $this->startOver || 
!$this->getIndex()->exists() ) && $this->reindexAndRemoveOk;
@@ -273,6 +275,7 @@
                        $this->getShardCount(),
                        $this->getReplicaCount(),
                        $this->refreshInterval,
+                       $wgCirrusSearchAllFields['build'],
                        $this->analysisConfigBuilder,
                        $this->getMergeSettings(),
                        $this

-- 
To view, visit https://gerrit.wikimedia.org/r/183313
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I890fc7ef8961b763e806fdae32ba4f54dee2c725
Gerrit-PatchSet: 7
Gerrit-Project: mediawiki/extensions/CirrusSearch
Gerrit-Branch: master
Gerrit-Owner: Matthias Mullie <[email protected]>
Gerrit-Reviewer: Chad <[email protected]>
Gerrit-Reviewer: Manybubbles <[email protected]>
Gerrit-Reviewer: Matthias Mullie <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to