| | 124 | // override TiddlyWiki.search() to sort by relevance |
| | 125 | TiddlyWiki.prototype.search = function(searchRegExp, sortField, excludeTag, match) { |
| | 126 | var candidates = this.reverseLookup("tags", excludeTag, !!match); |
| | 127 | var primary = []; |
| | 128 | var secondary = []; |
| | 129 | for(var t = 0; t < candidates.length; t++) { |
| | 130 | if(candidates[t].title.search(searchRegExp) != -1) { |
| | 131 | primary.push(candidates[t]); |
| | 132 | } else if(candidates[t].text.search(searchRegExp) != -1) { |
| | 133 | secondary.push(candidates[t]); |
| | 134 | } |
| | 135 | } |
| | 136 | var results = primary.concat(secondary); |
| | 137 | if(sortField) { |
| | 138 | results.sort(function(a, b) { |
| | 139 | return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1); |
| | 140 | }); |
| | 141 | } |
| | 142 | return results; |
| | 143 | }; |
| | 144 | |