Fix bug #469 where a union with a complete set returned a non-complete set. Thanks Bertrand Le Roy for reporting and fixing.
2.3.8
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 Hoelz for reporting and investigating.
2.3.7
Fix bug #417 where leading white space would cause token position metadata to be reported incorrectly. Thanks Rob Hoelz for the fix.
2.3.6
Fix bug #390 with fuzzy matching that meant deletions at the end of a word would not match. Thanks Luca Ongaro for reporting.
2.3.5
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 providing a fix.
Switch to using Array.isArray when checking for results from pipeline functions to support vm.runInContext, #381 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 Kyle Spearrin and Mohamed Eltuhamy for reporting.
2.3.2
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 mtdjr for reporting.
2.3.1
Add workaround for inconsistent browser behaviour #279, thanks Luca Ongaro.
Fix bug in intersect/union of lunr.Set#360, thanks Brandon Bethke for reporting.
2.3.0
Add support for build time field and document boosts.
Add support for indexing nested document fields using field extractors.
Prevent usage of problematic characters in field names, thanks Stephane Mankowski.
Fix bug when using an array of tokens in a single query term, thanks Michael Manukyan.
Add support for queries with term presence, e.g. required terms and prohibited terms.
Add support for using the output of lunr.tokenizer directly with lunr.Query#term.
Add field name metadata to tokens in build and search pipelines.
Fix documentation for lunr.Index constructor, thanks Michael Manukyan.
2.1.6
Improve pipeline performance for large fields #329, thanks andymcm.
2.1.5
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.
2.1.4
Cache inverse document calculation during build to improve build performance.
Introduce new method for combining term metadata at search time.
Improve performance of searches with duplicate search terms.
Tweaks to build process.
2.1.3
Remove private tag from lunr.Builder#build, it should be public, thanks Sean Tan.
2.1.2
Fix bug #282 which caused metadata stored in the index to be mutated during search, thanks Andrew Aldridge.
2.1.1
Fix bug #280 in builder where an object with prototype was being used as a Map, thanks Pete Bacon Darwin.
2.1.0
Improve handling of term boosts across multiple fields #263
Enable escaping of special characters when performing a search #271
Add ability to programatically include leading and trailing wildcards when performing a query.
2.0.4
Fix bug in IDF calculation that meant the weight for common words was not correctly calculated.
2.0.3
Fix bug #256 where duplicate query terms could cause a 'duplicate index' error when building the query vector. Thanks Bjorn Svensson, Jason Feng, and et1421 for reporting and confirming the issue.
2.0.2
Fix bug #255 where search queries used a different separator than the tokeniser causing some terms to not be searchable. Thanks Wes Cossick for reporting.
Reduce precision of term scores stored in document vectors to reduce the size of serialised indexes by ~15%, thanks Qvatra for the idea.
2.0.1
Fix regression #254 where documents containing terms that match properties from Object.prototype cause errors during indexing. Thanks VonFry for reporting.
2.0.0
Indexes are now immutable, this allows for more space efficient indexes, more advanced searching and better performance.
Text processing can now attach metadata to tokens the enter the index, this opens up the possibility of highlighting search terms in results.
More advanced searching including search time field boosts, search by field, fuzzy matching and leading and trailing wildcards.
Make tokenizer a property of the index, allowing for different indexes to use different tokenizers #205 and #21.
Fix bug that prevented very large documents from being indexed #203, thanks Daniel Grießhaber.
Performance improvements when adding documents to the index #208, thanks Dougal Matthews.
0.6.0
Ensure document ref property type is preserved when returning results #117, thanks Kyle Kirby.
Introduce lunr.generateStopWordFilter for generating a stop word filter from a provided list of stop words.
Replace array-like string access with ES3 compatible String.prototype.charAt#186, thanks jkellerer.
Move empty string filtering from 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 #174
Allow tokenization of arrays with null and non string elements #172.
Parameterize the seperator used by lunr.tokenizer, fixes #102.
0.5.12
Implement 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.
Ensure that lunr.trimmer does not introduce empty tokens into the index, #166, thanks to janeisklar
## 0.5.11
Fix bug when using the unminified build of lunr in some project builds, thanks Alessio Michelini
0.5.10
Fix bug in IDF calculation, thanks to weixsong for discovering the issue.