Changelog
2.3.9
- 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.
2.3.4
2.3.3
- 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
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.
2.2.1
- Fix bug #344 in logic
for required terms in multiple fields, thanks Stephane Mankowski.
- Upgrade mocha and fix some test snafus.
2.2.0
- 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.
1.0.0
- Deprecate incorrectly spelled lunr.tokenizer.separator.
- No other changes, but bumping to 1.0.0 because it's overdue, and the
interfaces are pretty stable now. It also paves the way for
2.0.0...
0.7.2
- Fix bug when loading a serialised tokeniser #226, thanks
Alex Turpin for reporting
the issue.
- Learn how to spell separator #223, thanks peterennis for helping me learn
to spell.
0.7.1
0.7.0
- 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
0.5.10
0.5.9
- Remove recursion from SortedSet#indexOf and SortedSet#locationFor to
gain small performance gains in Index#search and Index#add
- Fix incorrect handling of non existant functions when
adding/removing from a Pipeline #146 thanks to
weixsong
0.5.8
0.5.7
0.5.6
- Performance improvement when add documents to the index #114 thanks Alex Holmes
0.5.5
0.5.4
0.5.3
0.5.2
- Use npm they said, it'll be easy they said.
0.5.1
0.5.0
- Add plugin support to enable i18n and other extensions to lunr.
- Add AMD support #72 thanks lnwdr.
- lunr.Vector now implemented using linked lists for better
performance especially in indexes with large numbers of unique
tokens.
- Build system clean up.
0.4.5
- Fix performance regression introduced in 0.4.4 by fixing #64.
0.4.4
- Fix bug #64 idf cache
should handle tokens with the same name as object properties, thanks gitgrimbo.
- Intersperse source files with a semicolon as part of the build
process, fixes #61, thanks shyndman.
0.4.3
- Fix bug #49 tokenizer
should handle null and undefined as arguments, thanks jona.
0.4.2
- Fix bug #47 tokenizer
converts its input to a string before trying to split it into tokens,
thanks mikhailkozlov.
0.4.1
- Fix bug #41 that caused
issues when indexing mixed case tags, thanks Aptary
0.4.0
- Add index mutation events ('add', 'update' and 'remove').
- Performance improvements to searching.
- Penalise non-exact matches so exact matches are better ranked than
expanded matches.
0.3.3
- Fix bug #32 which
prevented lunr being used where a
console
object is not
present, thanks Tony Marklove
and wyuenho
0.3.2
- Fix bug #27 when trying
to calculate tf with empty fields, thanks Gambhiro
0.3.1
0.3.0
- Implement JSON
serialisation, allows indexes to be loaded and dumped, thanks ssured.
- Performance improvements to searching and indexing.
- Fix bug #15 with
tokeniser that added stray empty white space to the index, thanks ssured.
0.2.3
0.2.2
- Boost exact term matches so they are better ranked than expanded
term matches, fixes #10, thanks ssured
0.2.1