[MediaWiki-commits] [Gerrit] CirrusSearch: Add new rescore profiles - change (operations/mediawiki-config)
EBernhardson has uploaded a new change for review. https://gerrit.wikimedia.org/r/281209 Change subject: CirrusSearch: Add new rescore profiles .. CirrusSearch: Add new rescore profiles Change-Id: I0f449b2064ec0acccd7ce4d10404173bad2a62cc --- M tests/cirrusTest.php M wmf-config/CirrusSearch-common.php 2 files changed, 245 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/mediawiki-config refs/changes/09/281209/1 diff --git a/tests/cirrusTest.php b/tests/cirrusTest.php index 87e3763..990dbb2 100644 --- a/tests/cirrusTest.php +++ b/tests/cirrusTest.php @@ -111,6 +111,8 @@ ); $wmfDatacenter = 'unittest'; $wgCirrusSearchPoolCounterKey = 'unittest:poolcounter:blahblahblah'; + $wgCirrusSearchRescoreProfiles = array( 'default' => array() ); + $wgCirrusSearchRescoreFunctionScoreChains = array(); require "{$wmfConfigDir}/CirrusSearch-common.php"; diff --git a/wmf-config/CirrusSearch-common.php b/wmf-config/CirrusSearch-common.php index b7ff669..1c51f5e 100644 --- a/wmf-config/CirrusSearch-common.php +++ b/wmf-config/CirrusSearch-common.php @@ -1,4 +1,6 @@ array( +'supported_namespaces' => 'content', +'fallback_profile' => 'default', +'rescore' => array( +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'geomean_log', +'query_weight' => 1.0, +'rescore_query_weight' => 1.0, +'score_mode' => 'multiply', +), +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'optional_chain', +'score_mode' => 'multiply', +), +), +), +'geomean_satu' => array( +'supported_namespaces' => 'content', +'fallback_profile' => 'default', +'rescore' => array( +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'geomean_satu', +'query_weight' => 1.0, +'rescore_query_weight' => 1.0, +'score_mode' => 'multiply', +), +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'optional_chain', +'score_mode' => 'multiply', +), +), +), +); + + +$wgCirrusSearchRescoreFunctionScoreChains += array( + // GeoMean with logscale_boost + 'geomean_log' => array( + 'functions' => array( + array( + 'type' => 'geomean', + 'params' => array( + 'impact' => array( + 'uri_param_override' => 'cirrusGeoMeanLogImpact', + 'config_override' => 'CirrusSearchGeoMeanLogImpact', + 'value' => 1, + ), + 'members' => array( + array( + 'weight' => array( + 'uri_param_override' => 'cirrusBoostLinksWeight', + 'config_override' => 'CirrusSearchBoostLinksWeight', + 'value' => 1, + ), + 'type' => 'logscale_boost', + 'params' => array( + 'field' => 'incoming_links', + 'scale' => array( + 'value' => 50, + 'uri_param_override' => 'cirrusBoostLinksScale', + 'config_override' => 'CirrusSearchBoostLinksScale', + ), +
[MediaWiki-commits] [Gerrit] CirrusSearch: Add new rescore profiles - change (operations/mediawiki-config)
jenkins-bot has submitted this change and it was merged. Change subject: CirrusSearch: Add new rescore profiles .. CirrusSearch: Add new rescore profiles In order to run optimization plans we need these rescore profiles enabled in production. This should be a temporary solution, we will run various optimization with large samples to evaluate if any of these new functions are worth the effort. These profiles are also suited for A/B tests: all the values can be overridden by a request param. I'm not sure that wmf-config is the best place to store these profiles. They are particularly verbose and will certainly require fine-tuning per wiki. I wonder if a datastore (RESTBase?) might be more appropriate, this would allow us to do live optimizations without deploying anything... NOTE: depends on 1.27.0-wmf.19 Bug: T127896 Change-Id: I17aab1177662a5dad2c513ad1b406f3fd155ecc4 --- M tests/cirrusTest.php M wmf-config/CirrusSearch-common.php 2 files changed, 245 insertions(+), 0 deletions(-) Approvals: EBernhardson: Looks good to me, approved jenkins-bot: Verified diff --git a/tests/cirrusTest.php b/tests/cirrusTest.php index 87e3763..990dbb2 100644 --- a/tests/cirrusTest.php +++ b/tests/cirrusTest.php @@ -111,6 +111,8 @@ ); $wmfDatacenter = 'unittest'; $wgCirrusSearchPoolCounterKey = 'unittest:poolcounter:blahblahblah'; + $wgCirrusSearchRescoreProfiles = array( 'default' => array() ); + $wgCirrusSearchRescoreFunctionScoreChains = array(); require "{$wmfConfigDir}/CirrusSearch-common.php"; diff --git a/wmf-config/CirrusSearch-common.php b/wmf-config/CirrusSearch-common.php index b7ff669..1c51f5e 100644 --- a/wmf-config/CirrusSearch-common.php +++ b/wmf-config/CirrusSearch-common.php @@ -1,4 +1,6 @@ array( +'supported_namespaces' => 'content', +'fallback_profile' => 'default', +'rescore' => array( +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'geomean_log', +'query_weight' => 1.0, +'rescore_query_weight' => 1.0, +'score_mode' => 'multiply', +), +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'optional_chain', +'score_mode' => 'multiply', +), +), +), +'geomean_satu' => array( +'supported_namespaces' => 'content', +'fallback_profile' => 'default', +'rescore' => array( +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'geomean_satu', +'query_weight' => 1.0, +'rescore_query_weight' => 1.0, +'score_mode' => 'multiply', +), +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'optional_chain', +'score_mode' => 'multiply', +), +), +), +); + + +$wgCirrusSearchRescoreFunctionScoreChains += array( + // GeoMean with logscale_boost + 'geomean_log' => array( + 'functions' => array( + array( + 'type' => 'geomean', + 'params' => array( + 'impact' => array( + 'uri_param_override' => 'cirrusGeoMeanLogImpact', + 'config_override' => 'CirrusSearchGeoMeanLogImpact', + 'value' => 1, + ), + 'members' => array( + array( + 'weight' => array( + 'uri_param_override' => 'cirrusBoostLinksWeight', + 'config_override' => 'CirrusSearchBoostLinksWeight', + 'value' => 1, + ), + 'type' => 'logscale_boost', + 'params' => array( +
[MediaWiki-commits] [Gerrit] CirrusSearch: Add new rescore profiles - change (operations/mediawiki-config)
DCausse has uploaded a new change for review. https://gerrit.wikimedia.org/r/280245 Change subject: CirrusSearch: Add new rescore profiles .. CirrusSearch: Add new rescore profiles In order to run optimization plans we need these rescore profiles enabled in production. This should be a temporary solution, we will run various optimization with large samples to evaluate if any of these new functions are worth the effort. These profiles are also suited for A/B tests: all the values can be overridden by a request param. I'm note sure that wmf-config is the best place to store these profiles. They are particularly verbose and will certainly require fine-tuning per wiki. I wonder if a datastore (RESTBase?) might be more appropriate, this would allow us to do live optimizations without deploying anything... NOTE: depends on 1.27.0-wmf.19 Bug: T127896 Change-Id: I17aab1177662a5dad2c513ad1b406f3fd155ecc4 --- M wmf-config/CirrusSearch-common.php 1 file changed, 243 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/mediawiki-config refs/changes/45/280245/1 diff --git a/wmf-config/CirrusSearch-common.php b/wmf-config/CirrusSearch-common.php index b7ff669..1c51f5e 100644 --- a/wmf-config/CirrusSearch-common.php +++ b/wmf-config/CirrusSearch-common.php @@ -1,4 +1,6 @@ array( +'supported_namespaces' => 'content', +'fallback_profile' => 'default', +'rescore' => array( +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'geomean_log', +'query_weight' => 1.0, +'rescore_query_weight' => 1.0, +'score_mode' => 'multiply', +), +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'optional_chain', +'score_mode' => 'multiply', +), +), +), +'geomean_satu' => array( +'supported_namespaces' => 'content', +'fallback_profile' => 'default', +'rescore' => array( +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'geomean_satu', +'query_weight' => 1.0, +'rescore_query_weight' => 1.0, +'score_mode' => 'multiply', +), +array( +'window' => 8192, +'window_size_override' => 'CirrusSearchFunctionRescoreWindowSize', +'type' => 'function_score', +'function_chain' => 'optional_chain', +'score_mode' => 'multiply', +), +), +), +); + + +$wgCirrusSearchRescoreFunctionScoreChains += array( + // GeoMean with logscale_boost + 'geomean_log' => array( + 'functions' => array( + array( + 'type' => 'geomean', + 'params' => array( + 'impact' => array( + 'uri_param_override' => 'cirrusGeoMeanLogImpact', + 'config_override' => 'CirrusSearchGeoMeanLogImpact', + 'value' => 1, + ), + 'members' => array( + array( + 'weight' => array( + 'uri_param_override' => 'cirrusBoostLinksWeight', + 'config_override' => 'CirrusSearchBoostLinksWeight', + 'value' => 1, + ), + 'type' => 'logscale_boost', + 'params' => array( + 'field' => 'incoming_links', + 'scale' => array( + 'value' => 50, + 'uri_param_override' => 'cirrusBoostLinksScale', + 'config_override' => 'CirrusSearchBoostLinksScale', +