Automatic Travis documentation build

This commit is contained in:
Travis CI User
2018-05-08 03:16:14 +00:00
parent e0c6dfeb62
commit 61ba426874
36 changed files with 380 additions and 387 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -337,12 +337,12 @@ Defines how the documents matching a search query should be processed.
<span class="kw">use</span> <span class="kw">super</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">SegmentReader</span>;
<span class="kw">use</span> <span class="ident">fastfield</span>::<span class="ident">BytesFastFieldReader</span>;
<span class="kw">use</span> <span class="ident">fastfield</span>::<span class="ident">FastFieldReader</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Field</span>;
<span class="kw">use</span> <span class="ident">DocId</span>;
<span class="kw">use</span> <span class="ident">Score</span>;
<span class="kw">use</span> <span class="ident">SegmentLocalId</span>;
<span class="kw">use</span> <span class="ident">fastfield</span>::<span class="ident">BytesFastFieldReader</span>;
<span class="doccomment">/// Stores all of the doc ids.</span>
<span class="doccomment">/// This collector is only used for tests.</span>

View File

@@ -625,10 +625,10 @@
<span class="kw">mod</span> <span class="ident">bench</span> {
<span class="kw">use</span> <span class="kw">super</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">test</span>::<span class="ident">Bencher</span>;
<span class="kw">use</span> <span class="ident">rand</span>::<span class="ident">XorShiftRng</span>;
<span class="kw">use</span> <span class="ident">rand</span>::<span class="ident">SeedableRng</span>;
<span class="kw">use</span> <span class="ident">rand</span>::<span class="ident">Rng</span>;
<span class="kw">use</span> <span class="ident">rand</span>::<span class="ident">SeedableRng</span>;
<span class="kw">use</span> <span class="ident">rand</span>::<span class="ident">XorShiftRng</span>;
<span class="kw">use</span> <span class="ident">test</span>::<span class="ident">Bencher</span>;
<span class="kw">fn</span> <span class="ident">generate_array_with_seed</span>(<span class="ident">n</span>: <span class="ident">usize</span>, <span class="ident">ratio</span>: <span class="ident">f32</span>, <span class="ident">seed_val</span>: <span class="ident">u32</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u32</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">seed</span>: <span class="kw-2">&amp;</span>[<span class="ident">u32</span>; <span class="number">4</span>] <span class="op">=</span> <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="ident">seed_val</span>];

View File

@@ -484,7 +484,7 @@
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">fast_field_reader_with_idx</span><span class="op">&lt;</span><span class="ident">Item</span>: <span class="ident">FastValue</span><span class="op">&gt;</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
<span class="ident">idx</span>: <span class="ident">usize</span>
<span class="ident">idx</span>: <span class="ident">usize</span>,
) <span class="op">-&gt;</span> <span class="ident">fastfield</span>::<span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">FastFieldReader</span><span class="op">&lt;</span><span class="ident">Item</span><span class="op">&gt;&gt;</span> {
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">ff_source</span>) <span class="op">=</span> <span class="self">self</span>.<span class="ident">fast_fields_composite</span>.<span class="ident">open_read_with_idx</span>(<span class="ident">field</span>, <span class="ident">idx</span>) {
<span class="prelude-val">Ok</span>(<span class="ident">FastFieldReader</span>::<span class="ident">open</span>(<span class="ident">ff_source</span>))
@@ -515,7 +515,7 @@
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">bytes_fast_field_reader</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">field</span>: <span class="ident">Field</span>) <span class="op">-&gt;</span> <span class="ident">fastfield</span>::<span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">BytesFastFieldReader</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">field_entry</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">schema</span>.<span class="ident">get_field_entry</span>(<span class="ident">field</span>);
<span class="kw">match</span> <span class="ident">field_entry</span>.<span class="ident">field_type</span>() {
<span class="kw-2">&amp;</span><span class="ident">FieldType</span>::<span class="ident">Bytes</span> <span class="op">=&gt;</span> {},
<span class="kw-2">&amp;</span><span class="ident">FieldType</span>::<span class="ident">Bytes</span> <span class="op">=&gt;</span> {}
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">FastFieldNotAvailableError</span>::<span class="ident">new</span>(<span class="ident">field_entry</span>)),
}
<span class="kw">let</span> <span class="ident">idx_reader</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">fast_fields_composite</span>

View File

@@ -333,10 +333,6 @@
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">heap</span>::{<span class="ident">BytesRef</span>, <span class="ident">Heap</span>, <span class="ident">HeapAllocable</span>};
<span class="kw">use</span> <span class="ident">postings</span>::<span class="ident">UnorderedTermId</span>;
@@ -344,7 +340,6 @@
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">slice</span>;
<span class="kw">mod</span> <span class="ident">murmurhash2</span> {
<span class="kw">const</span> <span class="ident">SEED</span>: <span class="ident">u32</span> <span class="op">=</span> <span class="number">3_242_157_231u32</span>;
@@ -352,7 +347,6 @@
<span class="attribute">#[<span class="ident">inline</span>(<span class="ident">always</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">murmurhash2</span>(<span class="ident">key</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>]) <span class="op">-&gt;</span> <span class="ident">u32</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">key_ptr</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">u32</span> <span class="op">=</span> <span class="ident">key</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">u32</span>;
<span class="kw">let</span> <span class="ident">len</span> <span class="op">=</span> <span class="ident">key</span>.<span class="ident">len</span>() <span class="kw">as</span> <span class="ident">u32</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">h</span>: <span class="ident">u32</span> <span class="op">=</span> <span class="ident">SEED</span> <span class="op">^</span> <span class="ident">len</span>;
@@ -394,7 +388,6 @@
}
}
<span class="doccomment">/// Split the thread memory budget into</span>
<span class="doccomment">/// - the heap size</span>
<span class="doccomment">/// - the hash table &quot;table&quot; itself.</span>
@@ -557,14 +550,14 @@
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">test</span>, <span class="ident">feature</span><span class="op">=</span><span class="string">&quot;unstable&quot;</span>))]</span>
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">test</span>, <span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;unstable&quot;</span>))]</span>
<span class="kw">mod</span> <span class="ident">bench</span> {
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">murmurhash2</span>::<span class="ident">murmurhash2</span>;
<span class="kw">use</span> <span class="ident">test</span>::<span class="ident">Bencher</span>;
<span class="attribute">#[<span class="ident">bench</span>]</span>
<span class="kw">fn</span> <span class="ident">bench_murmurhash2</span>(<span class="ident">b</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Bencher</span>) {
<span class="kw">let</span> <span class="ident">keys</span>: [<span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>; <span class="number">3</span>]<span class="op">=</span> [<span class="string">&quot;wer qwe qwe qwe &quot;</span>, <span class="string">&quot;werbq weqweqwe2 &quot;</span>, <span class="string">&quot;weraq weqweqwe3 &quot;</span>];
<span class="kw">let</span> <span class="ident">keys</span>: [<span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>; <span class="number">3</span>] <span class="op">=</span> [<span class="string">&quot;wer qwe qwe qwe &quot;</span>, <span class="string">&quot;werbq weqweqwe2 &quot;</span>, <span class="string">&quot;weraq weqweqwe3 &quot;</span>];
<span class="ident">b</span>.<span class="ident">iter</span>(<span class="op">||</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">s</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">for</span> <span class="kw-2">&amp;</span><span class="ident">key</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="ident">keys</span> {
@@ -664,7 +657,6 @@
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">murmurhash2</span>(<span class="string">&quot;abcdefghijklmnop&quot;</span>.<span class="ident">as_bytes</span>()), <span class="number">2350868870</span>);
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_murmur_collisions</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">set</span>: <span class="ident">HashSet</span><span class="op">&lt;</span><span class="ident">u32</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">HashSet</span>::<span class="ident">default</span>();

View File

@@ -74,5 +74,6 @@
<span class="kw">let</span> <span class="ident">long</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">0u8</span>; <span class="number">1000</span>];
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">bytes_reader</span>.<span class="ident">get_val</span>(<span class="number">4</span>), <span class="ident">long</span>.<span class="ident">as_slice</span>());
}
}</pre>
}
</pre>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g. <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g. <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g. <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../../";window.currentCrate = "tantivy";</script><script src="../../../../aliases.js"></script><script src="../../../../main.js"></script><script defer src="../../../../search-index.js"></script></body></html>

View File

@@ -35,9 +35,6 @@
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">owning_ref</span>::<span class="ident">OwningRef</span>;
@@ -66,10 +63,7 @@
<span class="ident">values_source</span>: <span class="ident">ReadOnlySource</span>,
) <span class="op">-&gt;</span> <span class="ident">BytesFastFieldReader</span> {
<span class="kw">let</span> <span class="ident">values</span> <span class="op">=</span> <span class="ident">OwningRef</span>::<span class="ident">new</span>(<span class="ident">values_source</span>).<span class="ident">map</span>(<span class="op">|</span><span class="ident">source</span><span class="op">|</span> <span class="kw-2">&amp;</span><span class="ident">source</span>[..]);
<span class="ident">BytesFastFieldReader</span> {
<span class="ident">idx_reader</span>,
<span class="ident">values</span>,
}
<span class="ident">BytesFastFieldReader</span> { <span class="ident">idx_reader</span>, <span class="ident">values</span> }
}
<span class="doccomment">/// Returns the bytes associated to the given `doc`</span>
@@ -78,5 +72,6 @@
<span class="kw">let</span> <span class="ident">stop</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">idx_reader</span>.<span class="ident">get</span>(<span class="ident">doc</span> <span class="op">+</span> <span class="number">1</span>) <span class="kw">as</span> <span class="ident">usize</span>;
<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">values</span>[<span class="ident">start</span>..<span class="ident">stop</span>]
}
}</pre>
}
</pre>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g. <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g. <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g. <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../../";window.currentCrate = "tantivy";</script><script src="../../../../aliases.js"></script><script src="../../../../main.js"></script><script defer src="../../../../search-index.js"></script></body></html>

View File

@@ -94,9 +94,7 @@
<span id="94">94</span>
<span id="95">95</span>
<span id="96">96</span>
<span id="97">97</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>;
<span class="kw">use</span> <span class="ident">fastfield</span>::<span class="ident">serializer</span>::<span class="ident">FastFieldSerializer</span>;
@@ -153,7 +151,10 @@
<span class="kw">if</span> <span class="kw">let</span> <span class="kw-2">&amp;</span><span class="ident">Value</span>::<span class="ident">Bytes</span>(<span class="kw-2">ref</span> <span class="ident">bytes</span>) <span class="op">=</span> <span class="ident">field_value</span>.<span class="ident">value</span>() {
<span class="self">self</span>.<span class="ident">vals</span>.<span class="ident">extend_from_slice</span>(<span class="ident">bytes</span>);
} <span class="kw">else</span> {
<span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;Bytes field contained non-Bytes Value!. Field {:?} = {:?}&quot;</span>, <span class="self">self</span>.<span class="ident">field</span>, <span class="ident">field_value</span>);
<span class="macro">panic</span><span class="macro">!</span>(
<span class="string">&quot;Bytes field contained non-Bytes Value!. Field {:?} = {:?}&quot;</span>,
<span class="self">self</span>.<span class="ident">field</span>, <span class="ident">field_value</span>
);
}
}
}
@@ -171,10 +172,7 @@
}
<span class="doccomment">/// Serializes the fast field values by pushing them to the `FastFieldSerializer`.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">serialize</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>
) <span class="op">-&gt;</span> <span class="ident">io</span>::<span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">serialize</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>) <span class="op">-&gt;</span> <span class="ident">io</span>::<span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
{
<span class="comment">// writing the offset index</span>
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">doc_index_serializer</span> <span class="op">=</span>
@@ -192,5 +190,6 @@
}
<span class="prelude-val">Ok</span>(())
}
}</pre>
}
</pre>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g. <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g. <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g. <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../../";window.currentCrate = "tantivy";</script><script src="../../../../aliases.js"></script><script src="../../../../main.js"></script><script defer src="../../../../search-index.js"></script></body></html>

View File

@@ -542,6 +542,7 @@ values stored.
Read access performance is comparable to that of an array lookup.
*/</span>
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">bytes</span>::{<span class="ident">BytesFastFieldReader</span>, <span class="ident">BytesFastFieldWriter</span>};
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">delete</span>::<span class="ident">write_delete_bitset</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">delete</span>::<span class="ident">DeleteBitSet</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">error</span>::{<span class="ident">FastFieldNotAvailableError</span>, <span class="prelude-ty">Result</span>};
@@ -550,7 +551,6 @@ Read access performance is comparable to that of an array lookup.
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">reader</span>::<span class="ident">FastFieldReader</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">serializer</span>::<span class="ident">FastFieldSerializer</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">writer</span>::{<span class="ident">FastFieldsWriter</span>, <span class="ident">IntFastFieldWriter</span>};
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">bytes</span>::{<span class="ident">BytesFastFieldReader</span>, <span class="ident">BytesFastFieldWriter</span>};
<span class="kw">use</span> <span class="ident">common</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Cardinality</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">FieldType</span>;

View File

@@ -151,10 +151,10 @@
<span class="kw">use</span> <span class="ident">fastfield</span>::<span class="ident">FastFieldSerializer</span>;
<span class="kw">use</span> <span class="ident">itertools</span>::<span class="ident">Itertools</span>;
<span class="kw">use</span> <span class="ident">postings</span>::<span class="ident">UnorderedTermId</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermOrdinal</span>;
<span class="kw">use</span> <span class="ident">schema</span>::{<span class="ident">Document</span>, <span class="ident">Field</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermOrdinal</span>;
<span class="kw">use</span> <span class="ident">DocId</span>;
<span class="doccomment">/// Writer for multi-valued (as in, more than one value per document)</span>

View File

@@ -144,7 +144,6 @@
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">common</span>::<span class="ident">bitpacker</span>::<span class="ident">BitPacker</span>;
<span class="kw">use</span> <span class="ident">common</span>::<span class="ident">compute_num_bits</span>;
@@ -213,7 +212,7 @@
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_bytes_fast_field_with_idx</span>(
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
<span class="ident">idx</span>: <span class="ident">usize</span>
<span class="ident">idx</span>: <span class="ident">usize</span>,
) <span class="op">-&gt;</span> <span class="ident">io</span>::<span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">FastBytesFieldSerializer</span><span class="op">&lt;</span><span class="ident">CountingWriter</span><span class="op">&lt;</span><span class="ident">WritePtr</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">field_write</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">composite_write</span>.<span class="ident">for_field_with_idx</span>(<span class="ident">field</span>, <span class="ident">idx</span>);
<span class="ident">FastBytesFieldSerializer</span>::<span class="ident">open</span>(<span class="ident">field_write</span>)
@@ -235,7 +234,6 @@
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">W</span>: <span class="ident">Write</span><span class="op">&gt;</span> <span class="ident">FastSingleFieldSerializer</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">W</span><span class="op">&gt;</span> {
<span class="doccomment">/// Creates a new fast field serializer.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// The serializer in fact encode the values by bitpacking</span>
@@ -292,5 +290,6 @@
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">flush</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">io</span>::<span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="self">self</span>.<span class="ident">write</span>.<span class="ident">flush</span>()
}
}</pre>
}
</pre>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g. <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g. <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g. <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../";window.currentCrate = "tantivy";</script><script src="../../../aliases.js"></script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>

View File

@@ -242,19 +242,16 @@
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">multivalued</span>::<span class="ident">MultiValueIntFastFieldWriter</span>;
<span class="kw">use</span> <span class="ident">common</span>;
<span class="kw">use</span> <span class="ident">common</span>::<span class="ident">BinarySerializable</span>;
<span class="kw">use</span> <span class="ident">common</span>::<span class="ident">VInt</span>;
<span class="kw">use</span> <span class="ident">fastfield</span>::{<span class="ident">BytesFastFieldWriter</span>, <span class="ident">FastFieldSerializer</span>};
<span class="kw">use</span> <span class="ident">postings</span>::<span class="ident">UnorderedTermId</span>;
<span class="kw">use</span> <span class="ident">schema</span>::{<span class="ident">FieldType</span>, <span class="ident">Cardinality</span>, <span class="ident">Document</span>, <span class="ident">Field</span>, <span class="ident">Schema</span>};
<span class="kw">use</span> <span class="ident">schema</span>::{<span class="ident">Cardinality</span>, <span class="ident">Document</span>, <span class="ident">Field</span>, <span class="ident">FieldType</span>, <span class="ident">Schema</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>;
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">multivalued</span>::<span class="ident">MultiValueIntFastFieldWriter</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermOrdinal</span>;
<span class="doccomment">/// The fastfieldswriter regroup all of the fast field writers.</span>
@@ -337,10 +334,7 @@
<span class="doccomment">///</span>
<span class="doccomment">/// Returns None if the field does not exist, or is not</span>
<span class="doccomment">/// configured as a bytes fastfield in the schema.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_bytes_writer</span>(
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">BytesFastFieldWriter</span><span class="op">&gt;</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_bytes_writer</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">field</span>: <span class="ident">Field</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">BytesFastFieldWriter</span><span class="op">&gt;</span> {
<span class="comment">// TODO optimize</span>
<span class="self">self</span>.<span class="ident">bytes_value_writers</span>
.<span class="ident">iter_mut</span>()

View File

@@ -61,7 +61,6 @@
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">DocId</span>;
@@ -82,8 +81,7 @@
.<span class="ident">fields</span>()
.<span class="ident">iter</span>()
.<span class="ident">enumerate</span>()
.<span class="ident">filter</span>(<span class="op">|</span><span class="kw-2">&amp;</span>(<span class="kw">_</span>, <span class="ident">field_entry</span>)<span class="op">|</span>
<span class="ident">field_entry</span>.<span class="ident">is_indexed</span>())
.<span class="ident">filter</span>(<span class="op">|</span><span class="kw-2">&amp;</span>(<span class="kw">_</span>, <span class="ident">field_entry</span>)<span class="op">|</span> <span class="ident">field_entry</span>.<span class="ident">is_indexed</span>())
.<span class="ident">map</span>(<span class="op">|</span>(<span class="ident">field</span>, <span class="kw">_</span>)<span class="op">|</span> <span class="ident">Field</span>(<span class="ident">field</span> <span class="kw">as</span> <span class="ident">u32</span>))
.<span class="ident">collect</span>::<span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Field</span><span class="op">&gt;&gt;</span>()
}

View File

@@ -1441,6 +1441,16 @@
<span id="1441">1441</span>
<span id="1442">1442</span>
<span id="1443">1443</span>
<span id="1444">1444</span>
<span id="1445">1445</span>
<span id="1446">1446</span>
<span id="1447">1447</span>
<span id="1448">1448</span>
<span id="1449">1449</span>
<span id="1450">1450</span>
<span id="1451">1451</span>
<span id="1452">1452</span>
<span id="1453">1453</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">Segment</span>;
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">SegmentReader</span>;
@@ -1450,6 +1460,7 @@
<span class="kw">use</span> <span class="ident">fastfield</span>::<span class="ident">DeleteBitSet</span>;
<span class="kw">use</span> <span class="ident">fastfield</span>::<span class="ident">FastFieldReader</span>;
<span class="kw">use</span> <span class="ident">fastfield</span>::<span class="ident">FastFieldSerializer</span>;
<span class="kw">use</span> <span class="ident">fastfield</span>::<span class="ident">MultiValueIntFastFieldReader</span>;
<span class="kw">use</span> <span class="ident">fieldnorm</span>::<span class="ident">FieldNormReader</span>;
<span class="kw">use</span> <span class="ident">fieldnorm</span>::<span class="ident">FieldNormsSerializer</span>;
<span class="kw">use</span> <span class="ident">fieldnorm</span>::<span class="ident">FieldNormsWriter</span>;
@@ -1457,16 +1468,15 @@
<span class="kw">use</span> <span class="ident">itertools</span>::<span class="ident">Itertools</span>;
<span class="kw">use</span> <span class="ident">postings</span>::<span class="ident">InvertedIndexSerializer</span>;
<span class="kw">use</span> <span class="ident">postings</span>::<span class="ident">Postings</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Cardinality</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">FieldType</span>;
<span class="kw">use</span> <span class="ident">schema</span>::{<span class="ident">Field</span>, <span class="ident">Schema</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cmp</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="kw">use</span> <span class="ident">store</span>::<span class="ident">StoreWriter</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermMerger</span>;
<span class="kw">use</span> <span class="ident">DocId</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">FieldType</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermOrdinal</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Cardinality</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="kw">use</span> <span class="ident">fastfield</span>::<span class="ident">MultiValueIntFastFieldReader</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cmp</span>;
<span class="kw">use</span> <span class="ident">DocId</span>;
<span class="kw">fn</span> <span class="ident">compute_total_num_tokens</span>(<span class="ident">readers</span>: <span class="kw-2">&amp;</span>[<span class="ident">SegmentReader</span>], <span class="ident">field</span>: <span class="ident">Field</span>) <span class="op">-&gt;</span> <span class="ident">u64</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">total_tokens</span> <span class="op">=</span> <span class="number">0u64</span>;
@@ -1497,8 +1507,6 @@
.<span class="ident">sum</span>::<span class="op">&lt;</span><span class="ident">u64</span><span class="op">&gt;</span>()
}
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">IndexMerger</span> {
<span class="ident">schema</span>: <span class="ident">Schema</span>,
<span class="ident">readers</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">SegmentReader</span><span class="op">&gt;</span>,
@@ -1533,7 +1541,7 @@
}
<span class="kw">struct</span> <span class="ident">TermOrdinalMapping</span> {
<span class="ident">per_segment_new_term_ordinals</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">TermOrdinal</span><span class="op">&gt;&gt;</span>
<span class="ident">per_segment_new_term_ordinals</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">TermOrdinal</span><span class="op">&gt;&gt;</span>,
}
<span class="kw">impl</span> <span class="ident">TermOrdinalMapping</span> {
@@ -1542,14 +1550,11 @@
<span class="ident">per_segment_new_term_ordinals</span>: <span class="ident">max_term_ords</span>
.<span class="ident">into_iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">max_term_ord</span><span class="op">|</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="ident">TermOrdinal</span>::<span class="ident">default</span>(); <span class="ident">max_term_ord</span> <span class="kw">as</span> <span class="ident">usize</span>])
.<span class="ident">collect</span>()
.<span class="ident">collect</span>(),
}
}
<span class="kw">fn</span> <span class="ident">register_from_to</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>,
<span class="ident">segment_ord</span>: <span class="ident">usize</span>,
<span class="ident">from_ord</span>: <span class="ident">TermOrdinal</span>,
<span class="ident">to_ord</span>: <span class="ident">TermOrdinal</span>) {
<span class="kw">fn</span> <span class="ident">register_from_to</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">segment_ord</span>: <span class="ident">usize</span>, <span class="ident">from_ord</span>: <span class="ident">TermOrdinal</span>, <span class="ident">to_ord</span>: <span class="ident">TermOrdinal</span>) {
<span class="self">self</span>.<span class="ident">per_segment_new_term_ordinals</span>[<span class="ident">segment_ord</span>][<span class="ident">from_ord</span> <span class="kw">as</span> <span class="ident">usize</span>] <span class="op">=</span> <span class="ident">to_ord</span>;
}
@@ -1560,9 +1565,7 @@
<span class="kw">fn</span> <span class="ident">max_term_ord</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">TermOrdinal</span> {
<span class="self">self</span>.<span class="ident">per_segment_new_term_ordinals</span>
.<span class="ident">iter</span>()
.<span class="ident">flat_map</span>(<span class="op">|</span><span class="ident">term_ordinals</span><span class="op">|</span> {
<span class="ident">term_ordinals</span>.<span class="ident">iter</span>().<span class="ident">cloned</span>().<span class="ident">max</span>()
})
.<span class="ident">flat_map</span>(<span class="op">|</span><span class="ident">term_ordinals</span><span class="op">|</span> <span class="ident">term_ordinals</span>.<span class="ident">iter</span>().<span class="ident">cloned</span>().<span class="ident">max</span>())
.<span class="ident">max</span>()
.<span class="ident">unwrap_or</span>(<span class="ident">TermOrdinal</span>::<span class="ident">default</span>())
}
@@ -1629,9 +1632,11 @@
<span class="prelude-val">Ok</span>(())
}
<span class="kw">fn</span> <span class="ident">write_fast_fields</span>(<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>,
<span class="kw-2">mut</span> <span class="ident">term_ord_mappings</span>: <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">Field</span>, <span class="ident">TermOrdinalMapping</span><span class="op">&gt;</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">write_fast_fields</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>,
<span class="kw-2">mut</span> <span class="ident">term_ord_mappings</span>: <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">Field</span>, <span class="ident">TermOrdinalMapping</span><span class="op">&gt;</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="kw">for</span> (<span class="ident">field_id</span>, <span class="ident">field_entry</span>) <span class="kw">in</span> <span class="self">self</span>.<span class="ident">schema</span>.<span class="ident">fields</span>().<span class="ident">iter</span>().<span class="ident">enumerate</span>() {
<span class="kw">let</span> <span class="ident">field</span> <span class="op">=</span> <span class="ident">Field</span>(<span class="ident">field_id</span> <span class="kw">as</span> <span class="ident">u32</span>);
<span class="kw">let</span> <span class="ident">field_type</span> <span class="op">=</span> <span class="ident">field_entry</span>.<span class="ident">field_type</span>();
@@ -1642,17 +1647,15 @@
.<span class="ident">expect</span>(<span class="string">&quot;Logic Error in Tantivy (Please report). HierarchicalFact field should have required a\
`term_ordinal_mapping`.&quot;</span>);
<span class="self">self</span>.<span class="ident">write_hierarchical_facet_field</span>(
<span class="ident">field</span>,
<span class="ident">term_ordinal_mapping</span>,
<span class="ident">fast_field_serializer</span>)<span class="question-mark">?</span>;
<span class="ident">field</span>,
<span class="ident">term_ordinal_mapping</span>,
<span class="ident">fast_field_serializer</span>,
)<span class="question-mark">?</span>;
}
<span class="ident">FieldType</span>::<span class="ident">U64</span>(<span class="kw-2">ref</span> <span class="ident">options</span>) <span class="op">|</span> <span class="ident">FieldType</span>::<span class="ident">I64</span>(<span class="kw-2">ref</span> <span class="ident">options</span>) <span class="op">=&gt;</span> {
<span class="kw">match</span> <span class="ident">options</span>.<span class="ident">get_fastfield_cardinality</span>() {
<span class="prelude-val">Some</span>(<span class="ident">Cardinality</span>::<span class="ident">SingleValue</span>) <span class="op">=&gt;</span> {
<span class="self">self</span>.<span class="ident">write_single_fast_field</span>(
<span class="ident">field</span>,
<span class="ident">fast_field_serializer</span>
)<span class="question-mark">?</span>;
<span class="self">self</span>.<span class="ident">write_single_fast_field</span>(<span class="ident">field</span>, <span class="ident">fast_field_serializer</span>)<span class="question-mark">?</span>;
}
<span class="prelude-val">Some</span>(<span class="ident">Cardinality</span>::<span class="ident">MultiValues</span>) <span class="op">=&gt;</span> {
<span class="self">self</span>.<span class="ident">write_multi_fast_field</span>(<span class="ident">field</span>, <span class="ident">fast_field_serializer</span>)<span class="question-mark">?</span>;
@@ -1673,34 +1676,25 @@
<span class="prelude-val">Ok</span>(())
}
<span class="comment">// used both to merge field norms, `u64/i64` single fast fields.</span>
<span class="kw">fn</span> <span class="ident">write_single_fast_field</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
<span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">u64_readers</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[];
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">min_value</span> <span class="op">=</span> <span class="ident">u64</span>::<span class="ident">max_value</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">max_value</span> <span class="op">=</span> <span class="ident">u64</span>::<span class="ident">min_value</span>();
<span class="kw">for</span> <span class="ident">reader</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">readers</span> {
<span class="kw">let</span> <span class="ident">u64_reader</span>: <span class="ident">FastFieldReader</span><span class="op">&lt;</span><span class="ident">u64</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">reader</span>.<span class="ident">fast_field_reader</span>(<span class="ident">field</span>)<span class="question-mark">?</span>;
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>((<span class="ident">seg_min_val</span>, <span class="ident">seg_max_val</span>)) <span class="op">=</span> <span class="ident">compute_min_max_val</span>(
<span class="kw-2">&amp;</span><span class="ident">u64_reader</span>,
<span class="ident">reader</span>.<span class="ident">max_doc</span>(),
<span class="ident">reader</span>.<span class="ident">delete_bitset</span>(),
) {
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>((<span class="ident">seg_min_val</span>, <span class="ident">seg_max_val</span>)) <span class="op">=</span>
<span class="ident">compute_min_max_val</span>(<span class="kw-2">&amp;</span><span class="ident">u64_reader</span>, <span class="ident">reader</span>.<span class="ident">max_doc</span>(), <span class="ident">reader</span>.<span class="ident">delete_bitset</span>())
{
<span class="comment">// the segment has some non-deleted documents</span>
<span class="ident">min_value</span> <span class="op">=</span> <span class="ident">cmp</span>::<span class="ident">min</span>(<span class="ident">min_value</span>, <span class="ident">seg_min_val</span>);
<span class="ident">max_value</span> <span class="op">=</span> <span class="ident">cmp</span>::<span class="ident">max</span>(<span class="ident">max_value</span>, <span class="ident">seg_max_val</span>);
<span class="ident">u64_readers</span>.<span class="ident">push</span>((
<span class="ident">reader</span>.<span class="ident">max_doc</span>(),
<span class="ident">u64_reader</span>,
<span class="ident">reader</span>.<span class="ident">delete_bitset</span>(),
));
<span class="ident">u64_readers</span>.<span class="ident">push</span>((<span class="ident">reader</span>.<span class="ident">max_doc</span>(), <span class="ident">u64_reader</span>, <span class="ident">reader</span>.<span class="ident">delete_bitset</span>()));
} <span class="kw">else</span> {
<span class="comment">// all documents have been deleted.</span>
}
@@ -1730,10 +1724,11 @@
<span class="prelude-val">Ok</span>(())
}
<span class="kw">fn</span> <span class="ident">write_fast_field_idx</span>(<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
<span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">write_fast_field_idx</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
<span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">total_num_vals</span> <span class="op">=</span> <span class="number">0u64</span>;
<span class="comment">// In the first pass, we compute the total number of vals.</span>
@@ -1757,7 +1752,8 @@
<span class="comment">// We can now create our `idx` serializer, and in a second pass,</span>
<span class="comment">// can effectively push the different indexes.</span>
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">serialize_idx</span> <span class="op">=</span> <span class="ident">fast_field_serializer</span>.<span class="ident">new_u64_fast_field_with_idx</span>(<span class="ident">field</span>, <span class="number">0</span>, <span class="ident">total_num_vals</span>, <span class="number">0</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">serialize_idx</span> <span class="op">=</span>
<span class="ident">fast_field_serializer</span>.<span class="ident">new_u64_fast_field_with_idx</span>(<span class="ident">field</span>, <span class="number">0</span>, <span class="ident">total_num_vals</span>, <span class="number">0</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">idx</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">for</span> <span class="ident">reader</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">readers</span> {
<span class="kw">let</span> <span class="ident">idx_reader</span> <span class="op">=</span> <span class="ident">reader</span>.<span class="ident">fast_field_reader_with_idx</span>::<span class="op">&lt;</span><span class="ident">u64</span><span class="op">&gt;</span>(<span class="ident">field</span>, <span class="number">0</span>)<span class="question-mark">?</span>;
@@ -1775,11 +1771,12 @@
<span class="prelude-val">Ok</span>(())
}
<span class="kw">fn</span> <span class="ident">write_hierarchical_facet_field</span>(<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
<span class="ident">term_ordinal_mappings</span>: <span class="ident">TermOrdinalMapping</span>,
<span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">write_hierarchical_facet_field</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
<span class="ident">term_ordinal_mappings</span>: <span class="ident">TermOrdinalMapping</span>,
<span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="comment">// Multifastfield consists in 2 fastfields.</span>
<span class="comment">// The first serves as an index into the second one and is stricly increasing.</span>
<span class="comment">// The second contains the actual values.</span>
@@ -1791,11 +1788,14 @@
<span class="comment">// In the case of hierarchical facets, they are actually term ordinals.</span>
<span class="kw">let</span> <span class="ident">max_term_ord</span> <span class="op">=</span> <span class="ident">term_ordinal_mappings</span>.<span class="ident">max_term_ord</span>();
{
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">serialize_vals</span> <span class="op">=</span> <span class="ident">fast_field_serializer</span>.<span class="ident">new_u64_fast_field_with_idx</span>(<span class="ident">field</span>, <span class="number">0u64</span>, <span class="ident">max_term_ord</span>, <span class="number">1</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">serialize_vals</span> <span class="op">=</span>
<span class="ident">fast_field_serializer</span>.<span class="ident">new_u64_fast_field_with_idx</span>(<span class="ident">field</span>, <span class="number">0u64</span>, <span class="ident">max_term_ord</span>, <span class="number">1</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">vals</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="number">100</span>);
<span class="kw">for</span> (<span class="ident">segment_ord</span>, <span class="ident">segment_reader</span>) <span class="kw">in</span> <span class="self">self</span>.<span class="ident">readers</span>.<span class="ident">iter</span>().<span class="ident">enumerate</span>() {
<span class="kw">let</span> <span class="ident">term_ordinal_mapping</span>: <span class="kw-2">&amp;</span>[<span class="ident">TermOrdinal</span>] <span class="op">=</span> <span class="ident">term_ordinal_mappings</span>.<span class="ident">get_segment</span>(<span class="ident">segment_ord</span>);
<span class="kw">let</span> <span class="ident">ff_reader</span>: <span class="ident">MultiValueIntFastFieldReader</span><span class="op">&lt;</span><span class="ident">u64</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">segment_reader</span>.<span class="ident">multi_fast_field_reader</span>(<span class="ident">field</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="ident">term_ordinal_mapping</span>: <span class="kw-2">&amp;</span>[<span class="ident">TermOrdinal</span>] <span class="op">=</span>
<span class="ident">term_ordinal_mappings</span>.<span class="ident">get_segment</span>(<span class="ident">segment_ord</span>);
<span class="kw">let</span> <span class="ident">ff_reader</span>: <span class="ident">MultiValueIntFastFieldReader</span><span class="op">&lt;</span><span class="ident">u64</span><span class="op">&gt;</span> <span class="op">=</span>
<span class="ident">segment_reader</span>.<span class="ident">multi_fast_field_reader</span>(<span class="ident">field</span>)<span class="question-mark">?</span>;
<span class="comment">// TODO optimize if no deletes</span>
<span class="kw">for</span> <span class="ident">doc</span> <span class="kw">in</span> <span class="number">0</span>..<span class="ident">segment_reader</span>.<span class="ident">max_doc</span>() {
<span class="kw">if</span> <span class="op">!</span><span class="ident">segment_reader</span>.<span class="ident">is_deleted</span>(<span class="ident">doc</span>) {
@@ -1812,8 +1812,11 @@
<span class="prelude-val">Ok</span>(())
}
<span class="kw">fn</span> <span class="ident">write_multi_fast_field</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">field</span>: <span class="ident">Field</span>, <span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">write_multi_fast_field</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
<span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="comment">// Multifastfield consists in 2 fastfields.</span>
<span class="comment">// The first serves as an index into the second one and is stricly increasing.</span>
<span class="comment">// The second contains the actual values.</span>
@@ -1826,7 +1829,6 @@
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">vals</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="number">100</span>);
<span class="comment">// Our values are bitpacked and we need to know what should be</span>
<span class="comment">// our bitwidth and our minimum value before serializing any values.</span>
<span class="comment">//</span>
@@ -1834,7 +1836,8 @@
<span class="comment">// We go through a complete first pass to compute the minimum and the</span>
<span class="comment">// maximum value and initialize our Serializer.</span>
<span class="kw">for</span> <span class="ident">reader</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">readers</span> {
<span class="kw">let</span> <span class="ident">ff_reader</span>: <span class="ident">MultiValueIntFastFieldReader</span><span class="op">&lt;</span><span class="ident">u64</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">reader</span>.<span class="ident">multi_fast_field_reader</span>(<span class="ident">field</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="ident">ff_reader</span>: <span class="ident">MultiValueIntFastFieldReader</span><span class="op">&lt;</span><span class="ident">u64</span><span class="op">&gt;</span> <span class="op">=</span>
<span class="ident">reader</span>.<span class="ident">multi_fast_field_reader</span>(<span class="ident">field</span>)<span class="question-mark">?</span>;
<span class="kw">for</span> <span class="ident">doc</span> <span class="kw">in</span> <span class="number">0u32</span>..<span class="ident">reader</span>.<span class="ident">max_doc</span>() {
<span class="kw">if</span> <span class="op">!</span><span class="ident">reader</span>.<span class="ident">is_deleted</span>(<span class="ident">doc</span>) {
<span class="ident">ff_reader</span>.<span class="ident">get_vals</span>(<span class="ident">doc</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">vals</span>);
@@ -1854,9 +1857,11 @@
<span class="comment">// We can now initialize our serializer, and push it the different values</span>
{
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">serialize_vals</span> <span class="op">=</span> <span class="ident">fast_field_serializer</span>.<span class="ident">new_u64_fast_field_with_idx</span>(<span class="ident">field</span>, <span class="ident">min_value</span>, <span class="ident">max_value</span>, <span class="number">1</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">serialize_vals</span> <span class="op">=</span>
<span class="ident">fast_field_serializer</span>.<span class="ident">new_u64_fast_field_with_idx</span>(<span class="ident">field</span>, <span class="ident">min_value</span>, <span class="ident">max_value</span>, <span class="number">1</span>)<span class="question-mark">?</span>;
<span class="kw">for</span> <span class="ident">reader</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">readers</span> {
<span class="kw">let</span> <span class="ident">ff_reader</span>: <span class="ident">MultiValueIntFastFieldReader</span><span class="op">&lt;</span><span class="ident">u64</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">reader</span>.<span class="ident">multi_fast_field_reader</span>(<span class="ident">field</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="ident">ff_reader</span>: <span class="ident">MultiValueIntFastFieldReader</span><span class="op">&lt;</span><span class="ident">u64</span><span class="op">&gt;</span> <span class="op">=</span>
<span class="ident">reader</span>.<span class="ident">multi_fast_field_reader</span>(<span class="ident">field</span>)<span class="question-mark">?</span>;
<span class="comment">// TODO optimize if no deletes</span>
<span class="kw">for</span> <span class="ident">doc</span> <span class="kw">in</span> <span class="number">0</span>..<span class="ident">reader</span>.<span class="ident">max_doc</span>() {
<span class="kw">if</span> <span class="op">!</span><span class="ident">reader</span>.<span class="ident">is_deleted</span>(<span class="ident">doc</span>) {
@@ -1872,9 +1877,11 @@
<span class="prelude-val">Ok</span>(())
}
<span class="kw">fn</span> <span class="ident">write_bytes_fast_field</span>(<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
<span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">write_bytes_fast_field</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">field</span>: <span class="ident">Field</span>,
<span class="ident">fast_field_serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">FastFieldSerializer</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> {
<span class="self">self</span>.<span class="ident">write_fast_field_idx</span>(<span class="ident">field</span>, <span class="ident">fast_field_serializer</span>)<span class="question-mark">?</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">serialize_vals</span> <span class="op">=</span> <span class="ident">fast_field_serializer</span>.<span class="ident">new_bytes_fast_field_with_idx</span>(<span class="ident">field</span>, <span class="number">1</span>)<span class="question-mark">?</span>;
@@ -1893,12 +1900,14 @@
<span class="prelude-val">Ok</span>(())
}
<span class="kw">fn</span> <span class="ident">write_postings_for_field</span>(<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">indexed_field</span>: <span class="ident">Field</span>,
<span class="ident">field_type</span>: <span class="kw-2">&amp;</span><span class="ident">FieldType</span>,
<span class="ident">serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">InvertedIndexSerializer</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">TermOrdinalMapping</span><span class="op">&gt;&gt;</span> {
<span class="kw">fn</span> <span class="ident">write_postings_for_field</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">indexed_field</span>: <span class="ident">Field</span>,
<span class="ident">field_type</span>: <span class="kw-2">&amp;</span><span class="ident">FieldType</span>,
<span class="ident">serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">InvertedIndexSerializer</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">TermOrdinalMapping</span><span class="op">&gt;&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">positions_buffer</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u32</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="number">1_000</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">delta_computer</span><span class="op">=</span> <span class="ident">DeltaComputer</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">delta_computer</span> <span class="op">=</span> <span class="ident">DeltaComputer</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="ident">field_readers</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">readers</span>
.<span class="ident">iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">reader</span><span class="op">|</span> <span class="ident">reader</span>.<span class="ident">inverted_index</span>(<span class="ident">indexed_field</span>))
@@ -1913,20 +1922,17 @@
<span class="ident">max_term_ords</span>.<span class="ident">push</span>(<span class="ident">terms</span>.<span class="ident">num_terms</span>() <span class="kw">as</span> <span class="ident">u64</span>);
}
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">term_ord_mapping_opt</span> <span class="op">=</span>
<span class="kw">if</span> <span class="kw-2">*</span><span class="ident">field_type</span> <span class="op">==</span> <span class="ident">FieldType</span>::<span class="ident">HierarchicalFacet</span> {
<span class="prelude-val">Some</span>(<span class="ident">TermOrdinalMapping</span>::<span class="ident">new</span>(<span class="ident">max_term_ords</span>))
} <span class="kw">else</span> {
<span class="prelude-val">None</span>
};
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">term_ord_mapping_opt</span> <span class="op">=</span> <span class="kw">if</span> <span class="kw-2">*</span><span class="ident">field_type</span> <span class="op">==</span> <span class="ident">FieldType</span>::<span class="ident">HierarchicalFacet</span> {
<span class="prelude-val">Some</span>(<span class="ident">TermOrdinalMapping</span>::<span class="ident">new</span>(<span class="ident">max_term_ords</span>))
} <span class="kw">else</span> {
<span class="prelude-val">None</span>
};
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">merged_terms</span> <span class="op">=</span> <span class="ident">TermMerger</span>::<span class="ident">new</span>(<span class="ident">field_term_streams</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">max_doc</span> <span class="op">=</span> <span class="number">0</span>;
<span class="comment">// map from segment doc ids to the resulting merged segment doc id.</span>
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">merged_doc_id_map</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DocId</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span> <span class="op">=</span>
<span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="self">self</span>.<span class="ident">readers</span>.<span class="ident">len</span>());
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">merged_doc_id_map</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DocId</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="self">self</span>.<span class="ident">readers</span>.<span class="ident">len</span>());
<span class="kw">for</span> <span class="ident">reader</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">readers</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">segment_local_map</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="ident">reader</span>.<span class="ident">max_doc</span>() <span class="kw">as</span> <span class="ident">usize</span>);
@@ -1961,11 +1967,10 @@
<span class="kw">let</span> <span class="ident">field_entry</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">schema</span>.<span class="ident">get_field_entry</span>(<span class="ident">indexed_field</span>);
<span class="comment">// ... set segment postings option the new field.</span>
<span class="kw">let</span> <span class="ident">segment_postings_option</span> <span class="op">=</span>
<span class="ident">field_entry</span>.<span class="ident">field_type</span>().<span class="ident">get_index_record_option</span>().<span class="ident">expect</span>(
<span class="string">&quot;Encountered a field that is not supposed to be
<span class="kw">let</span> <span class="ident">segment_postings_option</span> <span class="op">=</span> <span class="ident">field_entry</span>.<span class="ident">field_type</span>().<span class="ident">get_index_record_option</span>().<span class="ident">expect</span>(
<span class="string">&quot;Encountered a field that is not supposed to be
indexed. Have you modified the schema?&quot;</span>,
);
);
<span class="kw">while</span> <span class="ident">merged_terms</span>.<span class="ident">advance</span>() {
<span class="kw">let</span> <span class="ident">term_bytes</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>] <span class="op">=</span> <span class="ident">merged_terms</span>.<span class="ident">key</span>();
@@ -2003,7 +2008,7 @@
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="kw-2">ref</span> <span class="kw-2">mut</span> <span class="ident">term_ord_mapping</span>) <span class="op">=</span> <span class="ident">term_ord_mapping_opt</span> {
<span class="kw">for</span> (<span class="ident">segment_ord</span>, <span class="ident">from_term_ord</span>) <span class="kw">in</span> <span class="ident">merged_terms</span>.<span class="ident">matching_segments</span>() {
<span class="ident">term_ord_mapping</span>.<span class="ident">register_from_to</span>(<span class="ident">segment_ord</span>,<span class="ident">from_term_ord</span>, <span class="ident">to_term_ord</span>);
<span class="ident">term_ord_mapping</span>.<span class="ident">register_from_to</span>(<span class="ident">segment_ord</span>, <span class="ident">from_term_ord</span>, <span class="ident">to_term_ord</span>);
}
}
@@ -2029,8 +2034,7 @@
<span class="kw">let</span> <span class="ident">term_freq</span> <span class="op">=</span> <span class="ident">segment_postings</span>.<span class="ident">term_freq</span>();
<span class="ident">segment_postings</span>.<span class="ident">positions</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">positions_buffer</span>);
<span class="kw">let</span> <span class="ident">delta_positions</span> <span class="op">=</span>
<span class="ident">delta_computer</span>.<span class="ident">compute_delta</span>(<span class="kw-2">&amp;</span><span class="ident">positions_buffer</span>);
<span class="kw">let</span> <span class="ident">delta_positions</span> <span class="op">=</span> <span class="ident">delta_computer</span>.<span class="ident">compute_delta</span>(<span class="kw-2">&amp;</span><span class="ident">positions_buffer</span>);
<span class="ident">field_serializer</span>.<span class="ident">write_doc</span>(
<span class="ident">remapped_doc_id</span>,
<span class="ident">term_freq</span>,
@@ -2051,12 +2055,19 @@
<span class="prelude-val">Ok</span>(<span class="ident">term_ord_mapping_opt</span>)
}
<span class="kw">fn</span> <span class="ident">write_postings</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">InvertedIndexSerializer</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">Field</span>, <span class="ident">TermOrdinalMapping</span><span class="op">&gt;&gt;</span> {
<span class="kw">fn</span> <span class="ident">write_postings</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">serializer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">InvertedIndexSerializer</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">Field</span>, <span class="ident">TermOrdinalMapping</span><span class="op">&gt;&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">term_ordinal_mappings</span> <span class="op">=</span> <span class="ident">HashMap</span>::<span class="ident">new</span>();
<span class="kw">for</span> (<span class="ident">field_ord</span>, <span class="ident">field_entry</span>) <span class="kw">in</span> <span class="self">self</span>.<span class="ident">schema</span>.<span class="ident">fields</span>().<span class="ident">iter</span>().<span class="ident">enumerate</span>() {
<span class="kw">if</span> <span class="ident">field_entry</span>.<span class="ident">is_indexed</span>() {
<span class="kw">let</span> <span class="ident">indexed_field</span> <span class="op">=</span> <span class="ident">Field</span>(<span class="ident">field_ord</span> <span class="kw">as</span> <span class="ident">u32</span>);
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">term_ordinal_mapping</span>) <span class="op">=</span> <span class="self">self</span>.<span class="ident">write_postings_for_field</span>(<span class="ident">indexed_field</span>, <span class="ident">field_entry</span>.<span class="ident">field_type</span>(), <span class="ident">serializer</span>)<span class="question-mark">?</span> {
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">term_ordinal_mapping</span>) <span class="op">=</span> <span class="self">self</span>.<span class="ident">write_postings_for_field</span>(
<span class="ident">indexed_field</span>,
<span class="ident">field_entry</span>.<span class="ident">field_type</span>(),
<span class="ident">serializer</span>,
)<span class="question-mark">?</span> {
<span class="ident">term_ordinal_mappings</span>.<span class="ident">insert</span>(<span class="ident">indexed_field</span>, <span class="ident">term_ordinal_mapping</span>);
}
}
@@ -2095,27 +2106,27 @@
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> <span class="ident">byteorder</span>::{<span class="ident">BigEndian</span>, <span class="ident">ReadBytesExt</span>, <span class="ident">WriteBytesExt</span>};
<span class="kw">use</span> <span class="ident">collector</span>::<span class="ident">chain</span>;
<span class="kw">use</span> <span class="ident">collector</span>::<span class="ident">tests</span>::<span class="ident">TestCollector</span>;
<span class="kw">use</span> <span class="ident">collector</span>::<span class="ident">tests</span>::{<span class="ident">BytesFastFieldTestCollector</span>, <span class="ident">FastFieldTestCollector</span>};
<span class="kw">use</span> <span class="ident">collector</span>::<span class="ident">FacetCollector</span>;
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">Index</span>;
<span class="kw">use</span> <span class="ident">futures</span>::<span class="ident">Future</span>;
<span class="kw">use</span> <span class="ident">query</span>::<span class="ident">AllQuery</span>;
<span class="kw">use</span> <span class="ident">query</span>::<span class="ident">BooleanQuery</span>;
<span class="kw">use</span> <span class="ident">query</span>::<span class="ident">TermQuery</span>;
<span class="kw">use</span> <span class="ident">schema</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Cardinality</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Document</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">IndexRecordOption</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">IntOptions</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Term</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">TextFieldIndexing</span>;
<span class="kw">use</span> <span class="ident">DocAddress</span>;
<span class="kw">use</span> <span class="ident">Searcher</span>;
<span class="kw">use</span> <span class="ident">collector</span>::<span class="ident">tests</span>::{<span class="ident">BytesFastFieldTestCollector</span>, <span class="ident">FastFieldTestCollector</span>};
<span class="kw">use</span> <span class="ident">collector</span>::<span class="ident">chain</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Cardinality</span>;
<span class="kw">use</span> <span class="ident">futures</span>::<span class="ident">Future</span>;
<span class="kw">use</span> <span class="ident">IndexWriter</span>;
<span class="kw">use</span> <span class="ident">query</span>::<span class="ident">AllQuery</span>;
<span class="kw">use</span> <span class="ident">collector</span>::<span class="ident">FacetCollector</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">IntOptions</span>;
<span class="kw">use</span> <span class="ident">byteorder</span>::{<span class="ident">ReadBytesExt</span>, <span class="ident">WriteBytesExt</span>, <span class="ident">BigEndian</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">Cursor</span>;
<span class="kw">use</span> <span class="ident">DocAddress</span>;
<span class="kw">use</span> <span class="ident">IndexWriter</span>;
<span class="kw">use</span> <span class="ident">Searcher</span>;
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_index_merger_no_deletes</span>() {
@@ -2135,7 +2146,9 @@
<span class="kw">let</span> <span class="ident">add_score_bytes</span> <span class="op">=</span> <span class="op">|</span><span class="ident">doc</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Document</span>, <span class="ident">score</span>: <span class="ident">u32</span><span class="op">|</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">bytes</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">new</span>();
<span class="ident">bytes</span>.<span class="ident">write_u32</span>::<span class="op">&lt;</span><span class="ident">BigEndian</span><span class="op">&gt;</span>(<span class="ident">score</span>).<span class="ident">expect</span>(<span class="string">&quot;failed to write u32 bytes to Vec...&quot;</span>);
<span class="ident">bytes</span>
.<span class="ident">write_u32</span>::<span class="op">&lt;</span><span class="ident">BigEndian</span><span class="op">&gt;</span>(<span class="ident">score</span>)
.<span class="ident">expect</span>(<span class="string">&quot;failed to write u32 bytes to Vec...&quot;</span>);
<span class="ident">doc</span>.<span class="ident">add_bytes</span>(<span class="ident">bytes_score_field</span>, <span class="ident">bytes</span>);
};
@@ -2254,7 +2267,9 @@
<span class="kw">let</span> <span class="ident">get_fast_vals_bytes</span> <span class="op">=</span> <span class="op">|</span><span class="ident">terms</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Term</span><span class="op">&gt;</span><span class="op">|</span> {
<span class="kw">let</span> <span class="ident">query</span> <span class="op">=</span> <span class="ident">BooleanQuery</span>::<span class="ident">new_multiterms_query</span>(<span class="ident">terms</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">collector</span> <span class="op">=</span> <span class="ident">BytesFastFieldTestCollector</span>::<span class="ident">for_field</span>(<span class="ident">bytes_score_field</span>);
<span class="ident">searcher</span>.<span class="ident">search</span>(<span class="kw-2">&amp;</span><span class="ident">query</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">collector</span>).<span class="ident">expect</span>(<span class="string">&quot;failed to search&quot;</span>);
<span class="ident">searcher</span>
.<span class="ident">search</span>(<span class="kw-2">&amp;</span><span class="ident">query</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">collector</span>)
.<span class="ident">expect</span>(<span class="string">&quot;failed to search&quot;</span>);
<span class="ident">collector</span>.<span class="ident">vals</span>()
};
<span class="macro">assert_eq</span><span class="macro">!</span>(
@@ -2263,7 +2278,7 @@
);
<span class="macro">assert_eq</span><span class="macro">!</span>(
<span class="ident">get_fast_vals_bytes</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="ident">Term</span>::<span class="ident">from_field_text</span>(<span class="ident">text_field</span>, <span class="string">&quot;a&quot;</span>)]),
<span class="macro">vec</span><span class="macro">!</span>[<span class="number">0</span>,<span class="number">0</span>,<span class="number">0</span>,<span class="number">5</span>, <span class="number">0</span>,<span class="number">0</span>,<span class="number">0</span>,<span class="number">7</span>, <span class="number">0</span>,<span class="number">0</span>,<span class="number">0</span>,<span class="number">13</span>]
<span class="macro">vec</span><span class="macro">!</span>[<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">5</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">7</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">13</span>]
);
}
}
@@ -2290,10 +2305,11 @@
<span class="kw">let</span> <span class="ident">term_query</span> <span class="op">=</span> <span class="ident">TermQuery</span>::<span class="ident">new</span>(<span class="ident">term</span>, <span class="ident">IndexRecordOption</span>::<span class="ident">Basic</span>);
{
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">combined_collector</span> <span class="op">=</span> <span class="ident">chain</span>()
.<span class="ident">push</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">collector</span>)
.<span class="ident">push</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">bytes_collector</span>);
<span class="ident">searcher</span>.<span class="ident">search</span>(<span class="kw-2">&amp;</span><span class="ident">term_query</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">combined_collector</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">combined_collector</span> <span class="op">=</span>
<span class="ident">chain</span>().<span class="ident">push</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">collector</span>).<span class="ident">push</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">bytes_collector</span>);
<span class="ident">searcher</span>
.<span class="ident">search</span>(<span class="kw-2">&amp;</span><span class="ident">term_query</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">combined_collector</span>)
.<span class="ident">unwrap</span>();
}
<span class="kw">let</span> <span class="ident">scores</span> <span class="op">=</span> <span class="ident">collector</span>.<span class="ident">vals</span>();
@@ -2592,7 +2608,6 @@
}
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_merge_facets</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">schema_builder</span> <span class="op">=</span> <span class="ident">schema</span>::<span class="ident">SchemaBuilder</span>::<span class="ident">default</span>();
@@ -2632,15 +2647,17 @@
<span class="kw">let</span> <span class="ident">searcher</span> <span class="op">=</span> <span class="ident">index</span>.<span class="ident">searcher</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">facet_collector</span> <span class="op">=</span> <span class="ident">FacetCollector</span>::<span class="ident">for_field</span>(<span class="ident">facet_field</span>);
<span class="ident">facet_collector</span>.<span class="ident">add_facet</span>(<span class="ident">Facet</span>::<span class="ident">from</span>(<span class="string">&quot;/top&quot;</span>));
<span class="kw">use</span> <span class="ident">collector</span>::{<span class="ident">MultiCollector</span>, <span class="ident">CountCollector</span>};
<span class="kw">use</span> <span class="ident">collector</span>::{<span class="ident">CountCollector</span>, <span class="ident">MultiCollector</span>};
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">count_collector</span> <span class="op">=</span> <span class="ident">CountCollector</span>::<span class="ident">default</span>();
{
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">multi_collectors</span> <span class="op">=</span> <span class="ident">MultiCollector</span>::<span class="ident">from</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">count_collector</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">facet_collector</span>]);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">multi_collectors</span> <span class="op">=</span>
<span class="ident">MultiCollector</span>::<span class="ident">from</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">count_collector</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">facet_collector</span>]);
<span class="ident">searcher</span>.<span class="ident">search</span>(<span class="kw-2">&amp;</span><span class="ident">AllQuery</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">multi_collectors</span>).<span class="ident">unwrap</span>();
}
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">count_collector</span>.<span class="ident">count</span>(), <span class="ident">expected_num_docs</span>);
<span class="kw">let</span> <span class="ident">facet_counts</span> <span class="op">=</span> <span class="ident">facet_collector</span>.<span class="ident">harvest</span>();
<span class="kw">let</span> <span class="ident">facets</span>: <span class="ident">Vec</span><span class="op">&lt;</span>(<span class="ident">String</span>, <span class="ident">u64</span>)<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">facet_counts</span>.<span class="ident">get</span>(<span class="string">&quot;/top&quot;</span>)
<span class="kw">let</span> <span class="ident">facets</span>: <span class="ident">Vec</span><span class="op">&lt;</span>(<span class="ident">String</span>, <span class="ident">u64</span>)<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">facet_counts</span>
.<span class="ident">get</span>(<span class="string">&quot;/top&quot;</span>)
.<span class="ident">map</span>(<span class="op">|</span>(<span class="ident">facet</span>, <span class="ident">count</span>)<span class="op">|</span> (<span class="ident">facet</span>.<span class="ident">to_string</span>(), <span class="ident">count</span>))
.<span class="ident">collect</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(
@@ -2651,14 +2668,17 @@
.<span class="ident">collect</span>::<span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="kw">_</span><span class="op">&gt;&gt;</span>()
);
};
<span class="ident">test_searcher</span>(<span class="number">11</span>, <span class="kw-2">&amp;</span>[
(<span class="string">&quot;/top/a&quot;</span>, <span class="number">5</span>),
(<span class="string">&quot;/top/b&quot;</span>, <span class="number">5</span>),
(<span class="string">&quot;/top/c&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/d&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/e&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/f&quot;</span>, <span class="number">1</span>)
]);
<span class="ident">test_searcher</span>(
<span class="number">11</span>,
<span class="kw-2">&amp;</span>[
(<span class="string">&quot;/top/a&quot;</span>, <span class="number">5</span>),
(<span class="string">&quot;/top/b&quot;</span>, <span class="number">5</span>),
(<span class="string">&quot;/top/c&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/d&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/e&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/f&quot;</span>, <span class="number">1</span>),
],
);
<span class="comment">// Merging the segments</span>
{
@@ -2673,14 +2693,17 @@
<span class="ident">index_writer</span>.<span class="ident">wait_merging_threads</span>().<span class="ident">unwrap</span>();
<span class="ident">index</span>.<span class="ident">load_searchers</span>().<span class="ident">unwrap</span>();
<span class="ident">test_searcher</span>(<span class="number">11</span>, <span class="kw-2">&amp;</span>[
(<span class="string">&quot;/top/a&quot;</span>, <span class="number">5</span>),
(<span class="string">&quot;/top/b&quot;</span>, <span class="number">5</span>),
(<span class="string">&quot;/top/c&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/d&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/e&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/f&quot;</span>, <span class="number">1</span>)
]);
<span class="ident">test_searcher</span>(
<span class="number">11</span>,
<span class="kw-2">&amp;</span>[
(<span class="string">&quot;/top/a&quot;</span>, <span class="number">5</span>),
(<span class="string">&quot;/top/b&quot;</span>, <span class="number">5</span>),
(<span class="string">&quot;/top/c&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/d&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/e&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/f&quot;</span>, <span class="number">1</span>),
],
);
}
<span class="comment">// Deleting one term</span>
@@ -2691,19 +2714,20 @@
<span class="ident">index_writer</span>.<span class="ident">delete_term</span>(<span class="ident">facet_term</span>);
<span class="ident">index_writer</span>.<span class="ident">commit</span>().<span class="ident">unwrap</span>();
<span class="ident">index</span>.<span class="ident">load_searchers</span>().<span class="ident">unwrap</span>();
<span class="ident">test_searcher</span>(<span class="number">9</span>, <span class="kw-2">&amp;</span>[
(<span class="string">&quot;/top/a&quot;</span>, <span class="number">3</span>),
(<span class="string">&quot;/top/b&quot;</span>, <span class="number">3</span>),
(<span class="string">&quot;/top/c&quot;</span>, <span class="number">1</span>),
(<span class="string">&quot;/top/d&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/e&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/f&quot;</span>, <span class="number">1</span>)
]);
<span class="ident">test_searcher</span>(
<span class="number">9</span>,
<span class="kw-2">&amp;</span>[
(<span class="string">&quot;/top/a&quot;</span>, <span class="number">3</span>),
(<span class="string">&quot;/top/b&quot;</span>, <span class="number">3</span>),
(<span class="string">&quot;/top/c&quot;</span>, <span class="number">1</span>),
(<span class="string">&quot;/top/d&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/e&quot;</span>, <span class="number">2</span>),
(<span class="string">&quot;/top/f&quot;</span>, <span class="number">1</span>),
],
);
}
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_merge_multivalued_int_fields_all_deleted</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">schema_builder</span> <span class="op">=</span> <span class="ident">schema</span>::<span class="ident">SchemaBuilder</span>::<span class="ident">default</span>();
@@ -2716,7 +2740,7 @@
{
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">index_writer</span> <span class="op">=</span> <span class="ident">index</span>.<span class="ident">writer_with_num_threads</span>(<span class="number">1</span>, <span class="number">40_000_000</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">doc</span> <span class="op">=</span> <span class="ident">Document</span>::<span class="ident">default</span>();
<span class="ident">doc</span>.<span class="ident">add_u64</span>(<span class="ident">int_field</span>, <span class="number">1</span>);
<span class="ident">doc</span>.<span class="ident">add_u64</span>(<span class="ident">int_field</span>, <span class="number">1</span>);
<span class="ident">index_writer</span>.<span class="ident">add_document</span>(<span class="ident">doc</span>.<span class="ident">clone</span>());
<span class="ident">index_writer</span>.<span class="ident">commit</span>().<span class="ident">expect</span>(<span class="string">&quot;commit failed&quot;</span>);
<span class="ident">index_writer</span>.<span class="ident">add_document</span>(<span class="ident">doc</span>);
@@ -2753,13 +2777,12 @@
<span class="kw">let</span> <span class="ident">int_field</span> <span class="op">=</span> <span class="ident">schema_builder</span>.<span class="ident">add_u64_field</span>(<span class="string">&quot;intvals&quot;</span>, <span class="ident">int_options</span>);
<span class="kw">let</span> <span class="ident">index</span> <span class="op">=</span> <span class="ident">Index</span>::<span class="ident">create_in_ram</span>(<span class="ident">schema_builder</span>.<span class="ident">build</span>());
{
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">index_writer</span> <span class="op">=</span> <span class="ident">index</span>.<span class="ident">writer_with_num_threads</span>(<span class="number">1</span>, <span class="number">40_000_000</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">index_doc</span> <span class="op">=</span> <span class="op">|</span><span class="ident">index_writer</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">IndexWriter</span>, <span class="ident">int_vals</span>: <span class="kw-2">&amp;</span>[<span class="ident">u64</span>]<span class="op">|</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">doc</span> <span class="op">=</span> <span class="ident">Document</span>::<span class="ident">default</span>();
<span class="kw">for</span> <span class="kw-2">&amp;</span><span class="ident">val</span> <span class="kw">in</span> <span class="ident">int_vals</span> {
<span class="ident">doc</span>.<span class="ident">add_u64</span>(<span class="ident">int_field</span>, <span class="ident">val</span>);
<span class="ident">doc</span>.<span class="ident">add_u64</span>(<span class="ident">int_field</span>, <span class="ident">val</span>);
}
<span class="ident">index_writer</span>.<span class="ident">add_document</span>(<span class="ident">doc</span>);
};
@@ -2813,7 +2836,6 @@
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="kw-2">&amp;</span><span class="ident">vals</span>, <span class="kw-2">&amp;</span>[<span class="number">17</span>]);
}
{
<span class="kw">let</span> <span class="ident">segment</span> <span class="op">=</span> <span class="ident">searcher</span>.<span class="ident">segment_reader</span>(<span class="number">1u32</span>);
<span class="kw">let</span> <span class="ident">ff_reader</span> <span class="op">=</span> <span class="ident">segment</span>.<span class="ident">multi_fast_field_reader</span>(<span class="ident">int_field</span>).<span class="ident">unwrap</span>();
@@ -2881,9 +2903,7 @@
<span class="ident">ff_reader</span>.<span class="ident">get_vals</span>(<span class="number">9</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">vals</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="kw-2">&amp;</span><span class="ident">vals</span>, <span class="kw-2">&amp;</span>[<span class="number">1_000</span>]);
}
}
}
</pre>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g. <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g. <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g. <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../";window.currentCrate = "tantivy";</script><script src="../../../aliases.js"></script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>

View File

@@ -271,22 +271,26 @@
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">datastruct</span>::<span class="ident">stacker</span>::{<span class="ident">Heap</span>, <span class="ident">TermHashMap</span>};
<span class="kw">use</span> <span class="ident">postings</span>::<span class="ident">recorder</span>::{<span class="ident">NothingRecorder</span>, <span class="ident">Recorder</span>, <span class="ident">TFAndPositionRecorder</span>, <span class="ident">TermFrequencyRecorder</span>};
<span class="kw">use</span> <span class="ident">postings</span>::<span class="ident">UnorderedTermId</span>;
<span class="kw">use</span> <span class="ident">postings</span>::{<span class="ident">FieldSerializer</span>, <span class="ident">InvertedIndexSerializer</span>};
<span class="kw">use</span> <span class="ident">postings</span>::<span class="ident">recorder</span>::{<span class="ident">Recorder</span>, <span class="ident">NothingRecorder</span>, <span class="ident">TFAndPositionRecorder</span>, <span class="ident">TermFrequencyRecorder</span>};
<span class="kw">use</span> <span class="ident">schema</span>::{<span class="ident">FieldEntry</span>, <span class="ident">FieldType</span>, <span class="ident">Term</span>, <span class="ident">Field</span>, <span class="ident">Schema</span>};
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">IndexRecordOption</span>;
<span class="kw">use</span> <span class="ident">schema</span>::{<span class="ident">Field</span>, <span class="ident">FieldEntry</span>, <span class="ident">FieldType</span>, <span class="ident">Schema</span>, <span class="ident">Term</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">marker</span>::<span class="ident">PhantomData</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ops</span>::<span class="ident">DerefMut</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermOrdinal</span>;
<span class="kw">use</span> <span class="ident">tokenizer</span>::<span class="ident">Token</span>;
<span class="kw">use</span> <span class="ident">tokenizer</span>::<span class="ident">TokenStream</span>;
<span class="kw">use</span> <span class="ident">DocId</span>;
<span class="kw">use</span> <span class="prelude-ty">Result</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">IndexRecordOption</span>;
<span class="kw">use</span> <span class="ident">postings</span>::<span class="ident">UnorderedTermId</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermOrdinal</span>;
<span class="kw">fn</span> <span class="ident">posting_from_field_entry</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span>(
<span class="ident">field_entry</span>: <span class="kw-2">&amp;</span><span class="ident">FieldEntry</span>,
@@ -371,8 +375,10 @@
.<span class="ident">map</span>(<span class="op">|</span>(<span class="ident">key</span>, <span class="kw">_</span>, <span class="kw">_</span>)<span class="op">|</span> <span class="ident">Term</span>::<span class="ident">wrap</span>(<span class="ident">key</span>).<span class="ident">field</span>())
.<span class="ident">enumerate</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">unordered_term_mappings</span>: <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">Field</span>, <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">UnorderedTermId</span>, <span class="ident">TermOrdinal</span><span class="op">&gt;&gt;</span> <span class="op">=</span>
<span class="ident">HashMap</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">unordered_term_mappings</span>: <span class="ident">HashMap</span><span class="op">&lt;</span>
<span class="ident">Field</span>,
<span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">UnorderedTermId</span>, <span class="ident">TermOrdinal</span><span class="op">&gt;</span>,
<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">HashMap</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">prev_field</span> <span class="op">=</span> <span class="ident">Field</span>(<span class="ident">u32</span>::<span class="ident">max_value</span>());
<span class="kw">for</span> (<span class="ident">offset</span>, <span class="ident">field</span>) <span class="kw">in</span> <span class="ident">term_offsets_it</span> {
@@ -398,7 +404,9 @@
.<span class="ident">map</span>(<span class="op">|</span><span class="kw-2">&amp;</span>(<span class="kw">_</span>, <span class="kw">_</span>, <span class="ident">bucket</span>)<span class="op">|</span> <span class="ident">bucket</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">mapping</span>: <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">UnorderedTermId</span>, <span class="ident">TermOrdinal</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">unordered_term_ids</span>
.<span class="ident">enumerate</span>()
.<span class="ident">map</span>(<span class="op">|</span>(<span class="ident">term_ord</span>, <span class="ident">unord_term_id</span>)<span class="op">|</span> (<span class="ident">unord_term_id</span> <span class="kw">as</span> <span class="ident">UnorderedTermId</span>, <span class="ident">term_ord</span> <span class="kw">as</span> <span class="ident">TermOrdinal</span>))
.<span class="ident">map</span>(<span class="op">|</span>(<span class="ident">term_ord</span>, <span class="ident">unord_term_id</span>)<span class="op">|</span> {
(<span class="ident">unord_term_id</span> <span class="kw">as</span> <span class="ident">UnorderedTermId</span>, <span class="ident">term_ord</span> <span class="kw">as</span> <span class="ident">TermOrdinal</span>)
})
.<span class="ident">collect</span>();
<span class="ident">unordered_term_mappings</span>.<span class="ident">insert</span>(<span class="ident">field</span>, <span class="ident">mapping</span>);
}

View File

@@ -375,22 +375,20 @@
<span id="375">375</span>
<span id="376">376</span>
<span id="377">377</span>
<span id="378">378</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="prelude-ty">Result</span>;
<span class="kw">use</span> <span class="ident">DocId</span>;
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">TermInfo</span>;
<span class="kw">use</span> <span class="ident">common</span>::<span class="ident">BinarySerializable</span>;
<span class="kw">use</span> <span class="ident">common</span>::{<span class="ident">CompositeWrite</span>, <span class="ident">CountingWriter</span>};
<span class="kw">use</span> <span class="ident">compression</span>::<span class="ident">VIntEncoder</span>;
<span class="kw">use</span> <span class="ident">compression</span>::{<span class="ident">BlockEncoder</span>, <span class="ident">COMPRESSION_BLOCK_SIZE</span>};
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">Segment</span>;
<span class="kw">use</span> <span class="ident">directory</span>::<span class="ident">WritePtr</span>;
<span class="kw">use</span> <span class="ident">schema</span>::{<span class="ident">Field</span>, <span class="ident">FieldEntry</span>, <span class="ident">FieldType</span>};
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Schema</span>;
<span class="kw">use</span> <span class="ident">schema</span>::{<span class="ident">Field</span>, <span class="ident">FieldEntry</span>, <span class="ident">FieldType</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::{<span class="self">self</span>, <span class="ident">Write</span>};
<span class="kw">use</span> <span class="ident">common</span>::{<span class="ident">CompositeWrite</span>, <span class="ident">CountingWriter</span>};
<span class="kw">use</span> <span class="ident">termdict</span>::{<span class="ident">TermOrdinal</span>, <span class="ident">TermDictionaryBuilder</span>};
<span class="kw">use</span> <span class="ident">termdict</span>::{<span class="ident">TermDictionaryBuilder</span>, <span class="ident">TermOrdinal</span>};
<span class="kw">use</span> <span class="ident">DocId</span>;
<span class="kw">use</span> <span class="prelude-ty">Result</span>;
<span class="doccomment">/// `PostingsSerializer` is in charge of serializing</span>
<span class="doccomment">/// postings on disk, in the</span>

View File

@@ -123,17 +123,14 @@
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">DocId</span>;
<span class="kw">use</span> <span class="prelude-ty">Result</span>;
<span class="kw">use</span> <span class="ident">Score</span>;
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">Searcher</span>;
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">SegmentReader</span>;
<span class="kw">use</span> <span class="ident">docset</span>::<span class="ident">DocSet</span>;
<span class="kw">use</span> <span class="ident">query</span>::{<span class="ident">Query</span>, <span class="ident">Weight</span>, <span class="ident">Scorer</span>};
<span class="kw">use</span> <span class="ident">query</span>::{<span class="ident">Query</span>, <span class="ident">Scorer</span>, <span class="ident">Weight</span>};
<span class="kw">use</span> <span class="ident">DocId</span>;
<span class="kw">use</span> <span class="prelude-ty">Result</span>;
<span class="kw">use</span> <span class="ident">Score</span>;
<span class="doccomment">/// Query that matches all of the documents.</span>
<span class="doccomment">///</span>
@@ -155,7 +152,7 @@
<span class="prelude-val">Ok</span>(<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">AllScorer</span> {
<span class="ident">state</span>: <span class="ident">State</span>::<span class="ident">NotStarted</span>,
<span class="ident">doc</span>: <span class="number">0u32</span>,
<span class="ident">max_doc</span>: <span class="ident">reader</span>.<span class="ident">max_doc</span>()
<span class="ident">max_doc</span>: <span class="ident">reader</span>.<span class="ident">max_doc</span>(),
}))
}
}
@@ -163,14 +160,14 @@
<span class="kw">enum</span> <span class="ident">State</span> {
<span class="ident">NotStarted</span>,
<span class="ident">Started</span>,
<span class="ident">Finished</span>
<span class="ident">Finished</span>,
}
<span class="doccomment">/// Scorer associated to the `AllQuery` query.</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">AllScorer</span> {
<span class="ident">state</span>: <span class="ident">State</span>,
<span class="ident">doc</span>: <span class="ident">DocId</span>,
<span class="ident">max_doc</span>: <span class="ident">DocId</span>
<span class="ident">max_doc</span>: <span class="ident">DocId</span>,
}
<span class="kw">impl</span> <span class="ident">DocSet</span> <span class="kw">for</span> <span class="ident">AllScorer</span> {
@@ -210,14 +207,13 @@
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">AllQuery</span>;
<span class="kw">use</span> <span class="ident">Index</span>;
<span class="kw">use</span> <span class="ident">schema</span>::{<span class="ident">TEXT</span>, <span class="ident">SchemaBuilder</span>};
<span class="kw">use</span> <span class="ident">query</span>::<span class="ident">Query</span>;
<span class="kw">use</span> <span class="ident">schema</span>::{<span class="ident">SchemaBuilder</span>, <span class="ident">TEXT</span>};
<span class="kw">use</span> <span class="ident">Index</span>;
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_all_query</span>() {
@@ -225,9 +221,7 @@
<span class="kw">let</span> <span class="ident">field</span> <span class="op">=</span> <span class="ident">schema_builder</span>.<span class="ident">add_text_field</span>(<span class="string">&quot;text&quot;</span>, <span class="ident">TEXT</span>);
<span class="kw">let</span> <span class="ident">schema</span> <span class="op">=</span> <span class="ident">schema_builder</span>.<span class="ident">build</span>();
<span class="kw">let</span> <span class="ident">index</span> <span class="op">=</span> <span class="ident">Index</span>::<span class="ident">create_in_ram</span>(<span class="ident">schema</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">index_writer</span> <span class="op">=</span> <span class="ident">index</span>
.<span class="ident">writer_with_num_threads</span>(<span class="number">1</span>, <span class="number">10_000_000</span>)
.<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">index_writer</span> <span class="op">=</span> <span class="ident">index</span>.<span class="ident">writer_with_num_threads</span>(<span class="number">1</span>, <span class="number">10_000_000</span>).<span class="ident">unwrap</span>();
<span class="ident">index_writer</span>.<span class="ident">add_document</span>(<span class="macro">doc</span><span class="macro">!</span>(<span class="ident">field</span><span class="op">=&gt;</span><span class="string">&quot;aaa&quot;</span>));
<span class="ident">index_writer</span>.<span class="ident">add_document</span>(<span class="macro">doc</span><span class="macro">!</span>(<span class="ident">field</span><span class="op">=&gt;</span><span class="string">&quot;bbb&quot;</span>));
<span class="ident">index_writer</span>.<span class="ident">commit</span>().<span class="ident">unwrap</span>();
@@ -254,5 +248,6 @@
}
}
}</pre>
}
</pre>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g. <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g. <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g. <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../";window.currentCrate = "tantivy";</script><script src="../../../aliases.js"></script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>

View File

@@ -455,7 +455,7 @@
<span class="string">&quot;text&quot;</span> <span class="op">|</span> <span class="string">&quot;u64&quot;</span> <span class="op">|</span> <span class="string">&quot;i64&quot;</span> <span class="op">=&gt;</span> {
<span class="comment">// These types require additional options to create a field_type</span>
}
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;unhandled type&quot;</span>)
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;unhandled type&quot;</span>),
}
<span class="ident">ty</span> <span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">type_string</span>);
}

View File

@@ -180,9 +180,6 @@
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">base64</span>::<span class="ident">decode</span>;
@@ -300,13 +297,12 @@
<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Expected an integer, got {:?}&quot;</span>, <span class="ident">json</span>),
)),
<span class="ident">FieldType</span>::<span class="ident">HierarchicalFacet</span> <span class="op">=&gt;</span> <span class="prelude-val">Ok</span>(<span class="ident">Value</span>::<span class="ident">Facet</span>(<span class="ident">Facet</span>::<span class="ident">from</span>(<span class="ident">field_text</span>))),
<span class="ident">FieldType</span>::<span class="ident">Bytes</span> <span class="op">=&gt;</span> {
<span class="ident">decode</span>(<span class="ident">field_text</span>)
.<span class="ident">map</span>(<span class="ident">Value</span>::<span class="ident">Bytes</span>)
.<span class="ident">map_err</span>(<span class="op">|</span><span class="kw">_</span><span class="op">|</span> <span class="ident">ValueParsingError</span>::<span class="ident">InvalidBase64</span>(
<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Expected base64 string, got {:?}&quot;</span>, <span class="ident">field_text</span>)
))
}
<span class="ident">FieldType</span>::<span class="ident">Bytes</span> <span class="op">=&gt;</span> <span class="ident">decode</span>(<span class="ident">field_text</span>).<span class="ident">map</span>(<span class="ident">Value</span>::<span class="ident">Bytes</span>).<span class="ident">map_err</span>(<span class="op">|</span><span class="kw">_</span><span class="op">|</span> {
<span class="ident">ValueParsingError</span>::<span class="ident">InvalidBase64</span>(<span class="macro">format</span><span class="macro">!</span>(
<span class="string">&quot;Expected base64 string, got {:?}&quot;</span>,
<span class="ident">field_text</span>
))
}),
},
<span class="ident">JsonValue</span>::<span class="ident">Number</span>(<span class="kw-2">ref</span> <span class="ident">field_val_num</span>) <span class="op">=&gt;</span> <span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
<span class="ident">FieldType</span>::<span class="ident">I64</span>(<span class="kw">_</span>) <span class="op">=&gt;</span> {
@@ -344,8 +340,8 @@
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">FieldType</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Value</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">field_type</span>::<span class="ident">ValueParsingError</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Value</span>;
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_bytes_value_from_json</span>() {
@@ -354,18 +350,16 @@
.<span class="ident">unwrap</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">result</span>, <span class="ident">Value</span>::<span class="ident">Bytes</span>(<span class="string">&quot;this is a test&quot;</span>.<span class="ident">as_bytes</span>().<span class="ident">to_vec</span>()));
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">FieldType</span>::<span class="ident">Bytes</span>
.<span class="ident">value_from_json</span>(<span class="kw-2">&amp;</span><span class="macro">json</span><span class="macro">!</span>(<span class="number">521</span>));
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">FieldType</span>::<span class="ident">Bytes</span>.<span class="ident">value_from_json</span>(<span class="kw-2">&amp;</span><span class="macro">json</span><span class="macro">!</span>(<span class="number">521</span>));
<span class="kw">match</span> <span class="ident">result</span> {
<span class="prelude-val">Err</span>(<span class="ident">ValueParsingError</span>::<span class="ident">TypeError</span>(<span class="kw">_</span>)) <span class="op">=&gt;</span> {}
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;Expected parse failure for wrong type&quot;</span>)
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;Expected parse failure for wrong type&quot;</span>),
}
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">FieldType</span>::<span class="ident">Bytes</span>
.<span class="ident">value_from_json</span>(<span class="kw-2">&amp;</span><span class="macro">json</span><span class="macro">!</span>(<span class="string">&quot;-&quot;</span>));
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">FieldType</span>::<span class="ident">Bytes</span>.<span class="ident">value_from_json</span>(<span class="kw-2">&amp;</span><span class="macro">json</span><span class="macro">!</span>(<span class="string">&quot;-&quot;</span>));
<span class="kw">match</span> <span class="ident">result</span> {
<span class="prelude-val">Err</span>(<span class="ident">ValueParsingError</span>::<span class="ident">InvalidBase64</span>(<span class="kw">_</span>)) <span class="op">=&gt;</span> {}
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;Expected parse failure for invalid base64&quot;</span>)
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;Expected parse failure for invalid base64&quot;</span>),
}
}
}

View File

@@ -225,8 +225,8 @@
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">Field</span>;
<span class="kw">use</span> <span class="ident">byteorder</span>::{<span class="ident">BigEndian</span>, <span class="ident">ByteOrder</span>};
<span class="kw">use</span> <span class="ident">common</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">str</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Facet</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">str</span>;
<span class="doccomment">/// Size (in bytes) of the buffer of a int field.</span>
<span class="kw">const</span> <span class="ident">INT_TERM_LEN</span>: <span class="ident">usize</span> <span class="op">=</span> <span class="number">4</span> <span class="op">+</span> <span class="number">8</span>;

View File

@@ -131,12 +131,13 @@
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Term</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cmp</span>::<span class="ident">Ordering</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">BinaryHeap</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermStreamer</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermOrdinal</span>;
<span class="kw">use</span> <span class="ident">schema</span>::<span class="ident">Term</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermStreamer</span>;
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">HeapItem</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> {
<span class="kw">pub</span> <span class="ident">streamer</span>: <span class="ident">TermStreamer</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span>,
@@ -163,7 +164,6 @@
}
}
<span class="doccomment">/// Given a list of sorted term streams,</span>
<span class="doccomment">/// returns an iterator over sorted unique terms.</span>
<span class="doccomment">///</span>
@@ -193,12 +193,14 @@
}
}
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">matching_segments</span><span class="op">&lt;</span><span class="lifetime">&#39;b</span>: <span class="lifetime">&#39;a</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;b</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Box</span><span class="op">&lt;</span><span class="lifetime">&#39;b</span> <span class="op">+</span> <span class="ident">Iterator</span><span class="op">&lt;</span><span class="ident">Item</span><span class="op">=</span>(<span class="ident">usize</span>, <span class="ident">TermOrdinal</span>)<span class="op">&gt;&gt;</span> {
<span class="ident">Box</span>::<span class="ident">new</span>(<span class="self">self</span>.<span class="ident">current_streamers</span>
.<span class="ident">iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">heap_item</span><span class="op">|</span> {
(<span class="ident">heap_item</span>.<span class="ident">segment_ord</span>, <span class="ident">heap_item</span>.<span class="ident">streamer</span>.<span class="ident">term_ord</span>())
}))
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">matching_segments</span><span class="op">&lt;</span><span class="lifetime">&#39;b</span>: <span class="lifetime">&#39;a</span><span class="op">&gt;</span>(
<span class="kw-2">&amp;</span><span class="lifetime">&#39;b</span> <span class="self">self</span>,
) <span class="op">-&gt;</span> <span class="ident">Box</span><span class="op">&lt;</span><span class="lifetime">&#39;b</span> <span class="op">+</span> <span class="ident">Iterator</span><span class="op">&lt;</span><span class="ident">Item</span> <span class="op">=</span> (<span class="ident">usize</span>, <span class="ident">TermOrdinal</span>)<span class="op">&gt;&gt;</span> {
<span class="ident">Box</span>::<span class="ident">new</span>(
<span class="self">self</span>.<span class="ident">current_streamers</span>
.<span class="ident">iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">heap_item</span><span class="op">|</span> (<span class="ident">heap_item</span>.<span class="ident">segment_ord</span>, <span class="ident">heap_item</span>.<span class="ident">streamer</span>.<span class="ident">term_ord</span>())),
)
}
<span class="kw">fn</span> <span class="ident">advance_segments</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) {

View File

@@ -420,7 +420,6 @@
<span id="420">420</span>
<span id="421">421</span>
<span id="422">422</span>
<span id="423">423</span>
</pre><pre class="rust ">
<span class="doccomment">/*!
The term dictionary is one of the key datastructure of
@@ -483,7 +482,6 @@ term `stream`.
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">streamer</span>::{<span class="ident">TermStreamer</span>, <span class="ident">TermStreamerBuilder</span>};
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">termdict</span>::{<span class="ident">TermDictionary</span>, <span class="ident">TermDictionaryBuilder</span>};
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> <span class="kw">super</span>::{<span class="ident">TermDictionary</span>, <span class="ident">TermDictionaryBuilder</span>, <span class="ident">TermStreamer</span>};

View File

@@ -340,8 +340,8 @@
<span class="kw">use</span> <span class="ident">directory</span>::<span class="ident">ReadOnlySource</span>;
<span class="kw">use</span> <span class="ident">postings</span>::<span class="ident">TermInfo</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cmp</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::{<span class="self">self</span>, <span class="ident">Read</span>, <span class="ident">Write</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">termdict</span>::<span class="ident">TermOrdinal</span>;
<span class="kw">const</span> <span class="ident">BLOCK_LEN</span>: <span class="ident">usize</span> <span class="op">=</span> <span class="number">256</span>;

View File

@@ -200,118 +200,118 @@
<span class="doccomment">/// ```</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">NgramTokenizer</span> {
<span class="doccomment">/// min size of the n-gram</span>
<span class="ident">min_gram</span>: <span class="ident">usize</span>,
<span class="doccomment">/// max size of the n-gram</span>
<span class="ident">max_gram</span>: <span class="ident">usize</span>,
<span class="doccomment">/// if true, will only parse the leading edge of the input</span>
<span class="ident">prefix_only</span>: <span class="ident">bool</span>,
<span class="doccomment">/// min size of the n-gram</span>
<span class="ident">min_gram</span>: <span class="ident">usize</span>,
<span class="doccomment">/// max size of the n-gram</span>
<span class="ident">max_gram</span>: <span class="ident">usize</span>,
<span class="doccomment">/// if true, will only parse the leading edge of the input</span>
<span class="ident">prefix_only</span>: <span class="ident">bool</span>,
}
<span class="kw">impl</span> <span class="ident">NgramTokenizer</span> {
<span class="doccomment">/// Configures a new Ngram tokenizer</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">min_gram</span>: <span class="ident">usize</span>, <span class="ident">max_gram</span>: <span class="ident">usize</span>, <span class="ident">prefix_only</span>: <span class="ident">bool</span>) <span class="op">-&gt;</span> <span class="ident">NgramTokenizer</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">min_gram</span> <span class="op">&gt;</span> <span class="number">0</span>, <span class="string">&quot;min_gram must be greater than 0&quot;</span>);
<span class="macro">assert</span><span class="macro">!</span>(
<span class="ident">min_gram</span> <span class="op">&lt;=</span> <span class="ident">max_gram</span>,
<span class="string">&quot;min_gram must not be greater than max_gram&quot;</span>
);
<span class="doccomment">/// Configures a new Ngram tokenizer</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">min_gram</span>: <span class="ident">usize</span>, <span class="ident">max_gram</span>: <span class="ident">usize</span>, <span class="ident">prefix_only</span>: <span class="ident">bool</span>) <span class="op">-&gt;</span> <span class="ident">NgramTokenizer</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">min_gram</span> <span class="op">&gt;</span> <span class="number">0</span>, <span class="string">&quot;min_gram must be greater than 0&quot;</span>);
<span class="macro">assert</span><span class="macro">!</span>(
<span class="ident">min_gram</span> <span class="op">&lt;=</span> <span class="ident">max_gram</span>,
<span class="string">&quot;min_gram must not be greater than max_gram&quot;</span>
);
<span class="ident">NgramTokenizer</span> {
<span class="ident">min_gram</span>,
<span class="ident">max_gram</span>,
<span class="ident">prefix_only</span>,
<span class="ident">NgramTokenizer</span> {
<span class="ident">min_gram</span>,
<span class="ident">max_gram</span>,
<span class="ident">prefix_only</span>,
}
}
}
}
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">NgramTokenStream</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> {
<span class="ident">text</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span>,
<span class="ident">location</span>: <span class="ident">usize</span>,
<span class="ident">text_length</span>: <span class="ident">usize</span>,
<span class="ident">token</span>: <span class="ident">Token</span>,
<span class="ident">min_gram</span>: <span class="ident">usize</span>,
<span class="ident">max_gram</span>: <span class="ident">usize</span>,
<span class="ident">gram_size</span>: <span class="ident">usize</span>,
<span class="ident">prefix_only</span>: <span class="ident">bool</span>,
<span class="ident">text</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span>,
<span class="ident">location</span>: <span class="ident">usize</span>,
<span class="ident">text_length</span>: <span class="ident">usize</span>,
<span class="ident">token</span>: <span class="ident">Token</span>,
<span class="ident">min_gram</span>: <span class="ident">usize</span>,
<span class="ident">max_gram</span>: <span class="ident">usize</span>,
<span class="ident">gram_size</span>: <span class="ident">usize</span>,
<span class="ident">prefix_only</span>: <span class="ident">bool</span>,
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">Tokenizer</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">NgramTokenizer</span> {
<span class="kw">type</span> <span class="ident">TokenStreamImpl</span> <span class="op">=</span> <span class="ident">NgramTokenStream</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span>;
<span class="kw">type</span> <span class="ident">TokenStreamImpl</span> <span class="op">=</span> <span class="ident">NgramTokenStream</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span>;
<span class="kw">fn</span> <span class="ident">token_stream</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">text</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="ident">TokenStreamImpl</span> {
<span class="ident">NgramTokenStream</span> {
<span class="ident">text</span>,
<span class="ident">location</span>: <span class="number">0</span>,
<span class="ident">text_length</span>: <span class="ident">text</span>.<span class="ident">len</span>(),
<span class="ident">token</span>: <span class="ident">Token</span>::<span class="ident">default</span>(),
<span class="ident">min_gram</span>: <span class="self">self</span>.<span class="ident">min_gram</span>,
<span class="ident">max_gram</span>: <span class="self">self</span>.<span class="ident">max_gram</span>,
<span class="ident">prefix_only</span>: <span class="self">self</span>.<span class="ident">prefix_only</span>,
<span class="ident">gram_size</span>: <span class="self">self</span>.<span class="ident">min_gram</span>,
<span class="kw">fn</span> <span class="ident">token_stream</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">text</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="ident">TokenStreamImpl</span> {
<span class="ident">NgramTokenStream</span> {
<span class="ident">text</span>,
<span class="ident">location</span>: <span class="number">0</span>,
<span class="ident">text_length</span>: <span class="ident">text</span>.<span class="ident">len</span>(),
<span class="ident">token</span>: <span class="ident">Token</span>::<span class="ident">default</span>(),
<span class="ident">min_gram</span>: <span class="self">self</span>.<span class="ident">min_gram</span>,
<span class="ident">max_gram</span>: <span class="self">self</span>.<span class="ident">max_gram</span>,
<span class="ident">prefix_only</span>: <span class="self">self</span>.<span class="ident">prefix_only</span>,
<span class="ident">gram_size</span>: <span class="self">self</span>.<span class="ident">min_gram</span>,
}
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">NgramTokenStream</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> {
<span class="doccomment">/// Get the next set of token options</span>
<span class="doccomment">/// cycle through 1,2 (min..=max)</span>
<span class="doccomment">/// returning None if processing should stop</span>
<span class="kw">fn</span> <span class="ident">chomp</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span>(<span class="ident">usize</span>, <span class="ident">usize</span>)<span class="op">&gt;</span> {
<span class="comment">// Have we exceeded the bounds of the text we are indexing?</span>
<span class="kw">if</span> <span class="self">self</span>.<span class="ident">gram_size</span> <span class="op">&gt;</span> <span class="self">self</span>.<span class="ident">max_gram</span> {
<span class="kw">if</span> <span class="self">self</span>.<span class="ident">prefix_only</span> {
<span class="kw">return</span> <span class="prelude-val">None</span>;
}
<span class="doccomment">/// Get the next set of token options</span>
<span class="doccomment">/// cycle through 1,2 (min..=max)</span>
<span class="doccomment">/// returning None if processing should stop</span>
<span class="kw">fn</span> <span class="ident">chomp</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span>(<span class="ident">usize</span>, <span class="ident">usize</span>)<span class="op">&gt;</span> {
<span class="comment">// Have we exceeded the bounds of the text we are indexing?</span>
<span class="kw">if</span> <span class="self">self</span>.<span class="ident">gram_size</span> <span class="op">&gt;</span> <span class="self">self</span>.<span class="ident">max_gram</span> {
<span class="kw">if</span> <span class="self">self</span>.<span class="ident">prefix_only</span> {
<span class="kw">return</span> <span class="prelude-val">None</span>;
}
<span class="comment">// since we aren&#39;t just processing edges</span>
<span class="comment">// we need to reset the gram size</span>
<span class="self">self</span>.<span class="ident">gram_size</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">min_gram</span>;
<span class="comment">// since we aren&#39;t just processing edges</span>
<span class="comment">// we need to reset the gram size</span>
<span class="self">self</span>.<span class="ident">gram_size</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">min_gram</span>;
<span class="comment">// and move down the chain of letters</span>
<span class="self">self</span>.<span class="ident">location</span> <span class="op">+=</span> <span class="number">1</span>;
<span class="comment">// and move down the chain of letters</span>
<span class="self">self</span>.<span class="ident">location</span> <span class="op">+=</span> <span class="number">1</span>;
}
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="kw">if</span> (<span class="self">self</span>.<span class="ident">location</span> <span class="op">+</span> <span class="self">self</span>.<span class="ident">gram_size</span>) <span class="op">&lt;=</span> <span class="self">self</span>.<span class="ident">text_length</span> {
<span class="prelude-val">Some</span>((<span class="self">self</span>.<span class="ident">location</span>, <span class="self">self</span>.<span class="ident">gram_size</span>))
} <span class="kw">else</span> {
<span class="prelude-val">None</span>
};
<span class="comment">// increase the gram size for the next pass</span>
<span class="self">self</span>.<span class="ident">gram_size</span> <span class="op">+=</span> <span class="number">1</span>;
<span class="ident">result</span>
}
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="kw">if</span> (<span class="self">self</span>.<span class="ident">location</span> <span class="op">+</span> <span class="self">self</span>.<span class="ident">gram_size</span>) <span class="op">&lt;=</span> <span class="self">self</span>.<span class="ident">text_length</span> {
<span class="prelude-val">Some</span>((<span class="self">self</span>.<span class="ident">location</span>, <span class="self">self</span>.<span class="ident">gram_size</span>))
} <span class="kw">else</span> {
<span class="prelude-val">None</span>
};
<span class="comment">// increase the gram size for the next pass</span>
<span class="self">self</span>.<span class="ident">gram_size</span> <span class="op">+=</span> <span class="number">1</span>;
<span class="ident">result</span>
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">TokenStream</span> <span class="kw">for</span> <span class="ident">NgramTokenStream</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">advance</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="comment">// clear out working token text</span>
<span class="self">self</span>.<span class="ident">token</span>.<span class="ident">text</span>.<span class="ident">clear</span>();
<span class="kw">fn</span> <span class="ident">advance</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="comment">// clear out working token text</span>
<span class="self">self</span>.<span class="ident">token</span>.<span class="ident">text</span>.<span class="ident">clear</span>();
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>((<span class="ident">position</span>, <span class="ident">size</span>)) <span class="op">=</span> <span class="self">self</span>.<span class="ident">chomp</span>() {
<span class="self">self</span>.<span class="ident">token</span>.<span class="ident">position</span> <span class="op">=</span> <span class="ident">position</span>;
<span class="kw">let</span> <span class="ident">offset_from</span> <span class="op">=</span> <span class="ident">position</span>;
<span class="kw">let</span> <span class="ident">offset_to</span> <span class="op">=</span> <span class="ident">offset_from</span> <span class="op">+</span> <span class="ident">size</span>;
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>((<span class="ident">position</span>, <span class="ident">size</span>)) <span class="op">=</span> <span class="self">self</span>.<span class="ident">chomp</span>() {
<span class="self">self</span>.<span class="ident">token</span>.<span class="ident">position</span> <span class="op">=</span> <span class="ident">position</span>;
<span class="kw">let</span> <span class="ident">offset_from</span> <span class="op">=</span> <span class="ident">position</span>;
<span class="kw">let</span> <span class="ident">offset_to</span> <span class="op">=</span> <span class="ident">offset_from</span> <span class="op">+</span> <span class="ident">size</span>;
<span class="self">self</span>.<span class="ident">token</span>.<span class="ident">offset_from</span> <span class="op">=</span> <span class="ident">offset_from</span>;
<span class="self">self</span>.<span class="ident">token</span>.<span class="ident">offset_to</span> <span class="op">=</span> <span class="ident">offset_to</span>;
<span class="self">self</span>.<span class="ident">token</span>.<span class="ident">offset_from</span> <span class="op">=</span> <span class="ident">offset_from</span>;
<span class="self">self</span>.<span class="ident">token</span>.<span class="ident">offset_to</span> <span class="op">=</span> <span class="ident">offset_to</span>;
<span class="self">self</span>.<span class="ident">token</span>.<span class="ident">text</span>.<span class="ident">push_str</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">text</span>[<span class="ident">offset_from</span>..<span class="ident">offset_to</span>]);
<span class="self">self</span>.<span class="ident">token</span>.<span class="ident">text</span>.<span class="ident">push_str</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">text</span>[<span class="ident">offset_from</span>..<span class="ident">offset_to</span>]);
<span class="bool-val">true</span>
} <span class="kw">else</span> {
<span class="bool-val">false</span>
<span class="bool-val">true</span>
} <span class="kw">else</span> {
<span class="bool-val">false</span>
}
}
}
<span class="kw">fn</span> <span class="ident">token</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">Token</span> {
<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">token</span>
}
<span class="kw">fn</span> <span class="ident">token</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">Token</span> {
<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">token</span>
}
<span class="kw">fn</span> <span class="ident">token_mut</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Token</span> {
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>.<span class="ident">token</span>
}
<span class="kw">fn</span> <span class="ident">token_mut</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Token</span> {
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>.<span class="ident">token</span>
}
}
</pre>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g. <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g. <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g. <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../";window.currentCrate = "tantivy";</script><script src="../../../aliases.js"></script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>

View File

@@ -291,21 +291,21 @@
<span class="doccomment">/// Token</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>, <span class="ident">Clone</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Token</span> {
<span class="doccomment">/// Offset (byte index) of the first character of the token.</span>
<span class="doccomment">/// Offsets shall not be modified by token filters.</span>
<span class="kw">pub</span> <span class="ident">offset_from</span>: <span class="ident">usize</span>,
<span class="doccomment">/// Offset (byte index) of the last character of the token + 1.</span>
<span class="doccomment">/// The text that generated the token should be obtained by</span>
<span class="doccomment">/// &amp;text[token.offset_from..token.offset_to]</span>
<span class="kw">pub</span> <span class="ident">offset_to</span>: <span class="ident">usize</span>,
<span class="doccomment">/// Position, expressed in number of tokens.</span>
<span class="kw">pub</span> <span class="ident">position</span>: <span class="ident">usize</span>,
<span class="doccomment">/// Actual text content of the token.</span>
<span class="kw">pub</span> <span class="ident">text</span>: <span class="ident">String</span>,
<span class="doccomment">/// Offset (byte index) of the first character of the token.</span>
<span class="doccomment">/// Offsets shall not be modified by token filters.</span>
<span class="kw">pub</span> <span class="ident">offset_from</span>: <span class="ident">usize</span>,
<span class="doccomment">/// Offset (byte index) of the last character of the token + 1.</span>
<span class="doccomment">/// The text that generated the token should be obtained by</span>
<span class="doccomment">/// &amp;text[token.offset_from..token.offset_to]</span>
<span class="kw">pub</span> <span class="ident">offset_to</span>: <span class="ident">usize</span>,
<span class="doccomment">/// Position, expressed in number of tokens.</span>
<span class="kw">pub</span> <span class="ident">position</span>: <span class="ident">usize</span>,
<span class="doccomment">/// Actual text content of the token.</span>
<span class="kw">pub</span> <span class="ident">text</span>: <span class="ident">String</span>,
}
<span class="kw">impl</span> <span class="ident">Default</span> <span class="kw">for</span> <span class="ident">Token</span> {
<span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-&gt;</span> <span class="ident">Token</span> {
<span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-&gt;</span> <span class="ident">Token</span> {
<span class="ident">Token</span> {
<span class="ident">offset_from</span>: <span class="number">0</span>,
<span class="ident">offset_to</span>: <span class="number">0</span>,

View File

@@ -8,7 +8,7 @@ and the start index for the next document, and keeping the bytes in between.</p>
<h2 id='methods' class='small-section-header'>
Methods<a href='#methods' class='anchor'></a>
</h2>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../tantivy/fastfield/struct.BytesFastFieldReader.html" title="struct tantivy::fastfield::BytesFastFieldReader">BytesFastFieldReader</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/reader.rs.html#22-40' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.get_val' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></div><div class="content hidden"><h3 class="important">Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></h3><code class="content"><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></code></div></div><span id='get_val.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.get_val' class='fnname'>get_val</a>(&amp;self, doc: <a class="type" href="../../tantivy/type.DocId.html" title="type tantivy::DocId">DocId</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/reader.rs.html#35-39' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the bytes associated to the given <code>doc</code></p>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../tantivy/fastfield/struct.BytesFastFieldReader.html" title="struct tantivy::fastfield::BytesFastFieldReader">BytesFastFieldReader</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/reader.rs.html#22-37' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.get_val' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></div><div class="content hidden"><h3 class="important">Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></h3><code class="content"><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></code></div></div><span id='get_val.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.get_val' class='fnname'>get_val</a>(&amp;self, doc: <a class="type" href="../../tantivy/type.DocId.html" title="type tantivy::DocId">DocId</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/reader.rs.html#32-36' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the bytes associated to the given <code>doc</code></p>
</div></div>
<h2 id='synthetic-implementations' class='small-section-header'>
Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a>

View File

@@ -1,4 +1,4 @@
<!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="API documentation for the Rust `BytesFastFieldWriter` struct in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, BytesFastFieldWriter"><title>tantivy::fastfield::BytesFastFieldWriter - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Struct BytesFastFieldWriter</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new">new</a><a href="#method.field">field</a><a href="#method.add_document">add_document</a><a href="#method.add_document_val">add_document_val</a><a href="#method.serialize">serialize</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a></div></div><p class='location'><a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>fastfield</a></p><script>window.sidebarCurrent = {name: 'BytesFastFieldWriter', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>fastfield</a>::<wbr><a class="struct" href=''>BytesFastFieldWriter</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#23-27' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct BytesFastFieldWriter { /* fields omitted */ }</pre></div><div class='docblock'><p>Writer for byte array (as in, any number of bytes per document) fast fields</p>
<!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="API documentation for the Rust `BytesFastFieldWriter` struct in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, BytesFastFieldWriter"><title>tantivy::fastfield::BytesFastFieldWriter - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Struct BytesFastFieldWriter</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new">new</a><a href="#method.field">field</a><a href="#method.add_document">add_document</a><a href="#method.add_document_val">add_document_val</a><a href="#method.serialize">serialize</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a></div></div><p class='location'><a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>fastfield</a></p><script>window.sidebarCurrent = {name: 'BytesFastFieldWriter', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>fastfield</a>::<wbr><a class="struct" href=''>BytesFastFieldWriter</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#22-26' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct BytesFastFieldWriter { /* fields omitted */ }</pre></div><div class='docblock'><p>Writer for byte array (as in, any number of bytes per document) fast fields</p>
<p>This <code>BytesFastFieldWriter</code> is only useful for advanced user.
The normal way to get your associated bytes in your index
is to</p>
@@ -16,14 +16,14 @@ once per document, even if there are no bytes associated to it.</p>
<h2 id='methods' class='small-section-header'>
Methods<a href='#methods' class='anchor'></a>
</h2>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../tantivy/fastfield/struct.BytesFastFieldWriter.html" title="struct tantivy::fastfield::BytesFastFieldWriter">BytesFastFieldWriter</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#29-97' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.new' class="method"><span id='new.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new' class='fnname'>new</a>(field: <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a>) -&gt; Self</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#31-37' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Creates a new <code>BytesFastFieldWriter</code></p>
</div><h4 id='method.field' class="method"><span id='field.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.field' class='fnname'>field</a>(&amp;self) -&gt; <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#40-42' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Access the field associated to the <code>BytesFastFieldWriter</code></p>
</div><h4 id='method.add_document' class="method"><span id='add_document.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_document' class='fnname'>add_document</a>(&amp;mut self, doc: &amp;<a class="struct" href="../../tantivy/struct.Document.html" title="struct tantivy::Document">Document</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#51-62' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Shift to the next document and add all of the
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../tantivy/fastfield/struct.BytesFastFieldWriter.html" title="struct tantivy::fastfield::BytesFastFieldWriter">BytesFastFieldWriter</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#28-96' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.new' class="method"><span id='new.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new' class='fnname'>new</a>(field: <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a>) -&gt; Self</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#30-36' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Creates a new <code>BytesFastFieldWriter</code></p>
</div><h4 id='method.field' class="method"><span id='field.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.field' class='fnname'>field</a>(&amp;self) -&gt; <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#39-41' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Access the field associated to the <code>BytesFastFieldWriter</code></p>
</div><h4 id='method.add_document' class="method"><span id='add_document.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_document' class='fnname'>add_document</a>(&amp;mut self, doc: &amp;<a class="struct" href="../../tantivy/struct.Document.html" title="struct tantivy::Document">Document</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#50-64' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Shift to the next document and add all of the
matching field values present in the document.</p>
</div><h4 id='method.add_document_val' class="method"><span id='add_document_val.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_document_val' class='fnname'>add_document_val</a>(&amp;mut self, val: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; <a class="type" href="../../tantivy/type.DocId.html" title="type tantivy::DocId">DocId</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#68-73' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Register the bytes associated to a document.</p>
</div><h4 id='method.add_document_val' class="method"><span id='add_document_val.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_document_val' class='fnname'>add_document_val</a>(&amp;mut self, val: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; <a class="type" href="../../tantivy/type.DocId.html" title="type tantivy::DocId">DocId</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#70-75' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Register the bytes associated to a document.</p>
<p>The method returns the <code>DocId</code> of the document that was
just written.</p>
</div><h4 id='method.serialize' class="method"><span id='serialize.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.serialize' class='fnname'>serialize</a>(&amp;self, serializer: &amp;mut <a class="struct" href="../../tantivy/fastfield/struct.FastFieldSerializer.html" title="struct tantivy::fastfield::FastFieldSerializer">FastFieldSerializer</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#76-96' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Serializes the fast field values by pushing them to the <code>FastFieldSerializer</code>.</p>
</div><h4 id='method.serialize' class="method"><span id='serialize.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.serialize' class='fnname'>serialize</a>(&amp;self, serializer: &amp;mut <a class="struct" href="../../tantivy/fastfield/struct.FastFieldSerializer.html" title="struct tantivy::fastfield::FastFieldSerializer">FastFieldSerializer</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/bytes/writer.rs.html#78-95' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Serializes the fast field values by pushing them to the <code>FastFieldSerializer</code>.</p>
</div></div>
<h2 id='synthetic-implementations' class='small-section-header'>
Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a>

View File

@@ -3,16 +3,16 @@
<h2 id='methods' class='small-section-header'>
Methods<a href='#methods' class='anchor'></a>
</h2>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../tantivy/fastfield/struct.FastFieldsWriter.html" title="struct tantivy::fastfield::FastFieldsWriter">FastFieldsWriter</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#19-134' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.from_schema' class="method"><span id='from_schema.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.from_schema' class='fnname'>from_schema</a>(schema: &amp;<a class="struct" href="../../tantivy/schema/struct.Schema.html" title="struct tantivy::schema::Schema">Schema</a>) -&gt; <a class="struct" href="../../tantivy/fastfield/struct.FastFieldsWriter.html" title="struct tantivy::fastfield::FastFieldsWriter">FastFieldsWriter</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#21-64' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Create all <code>FastFieldWriter</code> required by the schema.</p>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../tantivy/fastfield/struct.FastFieldsWriter.html" title="struct tantivy::fastfield::FastFieldsWriter">FastFieldsWriter</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#19-131' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.from_schema' class="method"><span id='from_schema.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.from_schema' class='fnname'>from_schema</a>(schema: &amp;<a class="struct" href="../../tantivy/schema/struct.Schema.html" title="struct tantivy::schema::Schema">Schema</a>) -&gt; <a class="struct" href="../../tantivy/fastfield/struct.FastFieldsWriter.html" title="struct tantivy::fastfield::FastFieldsWriter">FastFieldsWriter</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#21-64' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Create all <code>FastFieldWriter</code> required by the schema.</p>
</div><h4 id='method.get_field_writer' class="method"><span id='get_field_writer.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.get_field_writer' class='fnname'>get_field_writer</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;field: <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut <a class="struct" href="../../tantivy/fastfield/struct.IntFastFieldWriter.html" title="struct tantivy::fastfield::IntFastFieldWriter">IntFastFieldWriter</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#67-72' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Get the <code>FastFieldWriter</code> associated to a field.</p>
</div><h4 id='method.get_multivalue_writer' class="method"><span id='get_multivalue_writer.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.get_multivalue_writer' class='fnname'>get_multivalue_writer</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;field: <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut <a class="struct" href="../../tantivy/fastfield/struct.MultiValueIntFastFieldWriter.html" title="struct tantivy::fastfield::MultiValueIntFastFieldWriter">MultiValueIntFastFieldWriter</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#78-86' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the fast field multi-value writer for the given field.</p>
<p>Returns None if the field does not exist, or is not
configured as a multivalued fastfield in the schema.</p>
</div><h4 id='method.get_bytes_writer' class="method"><span id='get_bytes_writer.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.get_bytes_writer' class='fnname'>get_bytes_writer</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;field: <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut <a class="struct" href="../../tantivy/fastfield/struct.BytesFastFieldWriter.html" title="struct tantivy::fastfield::BytesFastFieldWriter">BytesFastFieldWriter</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#92-100' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the bytes fast field writer for the given field.</p>
</div><h4 id='method.get_bytes_writer' class="method"><span id='get_bytes_writer.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.get_bytes_writer' class='fnname'>get_bytes_writer</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;field: <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut <a class="struct" href="../../tantivy/fastfield/struct.BytesFastFieldWriter.html" title="struct tantivy::fastfield::BytesFastFieldWriter">BytesFastFieldWriter</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#92-97' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the bytes fast field writer for the given field.</p>
<p>Returns None if the field does not exist, or is not
configured as a bytes fastfield in the schema.</p>
</div><h4 id='method.add_document' class="method"><span id='add_document.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_document' class='fnname'>add_document</a>(&amp;mut self, doc: &amp;<a class="struct" href="../../tantivy/struct.Document.html" title="struct tantivy::Document">Document</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#103-113' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Indexes all of the fastfields of a new document.</p>
</div><h4 id='method.serialize' class="method"><span id='serialize.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.serialize' class='fnname'>serialize</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;serializer: &amp;mut <a class="struct" href="../../tantivy/fastfield/struct.FastFieldSerializer.html" title="struct tantivy::fastfield::FastFieldSerializer">FastFieldSerializer</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;mapping: &amp;<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, <a class="type" href="../../tantivy/termdict/type.TermOrdinal.html" title="type tantivy::termdict::TermOrdinal">TermOrdinal</a>&gt;&gt;<br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#117-133' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Serializes all of the <code>FastFieldWriter</code>s by pushing them in
</div><h4 id='method.add_document' class="method"><span id='add_document.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_document' class='fnname'>add_document</a>(&amp;mut self, doc: &amp;<a class="struct" href="../../tantivy/struct.Document.html" title="struct tantivy::Document">Document</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#100-110' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Indexes all of the fastfields of a new document.</p>
</div><h4 id='method.serialize' class="method"><span id='serialize.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.serialize' class='fnname'>serialize</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;serializer: &amp;mut <a class="struct" href="../../tantivy/fastfield/struct.FastFieldSerializer.html" title="struct tantivy::fastfield::FastFieldSerializer">FastFieldSerializer</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;mapping: &amp;<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, <a class="type" href="../../tantivy/termdict/type.TermOrdinal.html" title="type tantivy::termdict::TermOrdinal">TermOrdinal</a>&gt;&gt;<br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#114-130' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Serializes all of the <code>FastFieldWriter</code>s by pushing them in
order to the fast field serializer.</p>
</div></div>
<h2 id='synthetic-implementations' class='small-section-header'>

View File

@@ -1,4 +1,4 @@
<!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="API documentation for the Rust `IntFastFieldWriter` struct in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, IntFastFieldWriter"><title>tantivy::fastfield::IntFastFieldWriter - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Struct IntFastFieldWriter</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new">new</a><a href="#method.field">field</a><a href="#method.add_val">add_val</a><a href="#method.add_document">add_document</a><a href="#method.serialize">serialize</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a></div></div><p class='location'><a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>fastfield</a></p><script>window.sidebarCurrent = {name: 'IntFastFieldWriter', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>fastfield</a>::<wbr><a class="struct" href=''>IntFastFieldWriter</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#151-158' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct IntFastFieldWriter { /* fields omitted */ }</pre></div><div class='docblock'><p>Fast field writer for ints.
<!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="API documentation for the Rust `IntFastFieldWriter` struct in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, IntFastFieldWriter"><title>tantivy::fastfield::IntFastFieldWriter - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Struct IntFastFieldWriter</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new">new</a><a href="#method.field">field</a><a href="#method.add_val">add_val</a><a href="#method.add_document">add_document</a><a href="#method.serialize">serialize</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a></div></div><p class='location'><a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>fastfield</a></p><script>window.sidebarCurrent = {name: 'IntFastFieldWriter', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>fastfield</a>::<wbr><a class="struct" href=''>IntFastFieldWriter</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#148-155' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct IntFastFieldWriter { /* fields omitted */ }</pre></div><div class='docblock'><p>Fast field writer for ints.
The fast field writer just keeps the values in memory.</p>
<p>Only when the segment writer can be closed and
persisted on disc, the fast field writer is
@@ -14,15 +14,15 @@ using <code>common::i64_to_u64</code>.</p>
<h2 id='methods' class='small-section-header'>
Methods<a href='#methods' class='anchor'></a>
</h2>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../tantivy/fastfield/struct.IntFastFieldWriter.html" title="struct tantivy::fastfield::IntFastFieldWriter">IntFastFieldWriter</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#160-247' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.new' class="method"><span id='new.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new' class='fnname'>new</a>(field: <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a>) -&gt; <a class="struct" href="../../tantivy/fastfield/struct.IntFastFieldWriter.html" title="struct tantivy::fastfield::IntFastFieldWriter">IntFastFieldWriter</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#162-171' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Creates a new <code>IntFastFieldWriter</code></p>
</div><h4 id='method.field' class="method"><span id='field.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.field' class='fnname'>field</a>(&amp;self) -&gt; <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#174-176' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the field that this writer is targetting.</p>
</div><h4 id='method.add_val' class="method"><span id='add_val.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_val' class='fnname'>add_val</a>(&amp;mut self, val: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#191-204' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Records a new value.</p>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../tantivy/fastfield/struct.IntFastFieldWriter.html" title="struct tantivy::fastfield::IntFastFieldWriter">IntFastFieldWriter</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#157-244' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.new' class="method"><span id='new.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new' class='fnname'>new</a>(field: <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a>) -&gt; <a class="struct" href="../../tantivy/fastfield/struct.IntFastFieldWriter.html" title="struct tantivy::fastfield::IntFastFieldWriter">IntFastFieldWriter</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#159-168' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Creates a new <code>IntFastFieldWriter</code></p>
</div><h4 id='method.field' class="method"><span id='field.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.field' class='fnname'>field</a>(&amp;self) -&gt; <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#171-173' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the field that this writer is targetting.</p>
</div><h4 id='method.add_val' class="method"><span id='add_val.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_val' class='fnname'>add_val</a>(&amp;mut self, val: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#188-201' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Records a new value.</p>
<p>The n-th value being recorded is implicitely
associated to the document with the <code>DocId</code> n.
(Well, <code>n-1</code> actually because of 0-indexing)</p>
</div><h4 id='method.add_document' class="method"><span id='add_document.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_document' class='fnname'>add_document</a>(&amp;mut self, doc: &amp;<a class="struct" href="../../tantivy/struct.Document.html" title="struct tantivy::Document">Document</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#225-228' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Extract the fast field value from the document
</div><h4 id='method.add_document' class="method"><span id='add_document.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_document' class='fnname'>add_document</a>(&amp;mut self, doc: &amp;<a class="struct" href="../../tantivy/struct.Document.html" title="struct tantivy::Document">Document</a>)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#222-225' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Extract the fast field value from the document
(or use the default value) and records it.</p>
</div><h4 id='method.serialize' class="method"><span id='serialize.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.serialize' class='fnname'>serialize</a>(&amp;self, serializer: &amp;mut <a class="struct" href="../../tantivy/fastfield/struct.FastFieldSerializer.html" title="struct tantivy::fastfield::FastFieldSerializer">FastFieldSerializer</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#231-246' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Push the fast fields value to the <code>FastFieldWriter</code>.</p>
</div><h4 id='method.serialize' class="method"><span id='serialize.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.serialize' class='fnname'>serialize</a>(&amp;self, serializer: &amp;mut <a class="struct" href="../../tantivy/fastfield/struct.FastFieldSerializer.html" title="struct tantivy::fastfield::FastFieldSerializer">FastFieldSerializer</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/fastfield/writer.rs.html#228-243' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Push the fast fields value to the <code>FastFieldWriter</code>.</p>
</div></div>
<h2 id='synthetic-implementations' class='small-section-header'>
Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a>

View File

@@ -1,26 +1,26 @@
<!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="API documentation for the Rust `FieldSerializer` struct in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, FieldSerializer"><title>tantivy::postings::FieldSerializer - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Struct FieldSerializer</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new_term">new_term</a><a href="#method.write_doc">write_doc</a><a href="#method.close_term">close_term</a><a href="#method.close">close</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a></div></div><p class='location'><a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>postings</a></p><script>window.sidebarCurrent = {name: 'FieldSerializer', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>postings</a>::<wbr><a class="struct" href=''>FieldSerializer</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#114-121' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct FieldSerializer&lt;'a&gt; { /* fields omitted */ }</pre></div><div class='docblock'><p>The field serializer is in charge of
<!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="API documentation for the Rust `FieldSerializer` struct in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, FieldSerializer"><title>tantivy::postings::FieldSerializer - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Struct FieldSerializer</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new_term">new_term</a><a href="#method.write_doc">write_doc</a><a href="#method.close_term">close_term</a><a href="#method.close">close</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a></div></div><p class='location'><a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>postings</a></p><script>window.sidebarCurrent = {name: 'FieldSerializer', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>postings</a>::<wbr><a class="struct" href=''>FieldSerializer</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#113-120' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct FieldSerializer&lt;'a&gt; { /* fields omitted */ }</pre></div><div class='docblock'><p>The field serializer is in charge of
the serialization of a specific field.</p>
</div>
<h2 id='methods' class='small-section-header'>
Methods<a href='#methods' class='anchor'></a>
</h2>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;'a&gt; <a class="struct" href="../../tantivy/postings/struct.FieldSerializer.html" title="struct tantivy::postings::FieldSerializer">FieldSerializer</a>&lt;'a&gt;</code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#123-241' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.new_term' class="method"><span id='new_term.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new_term' class='fnname'>new_term</a>(&amp;mut self, term: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="type" href="../../tantivy/termdict/type.TermOrdinal.html" title="type tantivy::termdict::TermOrdinal">TermOrdinal</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#180-192' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Starts the postings for a new term.</p>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;'a&gt; <a class="struct" href="../../tantivy/postings/struct.FieldSerializer.html" title="struct tantivy::postings::FieldSerializer">FieldSerializer</a>&lt;'a&gt;</code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#122-240' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.new_term' class="method"><span id='new_term.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new_term' class='fnname'>new_term</a>(&amp;mut self, term: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="type" href="../../tantivy/termdict/type.TermOrdinal.html" title="type tantivy::termdict::TermOrdinal">TermOrdinal</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#179-191' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Starts the postings for a new term.</p>
<ul>
<li>term - the term. It needs to come after the previous term according
to the lexicographical order.</li>
<li>doc_freq - return the number of document containing the term.</li>
</ul>
</div><h4 id='method.write_doc' class="method"><span id='write_doc.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.write_doc' class='fnname'>write_doc</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;doc_id: <a class="type" href="../../tantivy/type.DocId.html" title="type tantivy::DocId">DocId</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;term_freq: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;position_deltas: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a><br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#203-215' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Serialize the information that a document contains the current term,
</div><h4 id='method.write_doc' class="method"><span id='write_doc.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.write_doc' class='fnname'>write_doc</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;doc_id: <a class="type" href="../../tantivy/type.DocId.html" title="type tantivy::DocId">DocId</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;term_freq: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;position_deltas: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a><br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#202-214' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Serialize the information that a document contains the current term,
its term frequency, and the position deltas.</p>
<p>At this point, the positions are already <code>delta-encoded</code>.
For instance, if the positions are <code>2, 3, 17</code>,
<code>position_deltas</code> is <code>2, 1, 14</code></p>
<p>Term frequencies and positions may be ignored by the serializer depending
on the configuration of the field in the <code>Schema</code>.</p>
</div><h4 id='method.close_term' class="method"><span id='close_term.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.close_term' class='fnname'>close_term</a>(&amp;mut self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#221-229' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Finish the serialization for this term postings.</p>
</div><h4 id='method.close_term' class="method"><span id='close_term.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.close_term' class='fnname'>close_term</a>(&amp;mut self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#220-228' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Finish the serialization for this term postings.</p>
<p>If the current block is incomplete, it need to be encoded
using <code>VInt</code> encoding.</p>
</div><h4 id='method.close' class="method"><span id='close.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.close' class='fnname'>close</a>(self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#232-240' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Closes the current current field.</p>
</div><h4 id='method.close' class="method"><span id='close.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.close' class='fnname'>close</a>(self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#231-239' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Closes the current current field.</p>
</div></div>
<h2 id='synthetic-implementations' class='small-section-header'>
Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a>

View File

@@ -1,4 +1,4 @@
<!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="API documentation for the Rust `InvertedIndexSerializer` struct in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, InvertedIndexSerializer"><title>tantivy::postings::InvertedIndexSerializer - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Struct InvertedIndexSerializer</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.open">open</a><a href="#method.new_field">new_field</a><a href="#method.close">close</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a></div></div><p class='location'><a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>postings</a></p><script>window.sidebarCurrent = {name: 'InvertedIndexSerializer', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>postings</a>::<wbr><a class="struct" href=''>InvertedIndexSerializer</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#47-52' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct InvertedIndexSerializer { /* fields omitted */ }</pre></div><div class='docblock'><p><code>PostingsSerializer</code> is in charge of serializing
<!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="API documentation for the Rust `InvertedIndexSerializer` struct in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, InvertedIndexSerializer"><title>tantivy::postings::InvertedIndexSerializer - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Struct InvertedIndexSerializer</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.open">open</a><a href="#method.new_field">new_field</a><a href="#method.close">close</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a></div></div><p class='location'><a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>postings</a></p><script>window.sidebarCurrent = {name: 'InvertedIndexSerializer', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>postings</a>::<wbr><a class="struct" href=''>InvertedIndexSerializer</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#46-51' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct InvertedIndexSerializer { /* fields omitted */ }</pre></div><div class='docblock'><p><code>PostingsSerializer</code> is in charge of serializing
postings on disk, in the</p>
<ul>
<li><code>.idx</code> (inverted index)</li>
@@ -33,11 +33,11 @@ Within a term, document have to be pushed in increasing order.</p>
<h2 id='methods' class='small-section-header'>
Methods<a href='#methods' class='anchor'></a>
</h2>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../tantivy/postings/struct.InvertedIndexSerializer.html" title="struct tantivy::postings::InvertedIndexSerializer">InvertedIndexSerializer</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#54-110' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.open' class="method"><span id='open.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.open' class='fnname'>open</a>(segment: &amp;mut <a class="struct" href="../../tantivy/struct.Segment.html" title="struct tantivy::Segment">Segment</a>) -&gt; <a class="type" href="../../tantivy/type.Result.html" title="type tantivy::Result">Result</a>&lt;<a class="struct" href="../../tantivy/postings/struct.InvertedIndexSerializer.html" title="struct tantivy::postings::InvertedIndexSerializer">InvertedIndexSerializer</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#71-79' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Open a new <code>PostingsSerializer</code> for the given segment</p>
</div><h4 id='method.new_field' class="method"><span id='new_field.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new_field' class='fnname'>new_field</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;field: <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;total_num_tokens: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a><br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="struct" href="../../tantivy/postings/struct.FieldSerializer.html" title="struct tantivy::postings::FieldSerializer">FieldSerializer</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#85-101' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Must be called before starting pushing terms of
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../tantivy/postings/struct.InvertedIndexSerializer.html" title="struct tantivy::postings::InvertedIndexSerializer">InvertedIndexSerializer</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#53-109' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.open' class="method"><span id='open.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.open' class='fnname'>open</a>(segment: &amp;mut <a class="struct" href="../../tantivy/struct.Segment.html" title="struct tantivy::Segment">Segment</a>) -&gt; <a class="type" href="../../tantivy/type.Result.html" title="type tantivy::Result">Result</a>&lt;<a class="struct" href="../../tantivy/postings/struct.InvertedIndexSerializer.html" title="struct tantivy::postings::InvertedIndexSerializer">InvertedIndexSerializer</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#70-78' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Open a new <code>PostingsSerializer</code> for the given segment</p>
</div><h4 id='method.new_field' class="method"><span id='new_field.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new_field' class='fnname'>new_field</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;field: <a class="struct" href="../../tantivy/schema/struct.Field.html" title="struct tantivy::schema::Field">Field</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;total_num_tokens: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a><br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="struct" href="../../tantivy/postings/struct.FieldSerializer.html" title="struct tantivy::postings::FieldSerializer">FieldSerializer</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#84-100' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Must be called before starting pushing terms of
a given field.</p>
<p>Loads the indexing options for the given field.</p>
</div><h4 id='method.close' class="method"><span id='close.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.close' class='fnname'>close</a>(self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#104-109' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Closes the serializer.</p>
</div><h4 id='method.close' class="method"><span id='close.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.close' class='fnname'>close</a>(self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/postings/serializer.rs.html#103-108' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Closes the serializer.</p>
</div></div>
<h2 id='synthetic-implementations' class='small-section-header'>
Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a>

View File

@@ -17,12 +17,12 @@ how it should be handled by tantivy.</p>
<h2 id='methods' class='small-section-header'>
Methods<a href='#methods' class='anchor'></a>
</h2>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="enum" href="../../tantivy/schema/enum.FieldType.html" title="enum tantivy::schema::FieldType">FieldType</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/schema/field_type.rs.html#59-156' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.value_type' class="method"><span id='value_type.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.value_type' class='fnname'>value_type</a>(&amp;self) -&gt; <a class="enum" href="../../tantivy/schema/enum.Type.html" title="enum tantivy::schema::Type">Type</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/schema/field_type.rs.html#61-69' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the value type associated for this field.</p>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="enum" href="../../tantivy/schema/enum.FieldType.html" title="enum tantivy::schema::FieldType">FieldType</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/schema/field_type.rs.html#59-155' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.value_type' class="method"><span id='value_type.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.value_type' class='fnname'>value_type</a>(&amp;self) -&gt; <a class="enum" href="../../tantivy/schema/enum.Type.html" title="enum tantivy::schema::Type">Type</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/schema/field_type.rs.html#61-69' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the value type associated for this field.</p>
</div><h4 id='method.is_indexed' class="method"><span id='is_indexed.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.is_indexed' class='fnname'>is_indexed</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/schema/field_type.rs.html#72-81' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>returns true iff the field is indexed.</p>
</div><h4 id='method.get_index_record_option' class="method"><span id='get_index_record_option.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.get_index_record_option' class='fnname'>get_index_record_option</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="../../tantivy/schema/enum.IndexRecordOption.html" title="enum tantivy::schema::IndexRecordOption">IndexRecordOption</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/schema/field_type.rs.html#87-102' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Given a field configuration, return the maximal possible
<code>IndexRecordOption</code> available.</p>
<p>If the field is not indexed, then returns <code>None</code>.</p>
</div><h4 id='method.value_from_json' class="method"><span id='value_from_json.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.value_from_json' class='fnname'>value_from_json</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;json: &amp;<a class="enum" href="../../serde_json/value/enum.Value.html" title="enum serde_json::value::Value">JsonValue</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="../../tantivy/schema/enum.Value.html" title="enum tantivy::schema::Value">Value</a>, ValueParsingError&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/schema/field_type.rs.html#109-155' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Parses a field value from json, given the target FieldType.</p>
</div><h4 id='method.value_from_json' class="method"><span id='value_from_json.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.value_from_json' class='fnname'>value_from_json</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;json: &amp;<a class="enum" href="../../serde_json/value/enum.Value.html" title="enum serde_json::value::Value">JsonValue</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="../../tantivy/schema/enum.Value.html" title="enum tantivy::schema::Value">Value</a>, ValueParsingError&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/schema/field_type.rs.html#109-154' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Parses a field value from json, given the target FieldType.</p>
<p>Tantivy will not try to cast values.
For instance, If the json value is the integer <code>3</code> and the
target field is a <code>Str</code>, this method will return an Error.</p>

View File

@@ -1,4 +1,4 @@
<!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="API documentation for the Rust `termdict` mod in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, termdict"><title>tantivy::termdict - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Module termdict</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class='location'><a href='../index.html'>tantivy</a></p><script>window.sidebarCurrent = {name: 'termdict', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Module <a href='../index.html'>tantivy</a>::<wbr><a class="mod" href=''>termdict</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/termdict/mod.rs.html#1-423' title='goto source code'>[src]</a></span></h1><div class='docblock'><p>The term dictionary is one of the key datastructure of
<!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="API documentation for the Rust `termdict` mod in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, termdict"><title>tantivy::termdict - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Module termdict</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class='location'><a href='../index.html'>tantivy</a></p><script>window.sidebarCurrent = {name: 'termdict', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Module <a href='../index.html'>tantivy</a>::<wbr><a class="mod" href=''>termdict</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/termdict/mod.rs.html#1-422' title='goto source code'>[src]</a></span></h1><div class='docblock'><p>The term dictionary is one of the key datastructure of
tantivy. It associates sorted <code>terms</code> to a <code>TermInfo</code> struct
that serves as an address in their respective posting list.</p>
<p>The term dictionary API makes it possible to iterate through

View File

@@ -1,4 +1,4 @@
<!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="API documentation for the Rust `TermMerger` struct in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, TermMerger"><title>tantivy::termdict::TermMerger - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Struct TermMerger</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new">new</a><a href="#method.advance">advance</a><a href="#method.key">key</a><a href="#method.current_kvs">current_kvs</a><a href="#method.next">next</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a></div></div><p class='location'><a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>termdict</a></p><script>window.sidebarCurrent = {name: 'TermMerger', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>termdict</a>::<wbr><a class="struct" href=''>TermMerger</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#40-43' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct TermMerger&lt;'a&gt; { /* fields omitted */ }</pre></div><div class='docblock'><p>Given a list of sorted term streams,
<!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="API documentation for the Rust `TermMerger` struct in crate `tantivy`."><meta name="keywords" content="rust, rustlang, rust-lang, TermMerger"><title>tantivy::termdict::TermMerger - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../tantivy/index.html'><img src='http://fulmicoton.com/tantivy-logo/tantivy-logo.png' alt='logo' width='100'></a><p class='location'>Struct TermMerger</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new">new</a><a href="#method.advance">advance</a><a href="#method.key">key</a><a href="#method.current_kvs">current_kvs</a><a href="#method.next">next</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a></div></div><p class='location'><a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>termdict</a></p><script>window.sidebarCurrent = {name: 'TermMerger', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tantivy</a>::<wbr><a href='index.html'>termdict</a>::<wbr><a class="struct" href=''>TermMerger</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#39-42' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct TermMerger&lt;'a&gt; { /* fields omitted */ }</pre></div><div class='docblock'><p>Given a list of sorted term streams,
returns an iterator over sorted unique terms.</p>
<p>The item yield is actually a pair with</p>
<ul>
@@ -10,20 +10,20 @@ the terms.</li>
<h2 id='methods' class='small-section-header'>
Methods<a href='#methods' class='anchor'></a>
</h2>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;'a&gt; <a class="struct" href="../../tantivy/termdict/struct.TermMerger.html" title="struct tantivy::termdict::TermMerger">TermMerger</a>&lt;'a&gt;</code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#45-133' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.new' class="method"><span id='new.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new' class='fnname'>new</a>(streams: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../../tantivy/termdict/struct.TermStreamer.html" title="struct tantivy::termdict::TermStreamer">TermStreamer</a>&lt;'a&gt;&gt;) -&gt; <a class="struct" href="../../tantivy/termdict/struct.TermMerger.html" title="struct tantivy::termdict::TermMerger">TermMerger</a>&lt;'a&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#48-60' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Stream of merged term dictionary</p>
</div><h4 id='method.advance' class="method"><span id='advance.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.advance' class='fnname'>advance</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#84-103' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Advance the term iterator to the next term.
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl&lt;'a&gt; <a class="struct" href="../../tantivy/termdict/struct.TermMerger.html" title="struct tantivy::termdict::TermMerger">TermMerger</a>&lt;'a&gt;</code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#44-134' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.new' class="method"><span id='new.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.new' class='fnname'>new</a>(streams: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../../tantivy/termdict/struct.TermStreamer.html" title="struct tantivy::termdict::TermStreamer">TermStreamer</a>&lt;'a&gt;&gt;) -&gt; <a class="struct" href="../../tantivy/termdict/struct.TermMerger.html" title="struct tantivy::termdict::TermMerger">TermMerger</a>&lt;'a&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#47-59' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Stream of merged term dictionary</p>
</div><h4 id='method.advance' class="method"><span id='advance.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.advance' class='fnname'>advance</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#85-104' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Advance the term iterator to the next term.
Returns true if there is indeed another term
False if there is none.</p>
</div><h4 id='method.key' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></div><div class="content hidden"><h3 class="important">Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></h3><code class="content"><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></code></div></div><span id='key.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.key' class='fnname'>key</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#110-112' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the current term.</p>
</div><h4 id='method.key' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></div><div class="content hidden"><h3 class="important">Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></h3><code class="content"><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></code></div></div><span id='key.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.key' class='fnname'>key</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#111-113' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the current term.</p>
<p>This method may be called
iff advance() has been called before
and &quot;true&quot; was returned.</p>
</div><h4 id='method.current_kvs' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></div><div class="content hidden"><h3 class="important">Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></h3><code class="content"><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></code></div></div><span id='current_kvs.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.current_kvs' class='fnname'>current_kvs</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a>HeapItem&lt;'a&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#120-122' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the sorted list of segment ordinals
</div><h4 id='method.current_kvs' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></div><div class="content hidden"><h3 class="important">Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></h3><code class="content"><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></span></code></div></div><span id='current_kvs.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.current_kvs' class='fnname'>current_kvs</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a>HeapItem&lt;'a&gt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#121-123' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the sorted list of segment ordinals
that include the current term.</p>
<p>This method may be called
iff advance() has been called before
and &quot;true&quot; was returned.</p>
</div><h4 id='method.next' class="method"><span id='next.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.next' class='fnname'>next</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../tantivy/struct.Term.html" title="struct tantivy::Term">Term</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#126-132' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Iterates through terms</p>
</div><h4 id='method.next' class="method"><span id='next.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.next' class='fnname'>next</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../tantivy/struct.Term.html" title="struct tantivy::Term">Term</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tantivy/termdict/merger.rs.html#127-133' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Iterates through terms</p>
</div></div>
<h2 id='synthetic-implementations' class='small-section-header'>
Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a>