securityos/node_modules/lunr/perf/search_perf.js

73 lines
1.7 KiB
JavaScript

suite('search', function () {
var documents = [{
id: 'a',
title: 'Mr. Green kills Colonel Mustard',
body: 'Mr. Green killed Colonel Mustard in the study with the candlestick. Mr. Green is not a very nice fellow.',
wordCount: 19
},{
id: 'b',
title: 'Plumb waters plant',
body: 'Professor Plumb has a green plant in his study',
wordCount: 9
},{
id: 'c',
title: 'Scarlett helps Professor',
body: 'Miss Scarlett watered Professor Plumbs green plant while he was away from his office last week.',
wordCount: 16
}]
var idx = lunr(function () {
this.ref('id')
this.field('title')
this.field('body')
documents.forEach(function (doc) {
this.add(doc)
}, this)
})
this.add('single term', function () {
idx.search('green')
})
this.add('multi term', function () {
idx.search('green plant')
})
this.add('trailing wildcard', function () {
idx.search('pl*')
})
this.add('leading wildcard', function () {
idx.search('*ant')
})
this.add('contained wildcard', function () {
idx.search('p*t')
})
this.add('with field', function () {
idx.search('title:plant')
})
this.add('edit distance', function () {
idx.search('plint~2')
})
this.add('typeahead', function () {
idx.query(function (q) {
q.term("pl", { boost: 100, usePipeline: true })
q.term("pl", { boost: 10, usePipeline: false, wildcard: lunr.Query.wildcard.TRAILING })
q.term("pl", { boost: 1, editDistance: 1 })
})
})
this.add('negated query', function () {
idx.search('-plant')
})
this.add('required term', function () {
idx.search('green +plant')
})
})