36 lines
		
	
	
		
			980 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			980 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								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();
							 | 
						||
| 
								 | 
							
								})();
							 |