Manybubbles has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/159175

Change subject: Allow overriding size of the phrase slop window
......................................................................

Allow overriding size of the phrase slop window

This will be useful for performance testing (try 0) and for seeing if we
get better results (try >1, the default).

Change-Id: I822c37df3ad10e07abfefb66901fc5a20693ab91
---
M includes/Hooks.php
1 file changed, 31 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CirrusSearch 
refs/changes/75/159175/1

diff --git a/includes/Hooks.php b/includes/Hooks.php
index 7f5077e..1173739 100644
--- a/includes/Hooks.php
+++ b/includes/Hooks.php
@@ -79,7 +79,8 @@
                        $wgCirrusSearchFunctionRescoreWindowSize,
                        $wgCirrusSearchFragmentSize,
                        $wgCirrusSearchBoostLinks,
-                       $wgCirrusSearchAllFields;
+                       $wgCirrusSearchAllFields,
+                       $wgCirrusSearchPhraseSlop;
 
                // If the user has the BetaFeature enabled, use Cirrus as 
default.
                if ( $wgCirrusSearchEnablePref && $user->isLoggedIn() && 
class_exists( 'BetaFeatures' )
@@ -103,36 +104,35 @@
                                        $request->getVal( 'cirrusHighlighter' ) 
=== 'experimental' ) {
                                $wgCirrusSearchUseExperimentalHighlighter = 
true;
                        }
-                       $phraseRescoreWindowOverride = $request->getVal( 
'cirrusPhraseWindow' );
-                       if ( $phraseRescoreWindowOverride !== null && 
is_numeric( $phraseRescoreWindowOverride ) &&
-                                       $phraseRescoreWindowOverride < 10000 ) {
-                               $wgCirrusSearchPhraseRescoreWindowSize = 
$phraseRescoreWindowOverride;
-                       }
-                       $functionRescoreWindowOverride = $request->getVal( 
'cirrusFunctionWindow' );
-                       if ( $functionRescoreWindowOverride !== null && 
is_numeric( $functionRescoreWindowOverride &&
-                                       $functionRescoreWindowOverride < 10000 
) ) {
-                               $wgCirrusSearchFunctionRescoreWindowSize = 
$functionRescoreWindowOverride;
-                       }
-                       $fragmentSizeOverride = $request->getVal( 
'cirrusFragmentSize' );
-                       if ( $fragmentSizeOverride !== null && is_numeric( 
$fragmentSizeOverride ) &&
-                                       $fragmentSizeOverride < 1000 ) {
-                               $wgCirrusSearchFragmentSize = 
$fragmentSizeOverride;
-                       }
-                       $boostLinks = $request->getVal( 'cirrusBoostLinks' );
-                       if ( $boostLinks !== null ) {
-                               if ( $boostLinks === 'yes' ) {
-                                       $wgCirrusSearchBoostLinks = true;
-                               } elseif ( $boostLinks === 'no' ) {
-                                       $wgCirrusSearchBoostLinks = false;
-                               }
-                       }
-                       $useAllFields = $request->getVal( 'cirrusUseAllFields' 
);
-                       if ( $useAllFields !== null ) {
-                               if ( $useAllFields === 'yes' ) {
-                                       $wgCirrusSearchAllFields[ 'use' ] = 
true;
-                               } elseif( $useAllFields = 'no' ) {
-                                       $wgCirrusSearchAllFields[ 'use' ] = 
false;
-                               }
+                       self::overrideNumeric( 
$wgCirrusSearchPhraseRescoreWindowSize, $request, 'cirrusPhraseWinwdow', 10000 
);
+                       self::overrideNumeric( $wgCirrusSearchPhraseSlop[ 
'boost' ], $request, 'cirrusPhraseSlop', 10 );
+                       self::overrideNumeric( 
$wgCirrusSearchFunctionRescoreWindowSize, $request, 'cirrusFunctionWindow', 
10000 );
+                       self::overrideNumeric( $wgCirrusSearchFragmentSize, 
$request, 'cirrusFragmentSize', 1000 );
+                       self::overrideYesNo( $wgCirrusSearchBoostLinks, 
$request, 'cirrusBoostLinks' );
+                       self::overrideYesNo( $wgCirrusSearchAllFields[ 'use' ], 
$request, 'cirrusUseAllFields' );
+               }
+       }
+
+       /**
+        * Set $dest to the numeric value from $request->getVal( $name ) if it 
is <= $limit.
+        */
+       private static function overrideNumeric( &$dest, $request, $name, 
$limit ) {
+               $val = $request->getVal( $name );
+               if ( $val !== null && is_numeric( $val ) && $val <= $limit ) {
+                       $dest = $val;
+               }
+       }
+
+       /**
+        * Set $dest to the true/false from $request->getVal( $name ) if yes/no.
+        */
+       private static function overrideYesNo( &$dest, $request, $name ) {
+               $val = $request->getVal( 'cirrusUseAllFields' );
+               if ( $val !== null ) {
+                       if ( $val === 'yes' ) {
+                               $dest = true;
+                       } elseif( $val = 'no' ) {
+                               $dest = false;
                        }
                }
        }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I822c37df3ad10e07abfefb66901fc5a20693ab91
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CirrusSearch
Gerrit-Branch: master
Gerrit-Owner: Manybubbles <[email protected]>

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

Reply via email to