В нашей поисковой системе для вычисления релевантности используется следующая функция.Могу ли я сделать эту функцию релевантности поиска лучше, не «делая передовые вещи»?
private static int calculateScore(String result, String searchStr, int modifier)
{
String[] resultWords = result.split(" ");
String[] searchWords = searchStr.split(" ");
int score = 0;
for (String searchWord : searchWords)
{
for (String resultWord : resultWords)
{
if (resultWord.equals(searchWord))
score += 10;
else if (resultWord.startsWith(searchWord))
score += 4;
else if (resultWord.endsWith(searchWord))
score += 3;
else if (resultWord.contains(searchWord))
score += 1;
}
}
return score;
}
Ничего особенного, и я не дал достаточное количество часов, чтобы сделать что-нибудь фантазию либо, но есть какие-либо простые улучшения я могу сделать, чтобы сделать функцию лучше повысят соответствующие вещи, и держать несущественный материал вниз? Не нужно замечать оптимизацию скорости, это просто «функциональная часть» функции :)
Спасибо.
http://stackoverflow.com/questions/47762/how-to-ranking-search-results – warren