Changeset View
Changeset View
Standalone View
Standalone View
src/search/PhutilSearchStemmer.php
Show All 39 Lines | private function applyStemmer($normalized_token) { | ||||
static $loaded; | static $loaded; | ||||
if ($loaded === null) { | if ($loaded === null) { | ||||
$root = dirname(phutil_get_library_root('phutil')); | $root = dirname(phutil_get_library_root('phutil')); | ||||
require_once $root.'/externals/porter-stemmer/src/Porter.php'; | require_once $root.'/externals/porter-stemmer/src/Porter.php'; | ||||
$loaded = true; | $loaded = true; | ||||
} | } | ||||
return Porter::stem($normalized_token); | $stem = Porter::stem($normalized_token); | ||||
// If the stem is too short, it won't be a candidate for indexing. These | |||||
// tokens are also likely to be acronyms (like "DNS") rather than real | |||||
// English words. | |||||
if (strlen($stem) < 3) { | |||||
return $normalized_token; | |||||
} | |||||
return $stem; | |||||
} | } | ||||
} | } |