src/search/SearchScores.php (30 lines of code) (raw):
<?hh // strict
/*
* Copyright (c) 2004-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
namespace HHVM\UserDocumentation;
abstract final class SearchScores {
///// Base scores /////
const float EXACT_MATCH_SCORE = 100.0;
const float PREFIX_MATCH_SCORE = 90.0;
const float SUFFIX_MATCH_SCORE = 90.0;
const float WORD_MATCH_SCORE = 90.0;
const float SUBSTRING_MATCH_SCORE = 2.0;
const float HARDCODED_RESULT_SCORE = 200.0;
///// Penalties /////
// e.g. search for 'map set', find HH\Map::set
const float IN_ORDER_WORD_SPLIT_MULTIPLIER = 0.9;
// e.g. search for 'map set', find HH\Set::map
const float OUT_OF_ORDER_WORD_SPLIT_MULTIPLIER = 0.5;
const float COMPONENT_MATCH_MULTIPLIER = 0.9;
const float SYNONYM_MATCH_MULTIPLIER = 0.5;
const float SHORT_MATCH_MULTIPLIER = 0.1;
// raw is length/distance
const float LEVENSHTEIN_MULTIPLIER = 8.0;
const float HREF_MATCH_MULTIPLIER = 0.5;
const float CONTENT_MATCH_MULTIPLIER = 0.1;
///// API Reference Weights ///
const float HSL_API_MULTIPLIER = 4.0;
const float HSL_LEGACY_FIXME_API_MULTIPLIER = 0.2;
const float HACK_API_MULTIPLIER = 1.0;
const float FUNCTION_MULTIPLIER = 1.0;
const float METHOD_MULTIPLIER = 0.9;
const float CLASS_MULTIPLIER = 1.2;
const float INTERFACE_MULTIPLIER = 1.0;
const float TRAIT_MULTIPLIER = 1.0;
///// Guide Weights /////
const float GUIDES_MULTIPLIER = 3.0;
const float GUIDES_BOOST = 5.0;
// e.g. async/introduction before async/extensions
const float GUIDE_INTRODUCTION_MULTIPLIER = 1.1;
}
;