Changeset 414
- Timestamp:
- 12/19/07 10:39:39 (5 years ago)
- Files:
-
- 1 modified
-
trunk/idldoc/src/resources/search.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/idldoc/src/resources/search.js
r413 r414 18 18 var SCORE = 12; 19 19 var MATCHES = 13; 20 var SORT = 14;21 20 22 21 var SCORE_VALUES = new Array(0, 0, 0, 8, 6, 10, 4, 6, 8, 4); … … 83 82 } 84 83 84 function sortByScore(a, b) { 85 return b[SCORE] - a[SCORE]; 86 } 87 85 88 86 89 function sortResults() { 87 90 for (item = 0; item < libdata.length; item++) { 88 libdata[item][SORT] = item; 89 } 90 91 for (item = 0; item < libdata.length; item++) { 92 if (libdata[item][N_MATCHES] > 0) { 93 libdata[item][SCORE] = item; 91 if (libdata[item][N_MATCHES] > 0) { 94 92 matchType = libdata[item][MATCH_TYPE]; 95 93 typeMultiplier = SCORE_VALUES[matchType]; 96 94 matchPercentage = libdata[item][N_MATCHES] * searchString.length / libdata[item][matchType].length; 97 libdata[item][SCORE] = Math.round(typeMultiplier * matchPercentage); 98 } 99 } 100 101 for (item = 1; item < libdata.length; item++) { 102 tempScore = libdata[item][SCORE]; 103 tempSort = libdata[item][SORT]; 104 105 for (k = item; k > 1 && tempScore > libdata[k - 1][SCORE]; k--) { 106 libdata[k][SCORE] = libdata[k - 1][SCORE]; 107 libdata[k][SORT] = libdata[k - 1][SORT]; 108 } 109 110 libdata[k][SCORE] = tempScore; 111 libdata[k][SORT] = tempSort; 112 } 95 libdata[item][SCORE] = typeMultiplier * matchPercentage; 96 } 97 } 98 99 libdata = libdata.sort(sortByScore); 113 100 } 114 101 … … 147 134 function putItem(item) { 148 135 mType = libdata[item][MATCH_TYPE]; 149 width = 2 * libdata[item][SCORE];136 width = Math.round(2 * libdata[item][SCORE]); 150 137 151 138 html += "<li>"; … … 156 143 html += "..." + libdata[item][mType].substring(libdata[item][MATCHES] - 5, libdata[item][MATCHES] + 15) + "...<br/>"; 157 144 158 html += "Score: " + libdata[item][SCORE];145 html += "Score: " + Math.round(10 * libdata[item][SCORE]) / 10; 159 146 html += " - " + libdata[item][N_MATCHES] + " matches "; 160 147 … … 195 182 196 183 for (var item = 0; item < libdata.length; item++) { 197 if (libdata[ libdata[item][SORT]][N_MATCHES] > 0) {198 putItem( libdata[item][SORT]);184 if (libdata[item][N_MATCHES] > 0) { 185 putItem(item); 199 186 } 200 187 }
