私の検索エンジンは、次の関数を使用して関連性を計算します。
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;
}
派手なことは何もないし、派手なことをするのに十分な時間も与えられていない. 速度の最適化について言及する必要はありません。これは関数の「機能部分」にすぎません:)
ありがとう。