wikimedia/mediawiki-extensions-CirrusSearch

View on GitHub
profiles/RescoreFunctionChains.config.php

Summary

Maintainability
C
1 day
Test Coverage
<?php

/**
 * List of function score chains
 */
return [
    // Default chain where all the functions are combined
    // In the same chain.
    'classic_allinone_chain' => [
        'functions' => [
            // Scores documents with log(incoming_link + 2)
            [ 'type' => 'boostlinks' ],

            // Scores documents according to their timestamp
            // Activated if $wgCirrusSearchPreferRecentDefaultDecayPortion
            // and $wgCirrusSearchPreferRecentDefaultHalfLife are set
            // can be activated with prefer-recent special syntax
            [ 'type' => 'recency' ],

            // Scores documents according to their templates
            // Templates weights can be defined with special
            // syntax boost-templates or by setting the
            // system message cirrus-boost-templates
            [ 'type' => 'templates' ],

            // Scores documents according to their namespace.
            // Activated if the query runs on more than one namespace
            // See $wgCirrusSearchNamespaceWeights
            [ 'type' => 'namespaces' ],

            // Scores documents according to their language,
            // See $wgCirrusSearchLanguageWeight
            [ 'type' => 'language' ],
        ],
        'add_extensions' => true
    ],
    // Chain with optional functions if classic_allinone_chain
    // or optional_chain is omitted from the rescore profile then some
    // query features and global config will be ineffective.
    'optional_chain' => [
        'functions' => [
            [ 'type' => 'recency' ],
            [ 'type' => 'templates' ],
            [ 'type' => 'namespaces' ],
            [ 'type' => 'language' ],
        ],
        'add_extensions' => true
    ],
    // Chain with boostlinks only
    'boostlinks_only_chain' => [
        'functions' => [
            [ 'type' => 'boostlinks' ]
        ]
    ],

    // inclinks as a weighted sum
    'wsum_inclinks' => [
        'functions' => [
            [
                'type' => 'satu',
                'weight' => [
                    'value' => 13,
                    'config_override' => 'CirrusSearchIncLinksAloneW',
                    'uri_param_override' => 'cirrusIncLinksAloneW',
                ],
                'params' => [
                    'field' => 'incoming_links',
                    'k' => [
                        'value' => 30,
                        'config_override' => 'CirrusSearchIncLinksAloneK',
                        'uri_param_override' => 'cirrusIncLinksAloneK',
                    ],
                    'a' => [
                        'value' => 0.7,
                        'config_override' => 'CirrusSearchIncLinksAloneA',
                        'uri_param_override' => 'cirrusIncLinksAloneA',
                    ]
                ],
            ],
        ],
    ],

    // inclinks as a weighted sum
    'wsum_inclinks_pv' => [
        'score_mode' => 'sum',
        'boost_mode' => 'sum',
        'functions' => [
            [
                'type' => 'satu',
                'weight' => [
                    'value' => 3,
                    'config_override' => 'CirrusSearchPageViewsW',
                    'uri_param_override' => 'cirrusPageViewsW',
                ],
                'params' => [
                    'field' => 'popularity_score',
                    'k' => [
                        'value' => 8E-6,
                        'config_override' => 'CirrusSearchPageViewsK',
                        'uri_param_override' => 'cirrusPageViewsK',
                    ],
                    'a' => [
                        'value' => 0.8,
                        'config_override' => 'CirrusSearchPageViewsA',
                        'uri_param_override' => 'cirrusPageViewsA',
                    ],
                ],
            ],
            [
                'type' => 'satu',
                'weight' => [
                    'value' => 10,
                    'config_override' => 'CirrusSearchIncLinksW',
                    'uri_param_override' => 'cirrusIncLinkssW',
                ],
                'params' => [
                    'field' => 'incoming_links',
                    'k' => [
                        'value' => 30,
                        'config_override' => 'CirrusSearchIncLinksK',
                        'uri_param_override' => 'cirrusIncLinksK',
                    ],
                    'a' => [
                        'value' => 0.7,
                        'config_override' => 'CirrusSearchIncLinksA',
                        'uri_param_override' => 'cirrusIncLinksA',
                    ],
                ],
            ],
        ],
    ],

    // like wsum_inclinks_pv, but heavily weighted towards the popularity score
    'wsum_inclinks_pv+' => [
        'score_mode' => 'sum',
        'boost_mode' => 'sum',
        'functions' => [
            [
                'type' => 'satu',
                'weight' => [
                    'value' => 1000,
                    'config_override' => 'CirrusSearchPageViewsW',
                    'uri_param_override' => 'cirrusPageViewsW',
                ],
                'params' => [
                    'field' => 'popularity_score',
                    'k' => [
                        'value' => 8E-6,
                        'config_override' => 'CirrusSearchPageViewsK',
                        'uri_param_override' => 'cirrusPageViewsK',
                    ],
                    'a' => [
                        'value' => 0.8,
                        'config_override' => 'CirrusSearchPageViewsA',
                        'uri_param_override' => 'cirrusPageViewsA',
                    ],
                ],
            ],
            [
                'type' => 'satu',
                'weight' => [
                    'value' => 10,
                    'config_override' => 'CirrusSearchIncLinksW',
                    'uri_param_override' => 'cirrusIncLinkssW',
                ],
                'params' => [
                    'field' => 'incoming_links',
                    'k' => [
                        'value' => 30,
                        'config_override' => 'CirrusSearchIncLinksK',
                        'uri_param_override' => 'cirrusIncLinksK',
                    ],
                    'a' => [
                        'value' => 0.7,
                        'config_override' => 'CirrusSearchIncLinksA',
                        'uri_param_override' => 'cirrusIncLinksA',
                    ],
                ],
            ],
        ],
    ],
];