| <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`IndexWriter` is the user entry-point to add document to an index."><meta name="keywords" content="rust, rustlang, rust-lang, IndexWriter"><title>IndexWriter in tantivy - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../normalize.css"><link rel="stylesheet" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../ayu.css" disabled><link rel="stylesheet" href="../dark.css" disabled><link rel="stylesheet" href="../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../main.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../favicon.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../tantivy/index.html"><div class="logo-container"><img src="http://fulmicoton.com/tantivy-logo/tantivy-logo.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../tantivy/index.html"><div class="logo-container"> |
| <img src="http://fulmicoton.com/tantivy-logo/tantivy-logo.png" alt="logo"></div></a><h2 class="location"><a href="#">IndexWriter</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.add_document">add_document</a></li><li><a href="#method.commit">commit</a></li><li><a href="#method.commit_opstamp">commit_opstamp</a></li><li><a href="#method.delete_all_documents">delete_all_documents</a></li><li><a href="#method.delete_term">delete_term</a></li><li><a href="#method.garbage_collect_files">garbage_collect_files</a></li><li><a href="#method.get_merge_policy">get_merge_policy</a></li><li><a href="#method.index">index</a></li><li><a href="#method.merge">merge</a></li><li><a href="#method.new_segment">new_segment</a></li><li><a href="#method.prepare_commit">prepare_commit</a></li><li><a href="#method.rollback">rollback</a></li><li><a href="#method.run">run</a></li><li><a href="#method.set_merge_policy">set_merge_policy</a></li><li><a href="#method.wait_merging_threads">wait_merging_threads</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Drop-for-IndexWriter">Drop</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-IndexWriter">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-IndexWriter">Send</a></li><li><a href="#impl-Sync-for-IndexWriter">Sync</a></li><li><a href="#impl-Unpin-for-IndexWriter">Unpin</a></li><li><a href="#impl-UnwindSafe-for-IndexWriter">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-IndexWriter">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-IndexWriter">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-IndexWriter">BorrowMut<T></a></li><li><a href="#impl-Downcast-for-IndexWriter">Downcast</a></li><li><a href="#impl-DowncastSync-for-IndexWriter">DowncastSync</a></li><li><a href="#impl-From%3CT%3E-for-IndexWriter">From<T></a></li><li><a href="#impl-Fruit-for-IndexWriter">Fruit</a></li><li><a href="#impl-Into%3CU%3E-for-IndexWriter">Into<U></a></li><li><a href="#impl-Pointable-for-IndexWriter">Pointable</a></li><li><a href="#impl-TryFrom%3CU%3E-for-IndexWriter">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-IndexWriter">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-IndexWriter">VZip<V></a></li></ul></section><h2><a href="index.html">In tantivy</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">tantivy</a>::<wbr><a class="struct" href="#">IndexWriter</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/tantivy/indexer/index_writer.rs.html#54-78">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct IndexWriter { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><code>IndexWriter</code> is the user entry-point to add document to an index.</p> |
| <p>It manages a small number of indexing thread, as well as a shared |
| indexing queue. |
| Each indexing thread builds its own independent <a href="struct.Segment.html" title="Segment"><code>Segment</code></a>, via |
| a <code>SegmentWriter</code> object.</p> |
| </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-IndexWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#248-786">source</a><a href="#impl-IndexWriter" class="anchor"></a><h3 class="code-header">impl <a class="struct" href="struct.IndexWriter.html" title="struct tantivy::IndexWriter">IndexWriter</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.index" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#325-327">source</a><h4 class="code-header">pub fn <a href="#method.index" class="fnname">index</a>(&self) -> &<a class="struct" href="struct.Index.html" title="struct tantivy::Index">Index</a></h4></section></summary><div class="docblock"><p>Accessor to the index.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.wait_merging_threads" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#331-354">source</a><h4 class="code-header">pub fn <a href="#method.wait_merging_threads" class="fnname">wait_merging_threads</a>(self) -> <a class="type" href="type.Result.html" title="type tantivy::Result">Result</a><()></h4></section></summary><div class="docblock"><p>If there are some merging threads, blocks until they all finish their work and |
| then drop the <code>IndexWriter</code>.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_segment" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#373-375">source</a><h4 class="code-header">pub fn <a href="#method.new_segment" class="fnname">new_segment</a>(&self) -> <a class="struct" href="struct.Segment.html" title="struct tantivy::Segment">Segment</a></h4></section></summary><div class="docblock"><p>Creates a new segment.</p> |
| <p>This method is useful only for users trying to do complex |
| operations, like converting an index format to another.</p> |
| <p>It is safe to start writing file associated with the new <code>Segment</code>. |
| These will not be garbage collected as long as an instance object of |
| <code>SegmentMeta</code> object associated with the new <code>Segment</code> is “alive”.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_merge_policy" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#442-444">source</a><h4 class="code-header">pub fn <a href="#method.get_merge_policy" class="fnname">get_merge_policy</a>(&self) -> Arc<dyn <a class="trait" href="merge_policy/trait.MergePolicy.html" title="trait tantivy::merge_policy::MergePolicy">MergePolicy</a>></h4></section></summary><div class="docblock"><p>Accessor to the merge policy.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_merge_policy" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#447-449">source</a><h4 class="code-header">pub fn <a href="#method.set_merge_policy" class="fnname">set_merge_policy</a>(&self, merge_policy: Box<dyn <a class="trait" href="merge_policy/trait.MergePolicy.html" title="trait tantivy::merge_policy::MergePolicy">MergePolicy</a>>)</h4></section></summary><div class="docblock"><p>Setter for the merge policy.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.garbage_collect_files" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#459-461">source</a><h4 class="code-header">pub fn <a href="#method.garbage_collect_files" class="fnname">garbage_collect_files</a>(&self) -> <a class="struct" href="struct.FutureResult.html" title="struct tantivy::FutureResult">FutureResult</a><<a class="struct" href="directory/struct.GarbageCollectionResult.html" title="struct tantivy::directory::GarbageCollectionResult">GarbageCollectionResult</a>><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="struct.FutureResult.html" title="struct tantivy::FutureResult">FutureResult</a><T></span><code class="content"><span class="where fmt-newline">impl<T> Future for <a class="struct" href="struct.FutureResult.html" title="struct tantivy::FutureResult">FutureResult</a><T></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <a class="type" href="type.Result.html" title="type tantivy::Result">Result</a><T>;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Detects and removes the files that are not used by the index anymore.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.delete_all_documents" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#499-505">source</a><h4 class="code-header">pub fn <a href="#method.delete_all_documents" class="fnname">delete_all_documents</a>(&self) -> <a class="type" href="type.Result.html" title="type tantivy::Result">Result</a><<a class="type" href="type.Opstamp.html" title="type tantivy::Opstamp">Opstamp</a>></h4></section></summary><div class="docblock"><p>Deletes all documents from the index</p> |
| <p>Requires <code>commit</code>ing |
| Enables users to rebuild the index, |
| by clearing and resubmitting necessary documents</p> |
| |
| <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>tantivy::collector::TopDocs; |
| <span class="kw">use </span>tantivy::query::QueryParser; |
| <span class="kw">use </span>tantivy::schema::<span class="kw-2">*</span>; |
| <span class="kw">use </span>tantivy::{doc, Index}; |
| |
| <span class="kw">fn </span>main() -> tantivy::Result<()> { |
| <span class="kw">let </span><span class="kw-2">mut </span>schema_builder = Schema::builder(); |
| <span class="kw">let </span>title = schema_builder.add_text_field(<span class="string">"title"</span>, TEXT | STORED); |
| <span class="kw">let </span>schema = schema_builder.build(); |
| |
| <span class="kw">let </span>index = Index::create_in_ram(schema.clone()); |
| |
| <span class="kw">let </span><span class="kw-2">mut </span>index_writer = index.writer_with_num_threads(<span class="number">1</span>, <span class="number">50_000_000</span>)<span class="question-mark">?</span>; |
| index_writer.add_document(<span class="macro">doc!</span>(title => <span class="string">"The modern Promotheus"</span>))<span class="question-mark">?</span>; |
| index_writer.commit()<span class="question-mark">?</span>; |
| |
| <span class="kw">let </span>clear_res = index_writer.delete_all_documents().unwrap(); |
| <span class="comment">// have to commit, otherwise deleted terms remain available |
| </span>index_writer.commit()<span class="question-mark">?</span>; |
| |
| <span class="kw">let </span>searcher = index.reader()<span class="question-mark">?</span>.searcher(); |
| <span class="kw">let </span>query_parser = QueryParser::for_index(<span class="kw-2">&</span>index, <span class="macro">vec!</span>[title]); |
| <span class="kw">let </span>query_promo = query_parser.parse_query(<span class="string">"Promotheus"</span>)<span class="question-mark">?</span>; |
| <span class="kw">let </span>top_docs_promo = searcher.search(<span class="kw-2">&</span>query_promo, <span class="kw-2">&</span>TopDocs::with_limit(<span class="number">1</span>))<span class="question-mark">?</span>; |
| |
| <span class="macro">assert!</span>(top_docs_promo.is_empty()); |
| <span class="prelude-val">Ok</span>(()) |
| }</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.merge" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#512-516">source</a><h4 class="code-header">pub fn <a href="#method.merge" class="fnname">merge</a>(<br> &mut self,<br> segment_ids: &[<a class="struct" href="struct.SegmentId.html" title="struct tantivy::SegmentId">SegmentId</a>]<br>) -> <a class="struct" href="struct.FutureResult.html" title="struct tantivy::FutureResult">FutureResult</a><Option<<a class="struct" href="struct.SegmentMeta.html" title="struct tantivy::SegmentMeta">SegmentMeta</a>>><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="struct.FutureResult.html" title="struct tantivy::FutureResult">FutureResult</a><T></span><code class="content"><span class="where fmt-newline">impl<T> Future for <a class="struct" href="struct.FutureResult.html" title="struct tantivy::FutureResult">FutureResult</a><T></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <a class="type" href="type.Result.html" title="type tantivy::Result">Result</a><T>;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Merges a given list of segments.</p> |
| <p>If all segments are empty no new segment will be created.</p> |
| <p><code>segment_ids</code> is required to be non-empty.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.rollback" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#541-577">source</a><h4 class="code-header">pub fn <a href="#method.rollback" class="fnname">rollback</a>(&mut self) -> <a class="type" href="type.Result.html" title="type tantivy::Result">Result</a><<a class="type" href="type.Opstamp.html" title="type tantivy::Opstamp">Opstamp</a>></h4></section></summary><div class="docblock"><p>Rollback to the last commit</p> |
| <p>This cancels all of the updates that |
| happened after the last commit. |
| After calling rollback, the index is in the same |
| state as it was after the last commit.</p> |
| <p>The opstamp at the last commit is returned.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.prepare_commit" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#600-631">source</a><h4 class="code-header">pub fn <a href="#method.prepare_commit" class="fnname">prepare_commit</a>(&mut self) -> <a class="type" href="type.Result.html" title="type tantivy::Result">Result</a><<a class="struct" href="struct.PreparedCommit.html" title="struct tantivy::PreparedCommit">PreparedCommit</a><'_>></h4></section></summary><div class="docblock"><p>Prepares a commit.</p> |
| <p>Calling <code>prepare_commit()</code> will cut the indexing |
| queue. All pending documents will be sent to the |
| indexing workers. They will then terminate, regardless |
| of the size of their current segment and flush their |
| work on disk.</p> |
| <p>Once a commit is “prepared”, you can either |
| call</p> |
| <ul> |
| <li><code>.commit()</code>: to accept this commit</li> |
| <li><code>.abort()</code>: to cancel this commit.</li> |
| </ul> |
| <p>In the current implementation, <a href="struct.PreparedCommit.html" title="PreparedCommit"><code>PreparedCommit</code></a> borrows |
| the <a href="struct.IndexWriter.html" title="IndexWriter"><code>IndexWriter</code></a> mutably so we are guaranteed that no new |
| document can be added as long as it is committed or is |
| dropped.</p> |
| <p>It is also possible to add a payload to the <code>commit</code> |
| using this API. |
| See <a href="struct.PreparedCommit.html#method.set_payload" title="PreparedCommit::set_payload()"><code>PreparedCommit::set_payload()</code></a>.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.commit" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#646-648">source</a><h4 class="code-header">pub fn <a href="#method.commit" class="fnname">commit</a>(&mut self) -> <a class="type" href="type.Result.html" title="type tantivy::Result">Result</a><<a class="type" href="type.Opstamp.html" title="type tantivy::Opstamp">Opstamp</a>></h4></section></summary><div class="docblock"><p>Commits all of the pending changes</p> |
| <p>A call to commit blocks. |
| After it returns, all of the document that |
| were added since the last commit are published |
| and persisted.</p> |
| <p>In case of a crash or an hardware failure (as |
| long as the hard disk is spared), it will be possible |
| to resume indexing from this point.</p> |
| <p>Commit returns the <code>opstamp</code> of the last document |
| that made it in the commit.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.delete_term" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#662-668">source</a><h4 class="code-header">pub fn <a href="#method.delete_term" class="fnname">delete_term</a>(&self, term: <a class="struct" href="schema/struct.Term.html" title="struct tantivy::schema::Term">Term</a>) -> <a class="type" href="type.Opstamp.html" title="type tantivy::Opstamp">Opstamp</a></h4></section></summary><div class="docblock"><p>Delete all documents containing a given term.</p> |
| <p>Delete operation only affects documents that |
| were added in previous commits, and documents |
| that were added previously in the same commit.</p> |
| <p>Like adds, the deletion itself will be visible |
| only after calling <code>commit()</code>.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.commit_opstamp" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#698-700">source</a><h4 class="code-header">pub fn <a href="#method.commit_opstamp" class="fnname">commit_opstamp</a>(&self) -> <a class="type" href="type.Opstamp.html" title="type tantivy::Opstamp">Opstamp</a></h4></section></summary><div class="docblock"><p>Returns the opstamp of the last successful commit.</p> |
| <p>This is, for instance, the opstamp the index will |
| rollback to if there is a failure like a power surge.</p> |
| <p>This is also the opstamp of the commit that is currently |
| available for searchers.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_document" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#709-713">source</a><h4 class="code-header">pub fn <a href="#method.add_document" class="fnname">add_document</a>(&self, document: <a class="struct" href="schema/struct.Document.html" title="struct tantivy::schema::Document">Document</a>) -> <a class="type" href="type.Result.html" title="type tantivy::Result">Result</a><<a class="type" href="type.Opstamp.html" title="type tantivy::Opstamp">Opstamp</a>></h4></section></summary><div class="docblock"><p>Adds a document.</p> |
| <p>If the indexing pipeline is full, this call may block.</p> |
| <p>The opstamp is an increasing <code>u64</code> that can |
| be used by the client to align commits with its own |
| document queue.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.run" class="method has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#744-777">source</a><h4 class="code-header">pub fn <a href="#method.run" class="fnname">run</a><I>(&self, user_operations: I) -> <a class="type" href="type.Result.html" title="type tantivy::Result">Result</a><<a class="type" href="type.Opstamp.html" title="type tantivy::Opstamp">Opstamp</a>><span class="where fmt-newline">where<br> I: IntoIterator<Item = <a class="enum" href="enum.UserOperation.html" title="enum tantivy::UserOperation">UserOperation</a>>,<br> I::IntoIter: ExactSizeIterator,</span></h4></section></summary><div class="docblock"><p>Runs a group of document operations ensuring that the operations are |
| assigned contiguous u64 opstamps and that add operations of the same |
| group are flushed into the same segment.</p> |
| <p>If the indexing pipeline is full, this call may block.</p> |
| <p>Each operation of the given <code>user_operations</code> will receive an in-order, |
| contiguous u64 opstamp. The entire batch itself is also given an |
| opstamp that is 1 greater than the last given operation. This |
| <code>batch_opstamp</code> is the return value of <code>run</code>. An empty group of |
| <code>user_operations</code>, an empty <code>Vec<UserOperation></code>, still receives |
| a valid opstamp even though no changes were <em>actually</em> made to the index.</p> |
| <p>Like adds and deletes (see <code>IndexWriter.add_document</code> and |
| <code>IndexWriter.delete_term</code>), the changes made by calling <code>run</code> will be |
| visible to readers only after calling <code>commit()</code>.</p> |
| </div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Drop-for-IndexWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#788-796">source</a><a href="#impl-Drop-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl Drop for <a class="struct" href="struct.IndexWriter.html" title="struct tantivy::IndexWriter">IndexWriter</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.drop" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/tantivy/indexer/index_writer.rs.html#789-795">source</a><a href="#method.drop" class="anchor"></a><h4 class="code-header">fn <a class="fnname">drop</a>(&mut self)</h4></section></summary><div class='docblock'>Executes the destructor for this type. <a>Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-IndexWriter" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl !RefUnwindSafe for <a class="struct" href="struct.IndexWriter.html" title="struct tantivy::IndexWriter">IndexWriter</a></h3></section><section id="impl-Send-for-IndexWriter" class="impl has-srclink"><a href="#impl-Send-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl Send for <a class="struct" href="struct.IndexWriter.html" title="struct tantivy::IndexWriter">IndexWriter</a></h3></section><section id="impl-Sync-for-IndexWriter" class="impl has-srclink"><a href="#impl-Sync-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl Sync for <a class="struct" href="struct.IndexWriter.html" title="struct tantivy::IndexWriter">IndexWriter</a></h3></section><section id="impl-Unpin-for-IndexWriter" class="impl has-srclink"><a href="#impl-Unpin-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl Unpin for <a class="struct" href="struct.IndexWriter.html" title="struct tantivy::IndexWriter">IndexWriter</a></h3></section><section id="impl-UnwindSafe-for-IndexWriter" class="impl has-srclink"><a href="#impl-UnwindSafe-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl !UnwindSafe for <a class="struct" href="struct.IndexWriter.html" title="struct tantivy::IndexWriter">IndexWriter</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-IndexWriter" class="impl has-srclink"><a href="#impl-Any-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T> Any for T<span class="where fmt-newline">where<br> T: 'static + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a class="fnname">type_id</a>(&self) -> TypeId</h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-IndexWriter" class="impl has-srclink"><a href="#impl-Borrow%3CT%3E-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T> Borrow<T> for T<span class="where fmt-newline">where<br> T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow</a>(&self) -> &T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-IndexWriter" class="impl has-srclink"><a href="#impl-BorrowMut%3CT%3E-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T> BorrowMut<T> for T<span class="where fmt-newline">where<br> T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow_mut</a>(&mut self) -> &mut T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Downcast-for-IndexWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/downcast_rs/lib.rs.html#190">source</a><a href="#impl-Downcast-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T> <a class="trait" href="../downcast_rs/trait.Downcast.html" title="trait downcast_rs::Downcast">Downcast</a> for T<span class="where fmt-newline">where<br> T: Any,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_any" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/downcast_rs/lib.rs.html#191">source</a><a href="#method.into_any" class="anchor"></a><h4 class="code-header">fn <a href="../downcast_rs/trait.Downcast.html#tymethod.into_any" class="fnname">into_any</a>(self: Box<T, Global>) -> Box<dyn Any + 'static, Global></h4></section></summary><div class='docblock'>Convert <code>Box<dyn Trait></code> (where <code>Trait: Downcast</code>) to <code>Box<dyn Any></code>. <code>Box<dyn Any></code> can |
| then be further <code>downcast</code> into <code>Box<ConcreteType></code> where <code>ConcreteType</code> implements <code>Trait</code>. <a href="../downcast_rs/trait.Downcast.html#tymethod.into_any">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_any_rc" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/downcast_rs/lib.rs.html#192">source</a><a href="#method.into_any_rc" class="anchor"></a><h4 class="code-header">fn <a href="../downcast_rs/trait.Downcast.html#tymethod.into_any_rc" class="fnname">into_any_rc</a>(self: Rc<T>) -> Rc<dyn Any + 'static></h4></section></summary><div class='docblock'>Convert <code>Rc<Trait></code> (where <code>Trait: Downcast</code>) to <code>Rc<Any></code>. <code>Rc<Any></code> can then be |
| further <code>downcast</code> into <code>Rc<ConcreteType></code> where <code>ConcreteType</code> implements <code>Trait</code>. <a href="../downcast_rs/trait.Downcast.html#tymethod.into_any_rc">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_any" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/downcast_rs/lib.rs.html#193">source</a><a href="#method.as_any" class="anchor"></a><h4 class="code-header">fn <a href="../downcast_rs/trait.Downcast.html#tymethod.as_any" class="fnname">as_any</a>(&self) -> &(dyn Any + 'static)</h4></section></summary><div class='docblock'>Convert <code>&Trait</code> (where <code>Trait: Downcast</code>) to <code>&Any</code>. This is needed since Rust cannot |
| generate <code>&Any</code>’s vtable from <code>&Trait</code>’s. <a href="../downcast_rs/trait.Downcast.html#tymethod.as_any">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_any_mut" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/downcast_rs/lib.rs.html#194">source</a><a href="#method.as_any_mut" class="anchor"></a><h4 class="code-header">fn <a href="../downcast_rs/trait.Downcast.html#tymethod.as_any_mut" class="fnname">as_any_mut</a>(&mut self) -> &mut (dyn Any + 'static)</h4></section></summary><div class='docblock'>Convert <code>&mut Trait</code> (where <code>Trait: Downcast</code>) to <code>&Any</code>. This is needed since Rust cannot |
| generate <code>&mut Any</code>’s vtable from <code>&mut Trait</code>’s. <a href="../downcast_rs/trait.Downcast.html#tymethod.as_any_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-DowncastSync-for-IndexWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/downcast_rs/lib.rs.html#204">source</a><a href="#impl-DowncastSync-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T> <a class="trait" href="../downcast_rs/trait.DowncastSync.html" title="trait downcast_rs::DowncastSync">DowncastSync</a> for T<span class="where fmt-newline">where<br> T: Any + Send + Sync,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_any_arc" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/downcast_rs/lib.rs.html#205">source</a><a href="#method.into_any_arc" class="anchor"></a><h4 class="code-header">fn <a href="../downcast_rs/trait.DowncastSync.html#tymethod.into_any_arc" class="fnname">into_any_arc</a>(self: Arc<T>) -> Arc<dyn Any + Sync + Send + 'static></h4></section></summary><div class='docblock'>Convert <code>Arc<Trait></code> (where <code>Trait: Downcast</code>) to <code>Arc<Any></code>. <code>Arc<Any></code> can then be |
| further <code>downcast</code> into <code>Arc<ConcreteType></code> where <code>ConcreteType</code> implements <code>Trait</code>. <a href="../downcast_rs/trait.DowncastSync.html#tymethod.into_any_arc">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-IndexWriter" class="impl has-srclink"><a href="#impl-From%3CT%3E-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T> From<T> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p> |
| </div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-IndexWriter" class="impl has-srclink"><a href="#impl-Into%3CU%3E-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T, U> Into<U> for T<span class="where fmt-newline">where<br> U: From<T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p> |
| <p>That is, this conversion is whatever the implementation of |
| <code>[From]<T> for U</code> chooses to do.</p> |
| </div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Pointable-for-IndexWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/crossbeam_epoch/atomic.rs.html#194">source</a><a href="#impl-Pointable-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T> <a class="trait" href="../crossbeam_epoch/atomic/trait.Pointable.html" title="trait crossbeam_epoch::atomic::Pointable">Pointable</a> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a class="srclink rightside" href="../src/crossbeam_epoch/atomic.rs.html#195">source</a><a href="#associatedconstant.ALIGN" class="anchor"></a><h4 class="code-header">const <a href="../crossbeam_epoch/atomic/trait.Pointable.html#associatedconstant.ALIGN" class="constant">ALIGN</a>: usize = mem::align_of::<T>()</h4></section></summary><div class='docblock'>The alignment of pointer.</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Init" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Init" class="anchor"></a><h4 class="code-header">type <a href="../crossbeam_epoch/atomic/trait.Pointable.html#associatedtype.Init" class="associatedtype">Init</a> = T</h4></section></summary><div class='docblock'>The type for initializers.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.init" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/crossbeam_epoch/atomic.rs.html#199">source</a><a href="#method.init" class="anchor"></a><h4 class="code-header">unsafe fn <a href="../crossbeam_epoch/atomic/trait.Pointable.html#tymethod.init" class="fnname">init</a>(init: <T as <a class="trait" href="../crossbeam_epoch/atomic/trait.Pointable.html" title="trait crossbeam_epoch::atomic::Pointable">Pointable</a>>::<a class="associatedtype" href="../crossbeam_epoch/atomic/trait.Pointable.html#associatedtype.Init" title="type crossbeam_epoch::atomic::Pointable::Init">Init</a>) -> usize</h4></section></summary><div class='docblock'>Initializes a with the given initializer. <a href="../crossbeam_epoch/atomic/trait.Pointable.html#tymethod.init">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/crossbeam_epoch/atomic.rs.html#203">source</a><a href="#method.deref" class="anchor"></a><h4 class="code-header">unsafe fn <a href="../crossbeam_epoch/atomic/trait.Pointable.html#tymethod.deref" class="fnname">deref</a><'a>(ptr: usize) -> &'a T</h4></section></summary><div class='docblock'>Dereferences the given pointer. <a href="../crossbeam_epoch/atomic/trait.Pointable.html#tymethod.deref">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref_mut" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/crossbeam_epoch/atomic.rs.html#207">source</a><a href="#method.deref_mut" class="anchor"></a><h4 class="code-header">unsafe fn <a href="../crossbeam_epoch/atomic/trait.Pointable.html#tymethod.deref_mut" class="fnname">deref_mut</a><'a>(ptr: usize) -> &'a mut T</h4></section></summary><div class='docblock'>Mutably dereferences the given pointer. <a href="../crossbeam_epoch/atomic/trait.Pointable.html#tymethod.deref_mut">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.drop-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/crossbeam_epoch/atomic.rs.html#211">source</a><a href="#method.drop-1" class="anchor"></a><h4 class="code-header">unsafe fn <a href="../crossbeam_epoch/atomic/trait.Pointable.html#tymethod.drop" class="fnname">drop</a>(ptr: usize)</h4></section></summary><div class='docblock'>Drops the object pointed to by the given pointer. <a href="../crossbeam_epoch/atomic/trait.Pointable.html#tymethod.drop">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-IndexWriter" class="impl has-srclink"><a href="#impl-TryFrom%3CU%3E-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T, U> TryFrom<U> for T<span class="where fmt-newline">where<br> U: Into<T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = Infallible</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_from</a>(value: U) -> Result<T, <T as TryFrom<U>>::Error></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-IndexWriter" class="impl has-srclink"><a href="#impl-TryInto%3CU%3E-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T, U> TryInto<U> for T<span class="where fmt-newline">where<br> U: TryFrom<T>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = <U as TryFrom<T>>::Error</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_into</a>(self) -> Result<U, <U as TryFrom<T>>::Error></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-IndexWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/ppv_lite86/types.rs.html#221">source</a><a href="#impl-VZip%3CV%3E-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<V, T> <a class="trait" href="../ppv_lite86/types/trait.VZip.html" title="trait ppv_lite86::types::VZip">VZip</a><V> for T<span class="where fmt-newline">where<br> V: <a class="trait" href="../ppv_lite86/types/trait.MultiLane.html" title="trait ppv_lite86::types::MultiLane">MultiLane</a><T>,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/ppv_lite86/types.rs.html#226">source</a><a href="#method.vzip" class="anchor"></a><h4 class="code-header">fn <a href="../ppv_lite86/types/trait.VZip.html#tymethod.vzip" class="fnname">vzip</a>(self) -> V</h4></section></div></details><section id="impl-Fruit-for-IndexWriter" class="impl has-srclink"><a class="srclink rightside" href="../src/tantivy/collector/mod.rs.html#122">source</a><a href="#impl-Fruit-for-IndexWriter" class="anchor"></a><h3 class="code-header">impl<T> <a class="trait" href="collector/trait.Fruit.html" title="trait tantivy::collector::Fruit">Fruit</a> for T<span class="where fmt-newline">where<br> T: Send + <a class="trait" href="../downcast_rs/trait.Downcast.html" title="trait downcast_rs::Downcast">Downcast</a>,</span></h3></section></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="tantivy" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html> |