ownedbytes
Expose data as static slice
0.9.0
17M downloads/mo
#2334 most downloaded on crates.io
quickwit-oss/tantivy
What this package is like to depend on
Last release 1 years ago
09 Apr 2025
Ships fairly regularly
a new release about every 7 months
Some releases are documented
notes for 2 of 8 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
8 releases · first in 2021
0 releases in the last 12 months
see the full history below
Release timeline
8 releases · Aug 2021 to Apr 2025Releases
latest 8-
0.9.009 Apr 2025Release notes
Open source →0.9.0 index format is not compatible with the previous index format.
- MAJOR BUGFIX :
Some
Mmapobjects were being leaked, and would never get released. (@fulmicoton) - Removed most unsafe (@fulmicoton)
- Indexer memory footprint improved. (VInt comp, inlining the first block. (@fulmicoton)
- Stemming in other language possible (@pentlander)
- Segments with no docs are deleted earlier (@barrotsteindev)
- Added grouped add and delete operations. They are guaranteed to happen together (i.e. they cannot be split by a commit). In addition, adds are guaranteed to happen on the same segment. (@elbow-jason)
- Removed
INT_STOREDandINT_INDEXED. It is now possible to useSTOREDandINDEXEDfor int fields. (@fulmicoton) - Added DateTime field (@barrotsteindev)
- Added IndexReader. By default, index is reloaded automatically upon new commits (@fulmicoton)
- SIMD linear search within blocks (@fulmicoton)
How to update ?
tantivy 0.9 brought some API breaking change. To update from tantivy 0.8, you will need to go through the following steps.
-
schema::INT_INDEXEDandschema::INT_STOREDshould be replaced byschema::INDEXEDandschema::INT_STORED. -
The index now does not hold the pool of searcher anymore. You are required to create an intermediary object called
IndexReaderfor this.// create the reader. You typically need to create 1 reader for the entire // lifetime of you program. let reader = index.reader()?; // Acquire a searcher (previously `index.searcher()`) is now written: let searcher = reader.searcher(); // With the default setting of the reader, you are not required to // call `index.load_searchers()` anymore. // // The IndexReader will pick up that change automatically, regardless // of whether the update was done in a different process or not. // If this behavior is not wanted, you can create your reader with // the `ReloadPolicy::Manual`, and manually decide when to reload the index // by calling `reader.reload()?`.
- MAJOR BUGFIX :
Some
-
0.7.012 Apr 2024Nothing published for this version
-
0.6.001 Sep 2023Nothing published for this version
-
0.5.009 Jun 2023Nothing published for this version
-
0.4.012 Dec 2022Release notes
Open source →- Raise the limit of number of fields (previously 256 fields) (@fulmicoton)
- Removed u32 fields. They are replaced by u64 and i64 fields (#65) (@fulmicoton)
- Optimized skip in SegmentPostings (#130) (@lnicola)
- Replacing rustc_serialize by serde. Kudos to benchmark@KodrAus and @lnicola
- Using error-chain (@KodrAus)
- QueryParser: (@fulmicoton)
- Explicit error returned when searched for a term that is not indexed
- Searching for a int term via the query parser was broken
(age:1) - Searching for a non-indexed field returns an explicit Error
- Phrase query for non-tokenized field are not tokenized by the query parser.
- Faster/Better indexing (@fulmicoton)
- using murmurhash2
- faster merging
- more memory efficient fast field writer (@lnicola )
- better handling of collisions
- lesser memory usage
- Added API, most notably to iterate over ranges of terms (@fulmicoton)
- Bugfix that was preventing to unmap segment files, on index drop (@fulmicoton)
- Made the doc! macro public (@fulmicoton)
- Added an alternative implementation of the streaming dictionary (@fulmicoton)
-
0.3.025 May 2022Nothing published for this version
-
0.2.007 Oct 2021Nothing published for this version
-
0.1.026 Aug 2021Nothing published for this version