Моя поисковая система использует следующую функцию для расчета релевантности.
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;
}
Ничего особенного, и мне тоже не дали достаточно времени, чтобы сделать что-нибудь причудливое, но есть ли какие-то простые улучшения, которые я могу сделать, чтобы сделать функцию лучше, увеличивая соответствующие вещи и подавляя ненужные вещи?
Не нужно замечать оптимизацию скорости, это всего лишь «функциональная часть» функции:)
Спасибо.