sort by words matched then by frequency

git-svn-id: http://svn.openlayers.org/trunk/openlayers@7098 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Tim Schaub
2008-05-08 08:56:38 +00:00
parent 8eee248117
commit c6d8d6d559
+26 -4
View File
@@ -98,9 +98,14 @@
for(exIndex in dict) { for(exIndex in dict) {
var count = dict[exIndex]; var count = dict[exIndex];
if(scores[exIndex]) { if(scores[exIndex]) {
scores[exIndex] += count; if(scores[exIndex][word]) {
scores[exIndex][word] += count;
} else {
scores[exIndex][word] = count;
}
} else { } else {
scores[exIndex] = count; scores[exIndex] = {};
scores[exIndex][word] = count;
} }
} }
} }
@@ -111,9 +116,26 @@
ex.score = scores[j]; ex.score = scores[j];
examples.push(ex); examples.push(ex);
} }
// sort examples by descending score // sort examples by first by number of words matched, then
// by word frequency
examples.sort(function(a, b) { examples.sort(function(a, b) {
return (b.score - a.score); var cmp;
var aWords = 0, bWords = 0;
var aScore = 0, bScore = 0;
for(var i in a.score) {
aScore += a.score[i];
aWords += 1;
}
for(var j in b.score) {
bScore += b.score[j];
bWords += 1;
}
if(aWords == bWords) {
cmp = bScore - aScore;
} else {
cmp = bWords - aWords;
}
return cmp;
}); });
} }
listExamples(examples); listExamples(examples);