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