NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3488 most downloaded on npm
Simple full-text search in your browser.
Last release 6 years ago
no release in 18 months
Ships unpredictably
gaps range from 2 weeks to 10 months
Nearly every release is documented
notes for 54 of 55 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
64 releases · first in 2013
Fix bug #469 where a union with a complete set returned a non-complete set. Thanks Bertrand Le Roy for reporting and fixing.
Fix bug #422 where a pipline function that returned null was not skipping the token as described in the documentation. Thanks Stephen Cleary and Rob H
One column per quarter.
Fix bug #417 where leading white space would cause token position metadata to be reported incorrectly. Thanks Rob Hoelz for the fix.
Fix bug #390 with fuzzy matching that meant deletions at the end of a word would not match. Thanks Luca Ongaro for reporting.
Fix bug #375 with fuzzy matching that meant insertions at the end of a word would not match. Thanks Luca Ongaro for reporting and to Rob Hoelz for pro
Array.isArray when checking for results from pipeline functions to support vm.runInContext, #381 thanks Rob Hoelz.Ensure that inverted index is prototype-less after serialization, thanks Rob Hoelz.
Fig bugs #270 and #368, some wildcard searches over long tokens could be extremely slow, potentially pinning the current thread indefinitely. Thanks K
Fix bug #369 in parsing queries that include either a boost or edit distance modifier followed by a presence modifier on a subsequent term. Thanks mtd
Add workaround for inconsistent browser behaviour #279, thanks Luca Ongaro.
lunr.Set #360, thanks Brandon Bethke for reporting.Add support for build time field and document boosts.
Fix bug #344 in logic for required terms in multiple fields, thanks Stephane Mankowski.
Add support for queries with term presence, e.g. required terms and prohibited terms.
lunr.tokenizer directly with lunr.Query#term.lunr.Index constructor, thanks Michael Manukyan.Nothing published for this version
Nothing published for this version
Improve pipeline performance for large fields #329, thanks andymcm.
Fix bug #320 which caused result metadata to be nested under search term instead of field name. Thanks Jonny Gerig Meyer for reporting and fixing.
Cache inverse document calculation during build to improve build performance.
Remove private tag from lunr.Builder#build, it should be public, thanks Sean Tan.
lunr.Builder#build, it should be public, thanks Sean Tan.Fix bug #282 which caused metadata stored in the index to be mutated during search, thanks Andrew Aldridge.
Fix bug #280 in builder where an object with prototype was being used as a Map, thanks Pete Bacon Darwin.
Improve handling of term boosts across multiple fields #263
Nothing published for this version
Nothing published for this version
Fix bug in IDF calculation that meant the weight for common words was not correctly calculated.
Fix bug #256 where duplicate query terms could cause a 'duplicate index' error when building the query vector. Thanks Bjorn Svensson, Jason Feng, and
Fix bug #255 where search queries used a different separator than the tokeniser causing some terms to not be searchable. Thanks Wes Cossick for report
Fix regression #254 where documents containing terms that match properties from Object.prototype cause errors during indexing. Thanks VonFry for repor
Indexes are now immutable, this allows for more space efficient indexes, more advanced searching and better performance.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Deprecate incorrectly spelled lunr.tokenizer.separator.
Fix bug when loading a serialised tokeniser #226, thanks Alex Turpin for reporting the issue.
Correctly set the license using the @license doc tag #217, thanks Carlos Araya.
Make tokenizer a property of the index, allowing for different indexes to use different tokenizers #205 and #21.
Ensure document ref property type is preserved when returning results #117, thanks Kyle Kirby.
lunr.generateStopWordFilter for generating a stop word filter from a provided list of stop words.String.prototype.charAt #186, thanks jkellerer.lunr.trimmer to lunr.Pipeline.prototype.run so that empty tokens do not enter the index, regardless of the trimmer being used #178, #177 and #174lunr.tokenizer, fixes #102.Implement lunr.stopWordFilter with an object instead of using lunr.SortedSet #170, resulting in a performance boost for the text processing pipeline,
lunr.stopWordFilter with an object instead of using lunr.SortedSet #170, resulting in a performance boost for the text processing pipeline, thanks to Brian Vaughn.lunr.trimmer does not introduce empty tokens into the index, #166, thanks to janeisklarFix bug when using the unminified build of lunr in some project builds, thanks Alessio Michelini
Fix bug in IDF calculation, thanks to weixsong for discovering the issue.
Remove recursion from SortedSet#indexOf and SortedSet#locationFor to gain small performance gains in Index#search and Index#add
Fix deprecated use of path.exists in test server #141 thanks wei song
Performance improvement for stemmer #124 thanks Tony Jacobs
Performance improvement when add documents to the index #114 thanks Alex Holmes
Fix bug in tokenizer introduced in 0.5.4 #101 thanks Nolan Lawson
Tokenizer also splits on hyphens #98 thanks Nolan Lawson
Correctly stem words ending with the letter 'y' #84 thanks Mihai Valentin
Use npm they said, it'll be easy they said.
* Because npm issues :(
Fix performance regression introduced in 0.4.4 by fixing #64.
Fix bug #64 idf cache should handle tokens with the same name as object properties, thanks gitgrimbo.
Fix bug #49 tokenizer should handle null and undefined as arguments, thanks jona.
Fix bug #47 tokenizer converts its input to a string before trying to split it into tokens, thanks mikhailkozlov.
Fix bug #41 that caused issues when indexing mixed case tags, thanks Aptary
Add index mutation events ('add', 'update' and 'remove').
Fix bug #32 which prevented lunr being used where a console object is not present, thanks Tony Marklove and wyuenho
console object is not present, thanks Tony Marklove and wyuenhoFix bug #27 when trying to calculate tf with empty fields, thanks Gambhiro
Fix bug #24 that caused an error when trying to remove a non-existant document from the index, thanks Jesús Leganés Combarro
Implement JSON serialisation, allows indexes to be loaded and dumped, thanks ssured.
Your coding agent can read these notes before it upgrades. Set up the MCP server →