1var idx = lunr(function () { 2 this.field('title') 3 this.field('excerpt') 4 this.field('categories') 5 this.field('tags') 6 this.ref('id') 7 8 this.pipeline.remove(lunr.trimmer) 9 10 for (var item in store) { 11 this.add({ 12 title: store[item].title, 13 excerpt: store[item].excerpt, 14 categories: store[item].categories, 15 tags: store[item].tags, 16 id: item 17 }) 18 } 19}); 20 21$(document).ready(function() { 22 $('input#search').on('keyup', function () { 23 var resultdiv = $('#results'); 24 var query = $(this).val().toLowerCase(); 25 var result = 26 idx.query(function (q) { 27 query.split(lunr.tokenizer.separator).forEach(function (term) { 28 q.term(term, { boost: 100 }) 29 if(query.lastIndexOf(" ") != query.length-1){ 30 q.term(term, { usePipeline: false, wildcard: lunr.Query.wildcard.TRAILING, boost: 10 }) 31 } 32 if (term != ""){ 33 q.term(term, { usePipeline: false, editDistance: 1, boost: 1 }) 34 } 35 }) 36 }); 37 resultdiv.empty(); 38 resultdiv.prepend('<p class="results__found">'+result.length+' Result(s) found</p>'); 39 for (var item in result) { 40 var ref = result[item].ref; 41 if(store[ref].teaser){ 42 var searchitem = 43 '<div class="list__item">'+ 44 '<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">'+ 45 '<h2 class="archive__item-title" itemprop="headline">'+ 46 '<a href="'+store[ref].url+'" rel="permalink">'+store[ref].title+'</a>'+ 47 '</h2>'+ 48 '<div class="archive__item-teaser">'+ 49 '<img src="'+store[ref].teaser+'" alt="">'+ 50 '</div>'+ 51 '<p class="archive__item-excerpt" itemprop="description">'+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...</p>'+ 52 '</article>'+ 53 '</div>'; 54 } 55 else{ 56 var searchitem = 57 '<div class="list__item">'+ 58 '<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">'+ 59 '<h2 class="archive__item-title" itemprop="headline">'+ 60 '<a href="'+store[ref].url+'" rel="permalink">'+store[ref].title+'</a>'+ 61 '</h2>'+ 62 '<p class="archive__item-excerpt" itemprop="description">'+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...</p>'+ 63 '</article>'+ 64 '</div>'; 65 } 66 resultdiv.append(searchitem); 67 } 68 }); 69});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.