This commit is contained in:
458
node_modules/minisearch/CHANGELOG.md
generated
vendored
Normal file
458
node_modules/minisearch/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,458 @@
|
||||
# Changelog
|
||||
|
||||
`MiniSearch` follows [semantic versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## v7.1.2
|
||||
|
||||
- [fix] Correctly specify that MiniSearch targets ES9 (ES2018), not ES6
|
||||
(ES2015), due to the use of Unicode character class escapes in the
|
||||
tokenizer RegExp. Note: the README explains how to achieve ES2015
|
||||
compatibility.
|
||||
|
||||
## v7.1.1
|
||||
|
||||
- [fix] Fix ability to pass the default `filter` search option in the
|
||||
constructor alongside other search options
|
||||
|
||||
## v7.1.0
|
||||
|
||||
- Add `boostTerm` search option to apply a custom boosting factor to specific
|
||||
terms in the query
|
||||
|
||||
## v7.0.2
|
||||
|
||||
- [fix] Fix regression on tokenizer producing blank terms when multiple
|
||||
contiguous spaces or punctuation characters are present in the input,
|
||||
introduced in `v7.0.0`.
|
||||
|
||||
## v7.0.1
|
||||
|
||||
- [fix] Fix type definitions directory in `package.json` (by
|
||||
[@brenoepics](https://github.com/brenoepics)
|
||||
- [fix] Remove redundant versions of distribution files and simplify build
|
||||
|
||||
## v7.0.0
|
||||
|
||||
This is a major release, but the only real breaking change is that it targets
|
||||
ES6 (ES2015) and later. This means that it will not work in legacy browsers,
|
||||
most notably Internet Explorer 11 and earlier (by now well below 1% global
|
||||
usage according to https://caniuse.com). Among other benefits, this reduces the
|
||||
package size (from 8.8KB to 5.8KB minified and gzipped).
|
||||
|
||||
- [breaking change] Target ES6 (ES2015) and later, dropping support for
|
||||
Internet Explorer 11 and earlier.
|
||||
- [breaking change] Better TypeScript type of `combineWith` search option
|
||||
values, catching invalid operators at compile time. Note that this is a
|
||||
breaking change only if one was using unlikely weird casing for the
|
||||
`combineWith` option. For example, `AND`, `and`, `And` are all still valid,
|
||||
but `aNd` won't compile anymore.
|
||||
- More informative error when specifying an invalid value for `combineWith`
|
||||
in JavaScript (in TypeScript this would be a compile time error)
|
||||
- Use the Unicode flag to simplify the tokenizer regular expression
|
||||
- Add `loadJSONAsync` method, to load a serialized index asynchronously
|
||||
|
||||
## v6.3.0 - 2023-11-22
|
||||
|
||||
- Add `queryTerms` array to the search results. This is useful to determine
|
||||
which query terms were matched by each search result.
|
||||
|
||||
## v6.2.0 - 2023-10-26
|
||||
|
||||
- Add the possibility to search for the special value `MiniSearch.wildcard` to
|
||||
match all documents, but still apply search options like filtering and
|
||||
document boosting
|
||||
|
||||
## v6.1.0 - 2023-05-15
|
||||
|
||||
- Add `getStoredFields` method to retrieve the stored fields for a document
|
||||
given its ID.
|
||||
|
||||
- Pass stored fields to the `boostDocument` callback function, making it
|
||||
easier to perform dynamic document boosting.
|
||||
|
||||
## v6.0.1 - 2023-02-01
|
||||
|
||||
- [fix] The `boost` search option now does not interfere with the `fields`
|
||||
search option: if `fields` is specified, boosting a field that is not
|
||||
included in `fields` has no effect, and will not include such boosted field
|
||||
in the search.
|
||||
- [fix] When using `search` with a `QuerySpec`, the `combineWith` option is
|
||||
now properly taking its default from the `SearchOptions` given as the second
|
||||
argument.
|
||||
|
||||
## v6.0.0 - 2022-12-01
|
||||
|
||||
This is a major release. The most notable change is the addition of `discard`,
|
||||
`discardAll`, and `replace`. These method make it more convenient and performant
|
||||
to remove or replace documents.
|
||||
|
||||
This release is almost completely backwards compatible with `v5`, apart from one
|
||||
breaking change in the behavior of `add` when the document ID already exists.
|
||||
|
||||
Changes:
|
||||
|
||||
- [breaking change] `add`, `addAll`, and `addAllAsync` now throw an error on
|
||||
duplicate document IDs. When necessary, it is now possible to check for the
|
||||
existence of a document with a certain ID with the new method `has`.
|
||||
- Add `discard` method to remove documents by ID. This is a convenient
|
||||
alternative to `remove` that takes only the ID of the documents to remove,
|
||||
as opposed to the whole document. The visible effect is the same as
|
||||
`remove`. The difference is that `remove` immediately mutates the index,
|
||||
while `discard` marks the current document version as discarded, so it is
|
||||
immedately ignored by searches, but delays modifying the index until a
|
||||
certain number of documents are discarded. At that point, a vacuuming is
|
||||
triggered, cleaning up the index from obsolete references and allowing
|
||||
memory to be released.
|
||||
- Add `discardAll` and `replace` methods, built on top of `discard`
|
||||
- Add vacuuming of references to discarded documents from the index. Vacuuming
|
||||
is performed automatically by default when the number of discarded documents
|
||||
reaches a threshold (controlled by the new `autoVacuum` constructor option),
|
||||
or can be triggered manually by calling the `vacuum` method. The new
|
||||
`dirtCount` and `dirtFactor` properties give the current value of the
|
||||
parameters used to decide whether to trigger an automatic vacuuming.
|
||||
- Add `termCount` property, giving the number of distinct terms present in the
|
||||
index
|
||||
- Allow customizing the parameters of the BM25+ scoring algorithm via the
|
||||
`bm25` search option.
|
||||
- Improve TypeScript type of some methods by marking the given array argument
|
||||
as `readonly`, signaling that it won't be mutated, and allowing passing
|
||||
readonly arrays.
|
||||
- Make it possible to overload the `loadJS` static method in subclasses
|
||||
|
||||
## v5.1.0
|
||||
|
||||
- The `processTerm` option can now also expand a single term into several
|
||||
terms by returning an array of strings.
|
||||
- Add `logger` option to pass a custom logger function.
|
||||
|
||||
## v5.0.0
|
||||
|
||||
This is a major release. The main change is an improved scoring algorithm based
|
||||
on [BM25+](https://en.wikipedia.org/wiki/Okapi_BM25). The new algorithm will
|
||||
cause the scoring and sorting of search results to be different than in previous
|
||||
versions (generally better), and need less aggressive boosting.
|
||||
|
||||
- [breaking change] Use the [BM25+
|
||||
algorithm](https://en.wikipedia.org/wiki/Okapi_BM25) to score search
|
||||
results, improving their quality over the previous implementation. Note
|
||||
that, if you were using field boosting, you might need to re-adjust the
|
||||
boosting amounts, since their effect is now different.
|
||||
|
||||
- [breaking change] auto suggestions now default to `combineWith: 'AND'`
|
||||
instead of `'OR'`, requiring all the query terms to match. The old defaults
|
||||
can be replicated by passing a new `autoSuggestOptions` option to the
|
||||
constructor, with value `{ autoSuggestOptions: { combineWith: 'OR' } }`.
|
||||
|
||||
- Possibility to set the default auto suggest options in the constructor.
|
||||
|
||||
- Remove redundant fields in the index data. This also changes the
|
||||
serialization format, but serialized indexes created with `v4.x.y` are still
|
||||
deserialized correctly.
|
||||
|
||||
- Define `exports` entry points in `package.json`, to require MiniSearch as a
|
||||
commonjs package or import it as a ES module.
|
||||
|
||||
## v4.0.3
|
||||
|
||||
- [fix] Fix regression causing stored fields not being saved in some
|
||||
situations.
|
||||
|
||||
## v4.0.2
|
||||
|
||||
- [fix] Fix match data on mixed prefix and fuzzy search
|
||||
|
||||
## v4.0.1
|
||||
|
||||
- [fix] Fix an issue with scoring, causing a result matching both fuzzy and
|
||||
prefix search to be scored higher than an exact match.
|
||||
|
||||
- [breaking change] `SearchableMap` method `fuzzyGet` now returns a `Map`
|
||||
instead of an object. This is a breaking change only if you directly use
|
||||
`SearchableMap`, not if you use `MiniSearch`, and is considered part of
|
||||
version 4.
|
||||
|
||||
## v4.0.0
|
||||
|
||||
- [breaking change] The serialization format was changed, to abstract away the
|
||||
internal implementation details of the index data structure. This allows for
|
||||
present and future optimizations without breaking backward compatibility
|
||||
again. Moreover, the new format is simpler, facilitating the job of tools
|
||||
that create a serialized MiniSearch index in other languages.
|
||||
|
||||
- [performance] Large performance improvements on indexing (at least 4 time
|
||||
faster in the official benchmark) and search, due to changes to the internal
|
||||
data structures and the code.
|
||||
|
||||
- [peformance] The fuzzy search algorithm has been updated to work like
|
||||
outlined in [this blog post by Steve
|
||||
Hanov](http://stevehanov.ca/blog/?id=114), improving its performance by
|
||||
several times, especially on large maximum edit distances.
|
||||
|
||||
- [fix] The `weights` search option did not have an effect due to a bug. Now
|
||||
it works as documented. Note that, due to this, the relative scoring of
|
||||
fuzzy vs. prefix search matches might change compared to previous versions.
|
||||
This change also brings a further performance improvement of both fuzzy and
|
||||
prefix search.
|
||||
|
||||
**Migration notes:**
|
||||
|
||||
If you have an index serialized with a previous version of MiniSearch, you will
|
||||
need to re-create it when you upgrade to MiniSearch `v4`.
|
||||
|
||||
Also note that loading a pre-serialized index is _slower_ in `v4` than in
|
||||
previous versions, but there are much larger performance gains on indexing and
|
||||
search speed. If you serialized an index on the server-side, it is worth
|
||||
checking if it is now fast enough for your use case to index on the client side:
|
||||
it would save you from having to re-serialize the index every time something
|
||||
changes.
|
||||
|
||||
**Acknowledgements:**
|
||||
|
||||
Many thanks to [rolftimmermans](https://github.com/rolftimmermans) for
|
||||
contributing the fixes and outstanding performance improvements that are part of
|
||||
this release.
|
||||
|
||||
|
||||
## v3.3.0
|
||||
|
||||
- Add `maxFuzzy` search option, to limit the maximum edit distance for fuzzy
|
||||
search when using fractional fuzziness
|
||||
|
||||
## v3.2.0
|
||||
|
||||
- Add AND_NOT combinator to subtract results of a subquery from another (for
|
||||
example to find documents that match one term and not another)
|
||||
|
||||
## v3.1.0
|
||||
|
||||
- Add possibility for advanced combination of subqueries as query expression
|
||||
trees
|
||||
|
||||
## v3.0.4
|
||||
|
||||
- [fix] Keep radix tree property (no node with a single child) after removal
|
||||
of an entry
|
||||
|
||||
## v3.0.3
|
||||
|
||||
- [fix] Adjust data about field lengths upon document removal
|
||||
|
||||
## v3.0.2
|
||||
|
||||
- [fix] `addAllAsync` now allows events to be processed between chunks, avoid
|
||||
blocking the UI (by [@grimmen](https://github.com/grimmen))
|
||||
|
||||
## v3.0.1
|
||||
|
||||
- [fix] Fix type signature of `removeAll` to allow calling it with no
|
||||
arguments. Also, throw a more informative error if called with a falsey
|
||||
value. Thanks to [https://github.com/nilclass](@nilclass).
|
||||
|
||||
## v3.0.0
|
||||
|
||||
This major version ports the source code to TypeScript. That made it possible
|
||||
to improve types and documentation, making sure that both are in sync with the
|
||||
actual code. It is mostly backward compatible: JavaScript users should
|
||||
experience no breaking change, while TypeScript users _might_ have toadapt
|
||||
some types.
|
||||
|
||||
- Port source to [TypeScript](https://www.typescriptlang.org), adding type
|
||||
safety
|
||||
- Improved types and documentation (now generated with [TypeDoc](http://typedoc.org))
|
||||
- [breaking change, fix] TypeScript `SearchOptions` type is not generic
|
||||
anymore
|
||||
- [breaking change] `SearchableMap` is not a static field of `MiniSearch`
|
||||
anymore: it can instead be imported separately as `minisearch/SearchableMap`
|
||||
|
||||
## v2.6.2
|
||||
|
||||
- [fix] Improve TypeScript types: default generic document type is `any`, not `object`
|
||||
|
||||
## v2.6.1
|
||||
|
||||
- No change from 2.6.0
|
||||
|
||||
## v2.6.0
|
||||
|
||||
- Better TypeScript typings using generics, letting the user (optionally)
|
||||
specify the document type.
|
||||
|
||||
## v2.5.1
|
||||
|
||||
- [fix] Fix document removal when using a custom `extractField` function
|
||||
(thanks [@ahri](https://github.com/ahri) for reporting and reproducting)
|
||||
|
||||
## v2.5.0
|
||||
|
||||
- Make `idField` extraction customizeable and consistent with other fields,
|
||||
using `extractField`
|
||||
|
||||
## v2.4.1
|
||||
|
||||
- [fix] Fix issue with the term `constructor` (reported by
|
||||
[@scambier](https://github.com/scambier))
|
||||
|
||||
- [fix] Fix issues when a field is named like a default property of JavaScript
|
||||
objects
|
||||
|
||||
## v2.4.0
|
||||
|
||||
- Convert field value to string before tokenization and indexing. This makes
|
||||
a custom field extractor unnecessary for basic cases like integers or simple
|
||||
arrays.
|
||||
|
||||
## v2.3.1
|
||||
|
||||
- Version `v2.3.1` mistakenly did not contain the commit adding `removeAll`,
|
||||
this patch release fixes it.
|
||||
|
||||
## v2.3.0
|
||||
|
||||
- Add `removeAll` method, to remove many documents, or all documents, at once.
|
||||
|
||||
## v2.2.2
|
||||
|
||||
- Avoid destructuring variables named with an underscore prefix. This plays
|
||||
nicer to some common minifier and builder configurations.
|
||||
|
||||
- Performance improvement in `getDefault` (by
|
||||
[stalniy](https://github.com/stalniy))
|
||||
|
||||
- Fix the linter setup, to ensure code style consistency
|
||||
|
||||
## v2.2.1
|
||||
|
||||
- Add `"sideEffects": false` to `package.json` to allow bundlers to perform
|
||||
tree shaking
|
||||
|
||||
## v2.2.0
|
||||
|
||||
- [fix] Fix documentation of `SearchableMap.prototype.atPrefix` (by
|
||||
[@graphman65](https://github.com/graphman65))
|
||||
- Switch to Rollup for bundling (by [stalniy](https://github.com/stalniy)),
|
||||
reducing size of build and providing ES6 and ES5 module versions too.
|
||||
|
||||
## v2.1.4
|
||||
|
||||
- [fix] Fix document removal in presence of custom per field tokenizer, field
|
||||
extractor, or term processor (thanks [@CaptainChaos](https://github.com/CaptainChaos))
|
||||
|
||||
## v2.1.3
|
||||
|
||||
- [fix] Fix TypeScript definition for `storeFields` option (by
|
||||
[@ryan-codingintrigue](https://github.com/ryan-codingintrigue))
|
||||
|
||||
## v2.1.2
|
||||
|
||||
- [fix] Fix TypeScript definition for `fuzzy` option (by
|
||||
[@alessandrobardini](https://github.com/alessandrobardini))
|
||||
|
||||
## v2.1.1
|
||||
|
||||
- [fix] Fix TypeScript definitions adding `filter` and `storeFields` options
|
||||
(by [@emilianox](https://github.com/emilianox))
|
||||
|
||||
## v2.1.0
|
||||
|
||||
- [feature] Add support for stored fields
|
||||
|
||||
- [feature] Add filtering of search results and auto suggestions
|
||||
|
||||
## v2.0.6
|
||||
|
||||
- Better TypeScript definitions (by [@samuelmeuli](https://github.com/samuelmeuli))
|
||||
|
||||
## v2.0.5
|
||||
|
||||
- Add TypeScript definitions for ease of use in TypeScript projects
|
||||
|
||||
## v2.0.4
|
||||
|
||||
- [fix] tokenizer behavior with newline characters (by [@samuelmeuli](https://github.com/samuelmeuli))
|
||||
|
||||
## v2.0.3
|
||||
|
||||
- Fix small imprecision in documentation
|
||||
|
||||
## v2.0.2
|
||||
|
||||
- Add `addAllAsync` method, adding many documents asynchronously and in chunks
|
||||
to avoid blocking the main thread
|
||||
|
||||
## v2.0.1
|
||||
|
||||
- Throw a more descriptive error when `loadJSON` is called without options
|
||||
|
||||
## v2.0.0
|
||||
|
||||
This release introduces better defaults. It is considered a major release, as
|
||||
the default options are slightly different, but the API is not changed.
|
||||
|
||||
- *Breaking change*: default tokenizer splits by Unicode space or punctuation
|
||||
(before it was splitting by space, punctuation, or _symbol_). The difference
|
||||
is that currency symbols and other non-punctuation symbols will not be
|
||||
discarded: "it's 100€" is now tokenized as `["it", "s", "100€"]` instead of
|
||||
`["it", "s", "100"]`.
|
||||
|
||||
- *Breaking change*: default term processing does not discard 1-character
|
||||
words.
|
||||
|
||||
- *Breaking change*: auto suggestions by default perform prefix search only on
|
||||
the last term in the query. So "super cond" will suggest "super
|
||||
conductivity", but not "superposition condition".
|
||||
|
||||
## v1.3.1
|
||||
|
||||
- Better and more compact regular expression in the default tokenizer,
|
||||
separating on Unicode spaces, punctuation, and symbols
|
||||
|
||||
## v1.3.0
|
||||
|
||||
- Support for non-latin scripts
|
||||
|
||||
## v1.2.1
|
||||
|
||||
- Improve fuzzy search performance (common cases are now ~4x faster, as shown
|
||||
by the benchmark)
|
||||
|
||||
## v1.2.0
|
||||
|
||||
- Add possibility to configure a custom field extraction function by setting
|
||||
the `extractField` option (to support cases like nested fields, non-string
|
||||
fields, getter methods, field pre-processing, etc.)
|
||||
|
||||
## v1.1.2
|
||||
|
||||
- Add `getDefault` static method to get the default value of configuration options
|
||||
|
||||
## v1.1.1
|
||||
|
||||
- Do not minify library when published as NPM package. Run `yarn
|
||||
build-minified` (or `npm run build-minified`) to produce a minified build
|
||||
with source maps.
|
||||
- **Bugfix**: as per specification, `processTerm` is called with only one
|
||||
argument upon search (see [#5](https://github.com/lucaong/minisearch/issues/5))
|
||||
|
||||
## v1.1.0
|
||||
|
||||
- Add possibility to configure separate index-time and search-time
|
||||
tokenization and term processing functions
|
||||
- The `processTerm` function can now reject a term by returning a falsy value
|
||||
- Upon indexing, the `tokenize` and `processTerm` functions receive the field
|
||||
name as the second argument. This makes it possible to process or tokenize
|
||||
each field differently.
|
||||
|
||||
## v1.0.1
|
||||
|
||||
- Reduce bundle size by optimizing babel preset env options
|
||||
|
||||
## v1.0.0
|
||||
|
||||
Production-ready release.
|
||||
|
||||
Features:
|
||||
|
||||
- Space-optimized index
|
||||
- Exact match, prefix match, fuzzy search
|
||||
- Auto suggestions
|
||||
- Add/remove documents at any time
|
Reference in New Issue
Block a user