UNPKG

980 BJavaScriptView Raw
1window.Searcher = (function() {
2 function Searcher() {
3 this._index = lunr(function () {
4 this.field('title', {boost: 10})
5 this.field('body')
6 this.ref('id')
7 }) ;
8
9 this._indexContent = undefined;
10 }
11
12 Searcher.prototype.init = function() {
13 var self = this;
14
15 $("script[type='text/x-docstrap-searchdb']").each(function(idx, item) {
16 self._indexContent = JSON.parse(item.innerHTML);
17
18 for (var entryId in self._indexContent) {
19 self._index.add(self._indexContent[entryId]);
20 }
21 });
22 };
23
24 Searcher.prototype.search = function(searchTerm) {
25 var results = [],
26 searchResults = this._index.search(searchTerm);
27
28 for (var idx = 0; idx < searchResults.length; idx++) {
29 results.push(this._indexContent[searchResults[idx].ref])
30 }
31
32 return results;
33 };
34
35 return new Searcher();
36})();
\No newline at end of file