123456789101112131415161718192021222324252627282930313233343536 |
- window.Searcher = (function() {
- function Searcher() {
- this._index = lunr(function () {
- this.field('title', {boost: 10})
- this.field('body')
- this.ref('id')
- }) ;
- this._indexContent = undefined;
- }
- Searcher.prototype.init = function() {
- var self = this;
- $("script[type='text/x-docstrap-searchdb']").each(function(idx, item) {
- self._indexContent = JSON.parse(item.innerHTML);
- for (var entryId in self._indexContent) {
- self._index.add(self._indexContent[entryId]);
- }
- });
- };
- Searcher.prototype.search = function(searchTerm) {
- var results = [],
- searchResults = this._index.search(searchTerm);
- for (var idx = 0; idx < searchResults.length; idx++) {
- results.push(this._indexContent[searchResults[idx].ref])
- }
- return results;
- };
- return new Searcher();
- })();
|