accurate-search
Version:
The fastest and most accurate javascript full-text search library. Accurate search uses match distance algorithm to return the accurate order of the matching items.
57 lines (43 loc) • 1.48 kB
JavaScript
const AccurateSearch = require('./accuratesearch.min.js')
let movies = ['The Lighthouse', 'Marriage Story', 'The Irishman', 'Transit', 'A Hidden Life', 'Little Women',
'Uncut Gems', 'Under the Silver Lake', 'The Beach Bum', 'Gloria Bell', 'An Elephant Sitting Still',
'Portrait of a Lady on Fire', 'Apollo 11', 'The Souvenir', 'Pain and Glory', 'Parasite'
]
let ratings = [8.0, 8.6, 8.3]
console.log('\nSearch')
//Initialize search
let accurateSearch = new AccurateSearch()
//Add data
for (let i = 0; i < movies.length; i++) {
accurateSearch.addText(i, movies[i])
}
//Search
let t = Date.now()
let foundIds = accurateSearch.search('a')
console.log(Date.now() - t + ' ms')
//Show results
for (let id of foundIds) console.log(movies[id])
console.log('\nSearch with ratings')
//Initialize search
accurateSearch = new AccurateSearch()
//Add data
for (let i = 0; i < movies.length; i++) {
accurateSearch.addText(i, movies[i], 100 - 10 * ratings[i])
}
//Search
foundIds = accurateSearch.search('e')
//Show results
for (let id of foundIds) console.log(movies[id])
console.log('\nSearch suggestions')
//Initialize search
accurateSearch = new AccurateSearch()
//Add data
for (let i = 0; i < movies.length; i++) {
accurateSearch.addText(i, movies[i])
}
//Search
t = Date.now()
let suggestions = accurateSearch.suggestions('l')
console.log(Date.now() - t + ' ms')
//Show results
for (let s of suggestions) console.log(s)