Tantivy 0.10.0 is released.
Tantivy is a search engine library inspired by Lucene.
It is already fast.
I think it is fair to say this release does not contain any major changes, considering
the amount of time since last release.
Life have been pretty busy, and a large amount of my tantivy time is spent answering emails/issues/messages nowadays.
Fortunately, tantivy now has a lot of contributors that can help polish the project into a great search engine library.
Kudos to @hntd187, @petr-tik, @fdb-hiroshima, @kompass, @uvd, and @drusellers for the great work!
Thanks also to all of the patreons :
Colin, Florian, Frederik, Nate, Sanghyeon, Stephen and Zane!
Any kind of support -communication, code, patreon- really helps tantivy!
Here goes the changelog :
Tantivy 0.10.0
Tantivy 0.10.0 index format is compatible with the index format in 0.9.0.
-
Added an API to easily tweak or entirely replace the
default score. See TopDocs::tweak_score
and TopScore::custom_score
(@pmasure
l)
-
Added an ASCII folding filter (@drusellers)
-
Bugfix in query.count
in presence of deletes (@pmasurel)
-
Added .explain(...)
in Query
and Weight
to (@pmasurel)
-
Added an efficient way to delete_all_documents
in IndexWriter
(@petr-tik).
All segments are simply removed.
Minor
- Switched to Rust 2018 (@uvd)
- Small simplification of the code.
Calling .freq() or .doc() when .advance() has never been called
on segment postings should panic from now on.
- Tokens exceeding
u16::max_value() - 4
chars are discarded silently instead o
f panicking.
- Fast fields are now preloaded when the
SegmentReader
is created.
IndexMeta
is now public. (@hntd187)
IndexWriter
add_document
, delete_term
. IndexWriter
is Sync
, making i
t possible to use it with a Arc<RwLock<IndexWriter>>
. add_document
and delete_term
can
only require a read lock. (@pmasurel)
- Introducing
Opstamp
as an expressive type alias for u64
. (@petr-tik)
- Stamper now relies on
AtomicU64
on all platforms (@petr-tik)
- Bugfix - Files get deleted slightly earlier
- Compilation resources improved (@fdb-hiroshima)
How to update?
Your program should be usable as is.
Fast fields
Fast fields used to be accessed directly from the SegmentReader
.
The API changed, you are now required to acquire your fast field reader via the
segment_reader.fast_fields()
, and use one of the typed method:
.u64()
, .i64()
if your field is single-valued ;
.u64s()
, .i64s()
if your field is multi-valued ;
.bytes()
if your field is bytes fast field.