Merge pull request 'Adjust search result sort order to penalize scriptiness a bit' (#82) from master into release

Reviewed-on: https://git.marginalia.nu/marginalia/marginalia.nu/pulls/82
This commit is contained in:
Viktor Lofgren 2022-08-08 19:01:25 +02:00
commit 48cfa9db97
2 changed files with 23 additions and 2 deletions

View File

@ -92,9 +92,10 @@ public class EdgeUrlDetails {
public String getQualityPercent() { public String getQualityPercent() {
return String.format("%2.2f%%", 100*Math.exp(urlQuality+urlQualityAdjustment.getScore())); return String.format("%2.2f%%", 100*Math.exp(urlQuality+urlQualityAdjustment.getScore()));
} }
public double getRanking() { public double getRanking() {
double lengthAdjustment = Math.max(1, words / (words + 1000.)); double lengthAdjustment = Math.max(1, words / (words + 1000.));
return (1+termScore)*Math.sqrt(1+rankingId)/Math.max(1E-10, lengthAdjustment *(0.7+0.3*Math.exp(urlQualityAdjustment.getScore()))); return getFeatureScore()*Math.sqrt(1+rankingId)/Math.max(1E-10, lengthAdjustment *(0.7+0.3*Math.exp(urlQualityAdjustment.getScore())));
} }
public int getSuperficialHash() { public int getSuperficialHash() {
@ -143,4 +144,23 @@ public class EdgeUrlDetails {
public String getRankingSymbolDesc() { public String getRankingSymbolDesc() {
return EdgeSearchRankingSymbols.getRankingSymbolDescription(termScore); return EdgeSearchRankingSymbols.getRankingSymbolDescription(termScore);
} }
public double getFeatureScore() {
double score = 1;
if (isScripts()) {
score+=1;
} else if(!"HTML5".equals(format)) {
score+=0.5;
}
if (isAffiliate()) {
score += 2.5;
}
if (isTracking()) {
score += 1.5;
}
if (isCookies()) {
score += 1.5;
}
return score;
}
} }

View File

@ -73,7 +73,8 @@ public class EdgeSearchOperator {
this.valuator = valuator; this.valuator = valuator;
Comparator<EdgeUrlDetails> c = Comparator.comparing(ud -> Math.round(10*(ud.getTermScore() - ud.rankingIdAdjustment()))); Comparator<EdgeUrlDetails> c = Comparator.comparing(ud -> Math.round(10*(ud.getTermScore() - ud.rankingIdAdjustment())));
resultListComparator = c.thenComparing(EdgeUrlDetails::getRanking).thenComparing(EdgeUrlDetails::getId); resultListComparator = c.thenComparing(EdgeUrlDetails::getRanking)
.thenComparing(EdgeUrlDetails::getId);
} }
public List<EdgeUrlDetails> doApiSearch(Context ctx, public List<EdgeUrlDetails> doApiSearch(Context ctx,