You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2016/09/28 12:06:26 UTC

svn commit: r1762636 [4/12] - in /lucy/site/trunk/content/docs: ./ 0.5.0/ 0.5.0/c/ 0.5.0/c/Clownfish/ 0.5.0/c/Clownfish/Docs/ 0.5.0/c/Lucy/ 0.5.0/c/Lucy/Analysis/ 0.5.0/c/Lucy/Docs/ 0.5.0/c/Lucy/Docs/Cookbook/ 0.5.0/c/Lucy/Docs/Tutorial/ 0.5.0/c/Lucy/D...

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/IndexManager.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/IndexManager.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/IndexManager.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/IndexManager.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,191 @@
+Title: Lucy::Index::IndexManager – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::IndexManager</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>INDEXMANAGER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>IndexManager</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>IxManager</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/IndexManager.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::IndexManager – Policies governing index updating, locking, and file deletion.</p>
+<h3>Description</h3>
+<p>IndexManager is an advanced-use class for controlling index locking,
+updating, merging, and deletion behaviors.</p>
+<p>IndexManager and <a href="../../Lucy/Plan/Architecture.html">Architecture</a> are
+complementary classes: Architecture is used to define traits and behaviors
+which cannot change for the life of an index; IndexManager is used for
+defining rules which may change from process to process.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>IndexManager* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>IxManager_new</strong>(
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>host</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Store/LockFactory.html">LockFactory</a> *<strong>lock_factory</strong>
+);
+</code></pre>
+<p>Create a new IndexManager.</p>
+<dl>
+<dt>host</dt>
+<dd><p>An identifier which should be unique per-machine.</p>
+</dd>
+<dt>lock_factory</dt>
+<dd><p>A LockFactory.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>IndexManager*
+<span class="prefix">lucy_</span><strong>IxManager_init</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>host</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Store/LockFactory.html">LockFactory</a> *<strong>lock_factory</strong>
+);
+</code></pre>
+<p>Initialize an IndexManager.</p>
+<dl>
+<dt>host</dt>
+<dd><p>An identifier which should be unique per-machine.</p>
+</dd>
+<dt>lock_factory</dt>
+<dd><p>A LockFactory.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Set_Folder">Set_Folder</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>IxManager_Set_Folder</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Store/Folder.html">Folder</a> *<strong>folder</strong>
+);
+</code></pre>
+<p>Setter for <code>folder</code> member.  Typical clients (Indexer,
+IndexReader) will use this method to install their own Folder instance.</p>
+</dd>
+<dt id="func_Get_Folder">Get_Folder</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Store/Folder.html">Folder</a>*
+<span class="prefix">lucy_</span><strong>IxManager_Get_Folder</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for <code>folder</code> member.</p>
+</dd>
+<dt id="func_Get_Host">Get_Host</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a>*
+<span class="prefix">lucy_</span><strong>IxManager_Get_Host</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for <code>host</code> member.</p>
+</dd>
+<dt id="func_Recycle">Recycle</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>IxManager_Recycle</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/PolyReader.html">PolyReader</a> *<strong>reader</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/DeletionsWriter.html">DeletionsWriter</a> *<strong>del_writer</strong>,
+    int64_t <strong>cutoff</strong>,
+    bool <strong>optimize</strong>
+);
+</code></pre>
+<p>Return an array of SegReaders representing segments that should be
+consolidated.  Implementations must balance index-time churn against
+search-time degradation due to segment proliferation. The default
+implementation prefers small segments or segments with a high
+proportion of deletions.</p>
+<dl>
+<dt>reader</dt>
+<dd><p>A PolyReader.</p>
+</dd>
+<dt>del_writer</dt>
+<dd><p>A DeletionsWriter.</p>
+</dd>
+<dt>cutoff</dt>
+<dd><p>A segment number which all returned SegReaders must
+exceed.</p>
+</dd>
+<dt>optimize</dt>
+<dd><p>A boolean indicating whether to spend extra time
+optimizing the index for search-time performance.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Make_Write_Lock">Make_Write_Lock</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Store/Lock.html">Lock</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>IxManager_Make_Write_Lock</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Create the Lock which controls access to modifying the logical content
+of the index.</p>
+</dd>
+<dt id="func_Set_Write_Lock_Timeout">Set_Write_Lock_Timeout</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>IxManager_Set_Write_Lock_Timeout</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>,
+    uint32_t <strong>timeout</strong>
+);
+</code></pre>
+<p>Setter for write lock timeout.  Default: 1000 milliseconds.</p>
+</dd>
+<dt id="func_Get_Write_Lock_Timeout">Get_Write_Lock_Timeout</dt>
+<dd>
+<pre><code>uint32_t
+<span class="prefix">lucy_</span><strong>IxManager_Get_Write_Lock_Timeout</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for write lock timeout.</p>
+</dd>
+<dt id="func_Set_Write_Lock_Interval">Set_Write_Lock_Interval</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>IxManager_Set_Write_Lock_Interval</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>,
+    uint32_t <strong>timeout</strong>
+);
+</code></pre>
+<p>Setter for write lock retry interval.  Default: 100 milliseconds.</p>
+</dd>
+<dt id="func_Get_Write_Lock_Interval">Get_Write_Lock_Interval</dt>
+<dd>
+<pre><code>uint32_t
+<span class="prefix">lucy_</span><strong>IxManager_Get_Write_Lock_Interval</strong>(
+    <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for write lock retry interval.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::IndexManager is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/IndexReader.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/IndexReader.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/IndexReader.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/IndexReader.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,262 @@
+Title: Lucy::Index::IndexReader – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::IndexReader</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>INDEXREADER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>IndexReader</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>IxReader</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/IndexReader.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::IndexReader – Read from an inverted index.</p>
+<h3>Description</h3>
+<p>IndexReader is the interface through which
+<a href="../../Lucy/Search/IndexSearcher.html">IndexSearcher</a> objects access the
+content of an index.</p>
+<p>IndexReader objects always represent a point-in-time view of an index as it
+existed at the moment the reader was created.  If you want search results
+to reflect modifications to an index, you must create a new IndexReader
+after the update process completes.</p>
+<p>IndexReaders are composites; most of the work is done by individual
+<a href="../../Lucy/Index/DataReader.html">DataReader</a> sub-components, which may be
+accessed via <a href="../../Lucy/Index/IndexReader.html#func_Fetch">Fetch()</a> and <a href="../../Lucy/Index/IndexReader.html#func_Obtain">Obtain()</a>.  The most efficient and powerful access
+to index data happens at the segment level via
+<a href="../../Lucy/Index/SegReader.html">SegReader</a>’s sub-components.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_open">open</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>IndexReader* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>IxReader_open</strong>(
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/Snapshot.html">Snapshot</a> *<strong>snapshot</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/IndexManager.html">IndexManager</a> *<strong>manager</strong>
+);
+</code></pre>
+<p>IndexReader is an abstract base class; open() returns the IndexReader
+subclass PolyReader, which channels the output of 0 or more SegReaders.</p>
+<dl>
+<dt>index</dt>
+<dd><p>Either a string filepath or a Folder.</p>
+</dd>
+<dt>snapshot</dt>
+<dd><p>A Snapshot.  If not supplied, the most recent snapshot
+file will be used.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An <a href="../../Lucy/Index/IndexManager.html">IndexManager</a>.
+Read-locking is off by default; supplying this argument turns it on.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_do_open">do_open</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>IndexReader*
+<span class="prefix">lucy_</span><strong>IxReader_do_open</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/Snapshot.html">Snapshot</a> *<strong>snapshot</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/IndexManager.html">IndexManager</a> *<strong>manager</strong>
+);
+</code></pre>
+<p>Initialize and open an IndexReader.</p>
+<dl>
+<dt>index</dt>
+<dd><p>Either a string filepath or a Folder.</p>
+</dd>
+<dt>snapshot</dt>
+<dd><p>A Snapshot.  If not supplied, the most recent snapshot
+file will be used.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An <a href="../../Lucy/Index/IndexManager.html">IndexManager</a>.
+Read-locking is off by default; supplying this argument turns it on.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Doc_Max">Doc_Max <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>IxReader_Doc_Max</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the maximum number of documents available to the reader, which
+is also the highest possible internal document id.  Documents which
+have been marked as deleted but not yet purged from the index are
+included in this count.</p>
+</dd>
+<dt id="func_Doc_Count">Doc_Count <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>IxReader_Doc_Count</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents available to the reader, subtracting
+any that are marked as deleted.</p>
+</dd>
+<dt id="func_Del_Count">Del_Count <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>IxReader_Del_Count</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents which have been marked as deleted but
+not yet purged from the index.</p>
+</dd>
+<dt id="func_Offsets">Offsets <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Object/I32Array.html">I32Array</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>IxReader_Offsets</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array with one entry for each segment, corresponding to
+segment doc_id start offset.</p>
+</dd>
+<dt id="func_Seg_Readers">Seg_Readers <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>IxReader_Seg_Readers</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array of all the SegReaders represented within the
+IndexReader.</p>
+</dd>
+<dt id="func_Obtain">Obtain</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/DataReader.html">DataReader</a>*
+<span class="prefix">lucy_</span><strong>IxReader_Obtain</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>api</strong>
+);
+</code></pre>
+<p>Fetch a component, or throw an error if the component can’t be found.</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataReader subclass that the desired
+component must implement.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Fetch">Fetch</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/DataReader.html">DataReader</a>*
+<span class="prefix">lucy_</span><strong>IxReader_Fetch</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>api</strong>
+);
+</code></pre>
+<p>Fetch a component, or return NULL if the component can’t be
+found.</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataReader subclass that the desired
+component must implement.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h4>Methods inherited from Lucy::Index::DataReader</h4>
+<dl>
+<dt id="func_Aggregator">Aggregator <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/DataReader.html">DataReader</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>IxReader_Aggregator</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a> *<strong>readers</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>offsets</strong>
+);
+</code></pre>
+<p>Create a reader which aggregates the output of several lower level
+readers.  Return NULL if such a reader is not valid.</p>
+<dl>
+<dt>readers</dt>
+<dd><p>An array of DataReaders.</p>
+</dd>
+<dt>offsets</dt>
+<dd><p>Doc id start offsets for each reader.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Get_Schema">Get_Schema</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Plan/Schema.html">Schema</a>*
+<span class="prefix">lucy_</span><strong>IxReader_Get_Schema</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “schema” member var.</p>
+</dd>
+<dt id="func_Get_Folder">Get_Folder</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Store/Folder.html">Folder</a>*
+<span class="prefix">lucy_</span><strong>IxReader_Get_Folder</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “folder” member var.</p>
+</dd>
+<dt id="func_Get_Snapshot">Get_Snapshot</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Snapshot.html">Snapshot</a>*
+<span class="prefix">lucy_</span><strong>IxReader_Get_Snapshot</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “snapshot” member var.</p>
+</dd>
+<dt id="func_Get_Segments">Get_Segments</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a>*
+<span class="prefix">lucy_</span><strong>IxReader_Get_Segments</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segments” member var.</p>
+</dd>
+<dt id="func_Get_Segment">Get_Segment</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Segment.html">Segment</a>*
+<span class="prefix">lucy_</span><strong>IxReader_Get_Segment</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segment” member var.</p>
+</dd>
+<dt id="func_Get_Seg_Tick">Get_Seg_Tick</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>IxReader_Get_Seg_Tick</strong>(
+    <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “seg_tick” member var.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::IndexReader is a <a href="../../Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Indexer.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Indexer.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Indexer.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Indexer.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,252 @@
+Title: Lucy::Index::Indexer – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::Indexer</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>INDEXER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Indexer</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Indexer</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/Indexer.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::Indexer – Build inverted indexes.</p>
+<h3>Description</h3>
+<p>The Indexer class is Apache Lucy’s primary tool for managing the content of
+inverted indexes, which may later be searched using
+<a href="../../Lucy/Search/IndexSearcher.html">IndexSearcher</a>.</p>
+<p>In general, only one Indexer at a time may write to an index safely.  If a
+write lock cannot be secured, new() will throw an exception.</p>
+<p>If an index is located on a shared volume, each writer application must
+identify itself by supplying an
+<a href="../../Lucy/Index/IndexManager.html">IndexManager</a> with a unique
+<code>host</code> id to Indexer’s constructor or index corruption will
+occur.  See <a href="../../Lucy/Docs/FileLocking.html">FileLocking</a> for a detailed
+discussion.</p>
+<p>Note: at present, <a href="../../Lucy/Index/Indexer.html#func_Delete_By_Term">Delete_By_Term()</a> and <a href="../../Lucy/Index/Indexer.html#func_Delete_By_Query">Delete_By_Query()</a> only affect
+documents which had been previously committed to the index – and not any
+documents added this indexing session but not yet committed.  This may
+change in a future update.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Indexer* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>Indexer_new</strong>(
+    <span class="prefix">lucy_</span><a href="../../Lucy/Plan/Schema.html">Schema</a> *<strong>schema</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/IndexManager.html">IndexManager</a> *<strong>manager</strong>,
+    int32_t <strong>flags</strong>
+);
+</code></pre>
+<p>Open a new Indexer.  If the index already exists, update it.</p>
+<dl>
+<dt>schema</dt>
+<dd><p>A Schema.</p>
+</dd>
+<dt>index</dt>
+<dd><p>Either a string filepath or a Folder.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An IndexManager.</p>
+</dd>
+<dt>flags</dt>
+<dd><p>Flags governing behavior.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Indexer*
+<span class="prefix">lucy_</span><strong>Indexer_init</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Plan/Schema.html">Schema</a> *<strong>schema</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/IndexManager.html">IndexManager</a> *<strong>manager</strong>,
+    int32_t <strong>flags</strong>
+);
+</code></pre>
+<p>Initialize an Indexer.</p>
+<dl>
+<dt>schema</dt>
+<dd><p>A Schema.</p>
+</dd>
+<dt>index</dt>
+<dd><p>Either a string filepath or a Folder.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An IndexManager.</p>
+</dd>
+<dt>flags</dt>
+<dd><p>Flags governing behavior.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Add_Doc">Add_Doc</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Add_Doc</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Document/Doc.html">Doc</a> *<strong>doc</strong>,
+    float <strong>boost</strong>
+);
+</code></pre>
+<p>Add a document to the index.</p>
+<dl>
+<dt>doc</dt>
+<dd><p>A Lucy::Document::Doc object.</p>
+</dd>
+<dt>boost</dt>
+<dd><p>A floating point weight which affects how this document
+scores.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Add_Index">Add_Index</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Add_Index</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>
+);
+</code></pre>
+<p>Absorb an existing index into this one.  The two indexes must
+have matching Schemas.</p>
+<dl>
+<dt>index</dt>
+<dd><p>Either an index path name or a Folder.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Delete_By_Term">Delete_By_Term</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Delete_By_Term</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>field</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>term</strong>
+);
+</code></pre>
+<p>Mark documents which contain the supplied term as deleted, so that
+they will be excluded from search results and eventually removed
+altogether.  The change is not apparent to search apps until after
+<a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> succeeds.</p>
+<dl>
+<dt>field</dt>
+<dd><p>The name of an indexed field. (If it is not spec’d as
+<code>indexed</code>, an error will occur.)</p>
+</dd>
+<dt>term</dt>
+<dd><p>The term which identifies docs to be marked as deleted.  If
+<code>field</code> is associated with an Analyzer, <code>term</code>
+will be processed automatically (so don’t pre-process it yourself).</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Delete_By_Query">Delete_By_Query</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Delete_By_Query</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Search/Query.html">Query</a> *<strong>query</strong>
+);
+</code></pre>
+<p>Mark documents which match the supplied Query as deleted.</p>
+<dl>
+<dt>query</dt>
+<dd><p>A <a href="../../Lucy/Search/Query.html">Query</a>.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Delete_By_Doc_ID">Delete_By_Doc_ID</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Delete_By_Doc_ID</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>,
+    int32_t <strong>doc_id</strong>
+);
+</code></pre>
+<p>Mark the document identified by the supplied document ID as deleted.</p>
+<dl>
+<dt>doc_id</dt>
+<dd><p>A <a href="../../Lucy/Docs/DocIDs.html">document id</a>.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Optimize">Optimize</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Optimize</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>
+);
+</code></pre>
+<p>Optimize the index for search-time performance.  This may take a
+while, as it can involve rewriting large amounts of data.</p>
+<p>Every Indexer session which changes index content and ends in a
+<a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> creates a new segment.  Once written, segments are never
+modified.  However, they are periodically recycled by feeding their
+content into the segment currently being written.</p>
+<p>The <a href="../../Lucy/Index/Indexer.html#func_Optimize">Optimize()</a> method causes all existing index content to be fed back
+into the Indexer.  When <a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> completes after an <a href="../../Lucy/Index/Indexer.html#func_Optimize">Optimize()</a>, the
+index will consist of one segment.  So <a href="../../Lucy/Index/Indexer.html#func_Optimize">Optimize()</a> must be called
+before <a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a>.  Also, optimizing a fresh index created from scratch
+has no effect.</p>
+<p>Historically, there was a significant search-time performance benefit
+to collapsing down to a single segment versus even two segments.  Now
+the effect of collapsing is much less significant, and calling
+<a href="../../Lucy/Index/Indexer.html#func_Optimize">Optimize()</a> is rarely justified.</p>
+</dd>
+<dt id="func_Commit">Commit</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Commit</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>
+);
+</code></pre>
+<p>Commit any changes made to the index.  Until this is called, none of
+the changes made during an indexing session are permanent.</p>
+<p>Calling <a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> invalidates the Indexer, so if you want to make more
+changes you’ll need a new one.</p>
+</dd>
+<dt id="func_Prepare_Commit">Prepare_Commit</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Prepare_Commit</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>
+);
+</code></pre>
+<p>Perform the expensive setup for <a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> in advance, so that <a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a>
+completes quickly.  (If <a href="../../Lucy/Index/Indexer.html#func_Prepare_Commit">Prepare_Commit()</a> is not called explicitly by
+the user, <a href="../../Lucy/Index/Indexer.html#func_Commit">Commit()</a> will call it internally.)</p>
+</dd>
+<dt id="func_Get_Schema">Get_Schema</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Plan/Schema.html">Schema</a>*
+<span class="prefix">lucy_</span><strong>Indexer_Get_Schema</strong>(
+    <span class="prefix">lucy_</span>Indexer *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for schema.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Indexer is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Lexicon.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Lexicon.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Lexicon.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Lexicon.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,87 @@
+Title: Lucy::Index::Lexicon – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::Lexicon</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>LEXICON</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Lexicon</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Lex</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/Lexicon.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::Lexicon – Iterator for a field’s terms.</p>
+<h3>Description</h3>
+<p>A Lexicon is an iterator which provides access to all the unique terms for
+a given field in sorted order.</p>
+<p>If an index consists of two documents with a ‘content’ field holding “three
+blind mice” and “three musketeers” respectively, then iterating through the
+‘content’ field’s lexicon would produce this list:</p>
+<pre><code>blind
+mice
+musketeers
+three
+</code></pre>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Seek">Seek <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Lex_Seek</strong>(
+    <span class="prefix">lucy_</span>Lexicon *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>target</strong>
+);
+</code></pre>
+<p>Seek the Lexicon to the first iterator state which is greater than or
+equal to <code>target</code>.  If <code>target</code> is NULL,
+reset the iterator.</p>
+</dd>
+<dt id="func_Next">Next <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>bool
+<span class="prefix">lucy_</span><strong>Lex_Next</strong>(
+    <span class="prefix">lucy_</span>Lexicon *<strong>self</strong>
+);
+</code></pre>
+<p>Proceed to the next term.</p>
+<p><strong>Returns:</strong> true until the iterator is exhausted, then false.</p>
+</dd>
+<dt id="func_Reset">Reset <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Lex_Reset</strong>(
+    <span class="prefix">lucy_</span>Lexicon *<strong>self</strong>
+);
+</code></pre>
+<p>Reset the iterator.  <a href="../../Lucy/Index/Lexicon.html#func_Next">Next()</a> must be called to proceed to the first
+element.</p>
+</dd>
+<dt id="func_Get_Term">Get_Term <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a>*
+<span class="prefix">lucy_</span><strong>Lex_Get_Term</strong>(
+    <span class="prefix">lucy_</span>Lexicon *<strong>self</strong>
+);
+</code></pre>
+<p>Return the current term, or NULL if the iterator is not in a
+valid state.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Lexicon is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/LexiconReader.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/LexiconReader.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/LexiconReader.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/LexiconReader.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,145 @@
+Title: Lucy::Index::LexiconReader – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::LexiconReader</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>LEXICONREADER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>LexiconReader</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>LexReader</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/LexiconReader.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::LexiconReader – Read Lexicon data.</p>
+<h3>Description</h3>
+<p>LexiconReader reads term dictionary information.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Lexicon">Lexicon <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Lexicon.html">Lexicon</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>LexReader_Lexicon</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>field</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>term</strong>
+);
+</code></pre>
+<p>Return a new Lexicon for the given <code>field</code>.  Will return
+NULL if either the field is not indexed, or if no documents
+contain a value for the field.</p>
+<dl>
+<dt>field</dt>
+<dd><p>Field name.</p>
+</dd>
+<dt>term</dt>
+<dd><p>Pre-locate the Lexicon to this term.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Doc_Freq">Doc_Freq <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>uint32_t
+<span class="prefix">lucy_</span><strong>LexReader_Doc_Freq</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>field</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>term</strong>
+);
+</code></pre>
+<p>Return the number of documents where the specified term is present.</p>
+</dd>
+<dt id="func_Aggregator">Aggregator</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>LexiconReader* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>LexReader_Aggregator</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a> *<strong>readers</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>offsets</strong>
+);
+</code></pre>
+<p>Return a LexiconReader which merges the output of other
+LexiconReaders.</p>
+<dl>
+<dt>readers</dt>
+<dd><p>An array of LexiconReaders.</p>
+</dd>
+<dt>offsets</dt>
+<dd><p>Doc id start offsets for each reader.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h4>Methods inherited from Lucy::Index::DataReader</h4>
+<dl>
+<dt id="func_Get_Schema">Get_Schema</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Plan/Schema.html">Schema</a>*
+<span class="prefix">lucy_</span><strong>LexReader_Get_Schema</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “schema” member var.</p>
+</dd>
+<dt id="func_Get_Folder">Get_Folder</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Store/Folder.html">Folder</a>*
+<span class="prefix">lucy_</span><strong>LexReader_Get_Folder</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “folder” member var.</p>
+</dd>
+<dt id="func_Get_Snapshot">Get_Snapshot</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Snapshot.html">Snapshot</a>*
+<span class="prefix">lucy_</span><strong>LexReader_Get_Snapshot</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “snapshot” member var.</p>
+</dd>
+<dt id="func_Get_Segments">Get_Segments</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a>*
+<span class="prefix">lucy_</span><strong>LexReader_Get_Segments</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segments” member var.</p>
+</dd>
+<dt id="func_Get_Segment">Get_Segment</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Segment.html">Segment</a>*
+<span class="prefix">lucy_</span><strong>LexReader_Get_Segment</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segment” member var.</p>
+</dd>
+<dt id="func_Get_Seg_Tick">Get_Seg_Tick</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>LexReader_Get_Seg_Tick</strong>(
+    <span class="prefix">lucy_</span>LexiconReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “seg_tick” member var.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::LexiconReader is a <a href="../../Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PolyReader.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PolyReader.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PolyReader.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PolyReader.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,258 @@
+Title: Lucy::Index::PolyReader – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::PolyReader</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>POLYREADER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>PolyReader</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>PolyReader</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/PolyReader.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::PolyReader – Multi-segment implementation of IndexReader.</p>
+<h3>Description</h3>
+<p>PolyReader conflates index data from multiple segments.  For instance, if
+an index contains three segments with 10 documents each, PolyReader’s
+<a href="../../Lucy/Index/PolyReader.html#func_Doc_Max">Doc_Max()</a> method will return 30.</p>
+<p>Some of PolyReader’s <a href="../../Lucy/Index/DataReader.html">DataReader</a> components
+may be less efficient or complete than the single-segment implementations
+accessed via <a href="../../Lucy/Index/SegReader.html">SegReader</a>.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_open">open</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>PolyReader* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>PolyReader_open</strong>(
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/Snapshot.html">Snapshot</a> *<strong>snapshot</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/IndexManager.html">IndexManager</a> *<strong>manager</strong>
+);
+</code></pre>
+<p>Create and open a PolyReader.</p>
+<dl>
+<dt>index</dt>
+<dd><p>Either a string filepath or a <a href="../../Lucy/Store/Folder.html">Folder</a>.</p>
+</dd>
+<dt>snapshot</dt>
+<dd><p>A Snapshot.  If not supplied, the most recent snapshot
+file will be used.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An <a href="../../Lucy/Index/IndexManager.html">IndexManager</a>.
+Read-locking is off by default; supplying this argument turns it on.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_do_open">do_open</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>PolyReader*
+<span class="prefix">lucy_</span><strong>PolyReader_do_open</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>index</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/Snapshot.html">Snapshot</a> *<strong>snapshot</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/IndexManager.html">IndexManager</a> *<strong>manager</strong>
+);
+</code></pre>
+<p>Initialize and open a PolyReader.</p>
+<dl>
+<dt>index</dt>
+<dd><p>Either a string filepath or a <a href="../../Lucy/Store/Folder.html">Folder</a>.</p>
+</dd>
+<dt>snapshot</dt>
+<dd><p>A Snapshot.  If not supplied, the most recent snapshot
+file will be used.</p>
+</dd>
+<dt>manager</dt>
+<dd><p>An <a href="../../Lucy/Index/IndexManager.html">IndexManager</a>.
+Read-locking is off by default; supplying this argument turns it on.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Doc_Max">Doc_Max</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PolyReader_Doc_Max</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the maximum number of documents available to the reader, which
+is also the highest possible internal document id.  Documents which
+have been marked as deleted but not yet purged from the index are
+included in this count.</p>
+</dd>
+<dt id="func_Doc_Count">Doc_Count</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PolyReader_Doc_Count</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents available to the reader, subtracting
+any that are marked as deleted.</p>
+</dd>
+<dt id="func_Del_Count">Del_Count</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PolyReader_Del_Count</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents which have been marked as deleted but
+not yet purged from the index.</p>
+</dd>
+<dt id="func_Offsets">Offsets</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Object/I32Array.html">I32Array</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>PolyReader_Offsets</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array with one entry for each segment, corresponding to
+segment doc_id start offset.</p>
+</dd>
+<dt id="func_Seg_Readers">Seg_Readers</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>PolyReader_Seg_Readers</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array of all the SegReaders represented within the
+IndexReader.</p>
+</dd>
+</dl>
+<h4>Methods inherited from Lucy::Index::IndexReader</h4>
+<dl>
+<dt id="func_Obtain">Obtain</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/DataReader.html">DataReader</a>*
+<span class="prefix">lucy_</span><strong>PolyReader_Obtain</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>api</strong>
+);
+</code></pre>
+<p>Fetch a component, or throw an error if the component can’t be found.</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataReader subclass that the desired
+component must implement.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Fetch">Fetch</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/DataReader.html">DataReader</a>*
+<span class="prefix">lucy_</span><strong>PolyReader_Fetch</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>api</strong>
+);
+</code></pre>
+<p>Fetch a component, or return NULL if the component can’t be
+found.</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataReader subclass that the desired
+component must implement.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h4>Methods inherited from Lucy::Index::DataReader</h4>
+<dl>
+<dt id="func_Aggregator">Aggregator <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/DataReader.html">DataReader</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>PolyReader_Aggregator</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a> *<strong>readers</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>offsets</strong>
+);
+</code></pre>
+<p>Create a reader which aggregates the output of several lower level
+readers.  Return NULL if such a reader is not valid.</p>
+<dl>
+<dt>readers</dt>
+<dd><p>An array of DataReaders.</p>
+</dd>
+<dt>offsets</dt>
+<dd><p>Doc id start offsets for each reader.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Get_Schema">Get_Schema</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Plan/Schema.html">Schema</a>*
+<span class="prefix">lucy_</span><strong>PolyReader_Get_Schema</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “schema” member var.</p>
+</dd>
+<dt id="func_Get_Folder">Get_Folder</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Store/Folder.html">Folder</a>*
+<span class="prefix">lucy_</span><strong>PolyReader_Get_Folder</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “folder” member var.</p>
+</dd>
+<dt id="func_Get_Snapshot">Get_Snapshot</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Snapshot.html">Snapshot</a>*
+<span class="prefix">lucy_</span><strong>PolyReader_Get_Snapshot</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “snapshot” member var.</p>
+</dd>
+<dt id="func_Get_Segments">Get_Segments</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a>*
+<span class="prefix">lucy_</span><strong>PolyReader_Get_Segments</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segments” member var.</p>
+</dd>
+<dt id="func_Get_Segment">Get_Segment</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Segment.html">Segment</a>*
+<span class="prefix">lucy_</span><strong>PolyReader_Get_Segment</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segment” member var.</p>
+</dd>
+<dt id="func_Get_Seg_Tick">Get_Seg_Tick</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PolyReader_Get_Seg_Tick</strong>(
+    <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “seg_tick” member var.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::PolyReader is a <a href="../../Lucy/Index/IndexReader.html">Lucy::Index::IndexReader</a> is a <a href="../../Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PostingList.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PostingList.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PostingList.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PostingList.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,120 @@
+Title: Lucy::Index::PostingList – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::PostingList</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>POSTINGLIST</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>PostingList</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>PList</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/PostingList.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::PostingList – Term-Document pairings.</p>
+<h3>Description</h3>
+<p>PostingList is an iterator which supplies a list of document ids that match
+a given term.</p>
+<p>See <a href="../../Lucy/Docs/IRTheory.html">IRTheory</a> for definitions of “posting” and
+“posting list”.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Get_Doc_Freq">Get_Doc_Freq <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>uint32_t
+<span class="prefix">lucy_</span><strong>PList_Get_Doc_Freq</strong>(
+    <span class="prefix">lucy_</span>PostingList *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents that the PostingList contains.  (This
+number will include any documents which have been marked as deleted but
+not yet purged.)</p>
+</dd>
+<dt id="func_Seek">Seek <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>PList_Seek</strong>(
+    <span class="prefix">lucy_</span>PostingList *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>target</strong>
+);
+</code></pre>
+<p>Prepare the PostingList object to iterate over matches for documents
+that match <code>target</code>.</p>
+<dl>
+<dt>target</dt>
+<dd><p>The term to match.  If NULL, the iterator will
+be empty.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h4>Methods inherited from Lucy::Search::Matcher</h4>
+<dl>
+<dt id="func_Next">Next <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PList_Next</strong>(
+    <span class="prefix">lucy_</span>PostingList *<strong>self</strong>
+);
+</code></pre>
+<p>Proceed to the next doc id.</p>
+<p><strong>Returns:</strong> A positive doc id, or 0 once the iterator is exhausted.</p>
+</dd>
+<dt id="func_Advance">Advance</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PList_Advance</strong>(
+    <span class="prefix">lucy_</span>PostingList *<strong>self</strong>,
+    int32_t <strong>target</strong>
+);
+</code></pre>
+<p>Advance the iterator to the first doc id greater than or equal to
+<code>target</code>. The default implementation simply calls <a href="../../Lucy/Index/PostingList.html#func_Next">Next()</a>
+over and over, but subclasses have the option of doing something more
+efficient.</p>
+<dl>
+<dt>target</dt>
+<dd><p>A positive doc id, which must be greater than the current
+doc id once the iterator has been initialized.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> A positive doc id, or 0 once the iterator is exhausted.</p>
+</dd>
+<dt id="func_Get_Doc_ID">Get_Doc_ID <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PList_Get_Doc_ID</strong>(
+    <span class="prefix">lucy_</span>PostingList *<strong>self</strong>
+);
+</code></pre>
+<p>Return the current doc id.  Valid only after a successful call to
+<a href="../../Lucy/Index/PostingList.html#func_Next">Next()</a> or <a href="../../Lucy/Index/PostingList.html#func_Advance">Advance()</a> and must not be called otherwise.</p>
+</dd>
+<dt id="func_Score">Score <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>float
+<span class="prefix">lucy_</span><strong>PList_Score</strong>(
+    <span class="prefix">lucy_</span>PostingList *<strong>self</strong>
+);
+</code></pre>
+<p>Return the score of the current document.</p>
+<p>Only Matchers which are used for scored search need implement <a href="../../Lucy/Index/PostingList.html#func_Score">Score()</a>.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::PostingList is a <a href="../../Lucy/Search/Matcher.html">Lucy::Search::Matcher</a> is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PostingListReader.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PostingListReader.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PostingListReader.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/PostingListReader.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,127 @@
+Title: Lucy::Index::PostingListReader – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::PostingListReader</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>POSTINGLISTREADER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>PostingListReader</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>PListReader</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/PostingListReader.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::PostingListReader – Read postings data.</p>
+<h3>Description</h3>
+<p>PostingListReaders produce <a href="../../Lucy/Index/PostingList.html">PostingList</a>
+objects which convey document matching information.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Posting_List">Posting_List <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/PostingList.html">PostingList</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>PListReader_Posting_List</strong>(
+    <span class="prefix">lucy_</span>PostingListReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>field</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>term</strong>
+);
+</code></pre>
+<p>Returns a PostingList, or NULL if either <code>field</code> is
+NULL or <code>field</code> is not present in any documents.</p>
+<dl>
+<dt>field</dt>
+<dd><p>A field name.</p>
+</dd>
+<dt>term</dt>
+<dd><p>If supplied, the PostingList will be pre-located to this
+term using <a href="../../Lucy/Index/PostingList.html#func_Seek">Seek()</a>.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Aggregator">Aggregator</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>PostingListReader* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>PListReader_Aggregator</strong>(
+    <span class="prefix">lucy_</span>PostingListReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a> *<strong>readers</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>offsets</strong>
+);
+</code></pre>
+<p>Returns NULL since PostingLists may only be iterated at the
+segment level.</p>
+</dd>
+</dl>
+<h4>Methods inherited from Lucy::Index::DataReader</h4>
+<dl>
+<dt id="func_Get_Schema">Get_Schema</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Plan/Schema.html">Schema</a>*
+<span class="prefix">lucy_</span><strong>PListReader_Get_Schema</strong>(
+    <span class="prefix">lucy_</span>PostingListReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “schema” member var.</p>
+</dd>
+<dt id="func_Get_Folder">Get_Folder</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Store/Folder.html">Folder</a>*
+<span class="prefix">lucy_</span><strong>PListReader_Get_Folder</strong>(
+    <span class="prefix">lucy_</span>PostingListReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “folder” member var.</p>
+</dd>
+<dt id="func_Get_Snapshot">Get_Snapshot</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Snapshot.html">Snapshot</a>*
+<span class="prefix">lucy_</span><strong>PListReader_Get_Snapshot</strong>(
+    <span class="prefix">lucy_</span>PostingListReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “snapshot” member var.</p>
+</dd>
+<dt id="func_Get_Segments">Get_Segments</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a>*
+<span class="prefix">lucy_</span><strong>PListReader_Get_Segments</strong>(
+    <span class="prefix">lucy_</span>PostingListReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segments” member var.</p>
+</dd>
+<dt id="func_Get_Segment">Get_Segment</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Segment.html">Segment</a>*
+<span class="prefix">lucy_</span><strong>PListReader_Get_Segment</strong>(
+    <span class="prefix">lucy_</span>PostingListReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segment” member var.</p>
+</dd>
+<dt id="func_Get_Seg_Tick">Get_Seg_Tick</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>PListReader_Get_Seg_Tick</strong>(
+    <span class="prefix">lucy_</span>PostingListReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “seg_tick” member var.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::PostingListReader is a <a href="../../Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/SegReader.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/SegReader.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/SegReader.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/SegReader.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,224 @@
+Title: Lucy::Index::SegReader – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::SegReader</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>SEGREADER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>SegReader</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>SegReader</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/SegReader.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::SegReader – Single-segment IndexReader.</p>
+<h3>Description</h3>
+<p>SegReader interprets the data within a single segment of an index.</p>
+<p>Generally speaking, only advanced users writing subclasses which manipulate
+data at the segment level need to deal with the SegReader API directly.</p>
+<p>Nearly all of SegReader’s functionality is implemented by pluggable
+components spawned by <a href="../../Lucy/Plan/Architecture.html">Architecture</a>’s
+factory methods.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Get_Seg_Name">Get_Seg_Name</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a>*
+<span class="prefix">lucy_</span><strong>SegReader_Get_Seg_Name</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the name of the segment.</p>
+</dd>
+<dt id="func_Get_Seg_Num">Get_Seg_Num</dt>
+<dd>
+<pre><code>int64_t
+<span class="prefix">lucy_</span><strong>SegReader_Get_Seg_Num</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of the segment.</p>
+</dd>
+<dt id="func_Del_Count">Del_Count</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>SegReader_Del_Count</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents which have been marked as deleted but
+not yet purged from the index.</p>
+</dd>
+<dt id="func_Doc_Max">Doc_Max</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>SegReader_Doc_Max</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the maximum number of documents available to the reader, which
+is also the highest possible internal document id.  Documents which
+have been marked as deleted but not yet purged from the index are
+included in this count.</p>
+</dd>
+<dt id="func_Doc_Count">Doc_Count</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>SegReader_Doc_Count</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of documents available to the reader, subtracting
+any that are marked as deleted.</p>
+</dd>
+<dt id="func_Offsets">Offsets</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Object/I32Array.html">I32Array</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>SegReader_Offsets</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array with one entry for each segment, corresponding to
+segment doc_id start offset.</p>
+</dd>
+<dt id="func_Seg_Readers">Seg_Readers</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>SegReader_Seg_Readers</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array of all the SegReaders represented within the
+IndexReader.</p>
+</dd>
+</dl>
+<h4>Methods inherited from Lucy::Index::IndexReader</h4>
+<dl>
+<dt id="func_Obtain">Obtain</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/DataReader.html">DataReader</a>*
+<span class="prefix">lucy_</span><strong>SegReader_Obtain</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>api</strong>
+);
+</code></pre>
+<p>Fetch a component, or throw an error if the component can’t be found.</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataReader subclass that the desired
+component must implement.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Fetch">Fetch</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/DataReader.html">DataReader</a>*
+<span class="prefix">lucy_</span><strong>SegReader_Fetch</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>api</strong>
+);
+</code></pre>
+<p>Fetch a component, or return NULL if the component can’t be
+found.</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataReader subclass that the desired
+component must implement.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h4>Methods inherited from Lucy::Index::DataReader</h4>
+<dl>
+<dt id="func_Aggregator">Aggregator <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/DataReader.html">DataReader</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>SegReader_Aggregator</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a> *<strong>readers</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>offsets</strong>
+);
+</code></pre>
+<p>Create a reader which aggregates the output of several lower level
+readers.  Return NULL if such a reader is not valid.</p>
+<dl>
+<dt>readers</dt>
+<dd><p>An array of DataReaders.</p>
+</dd>
+<dt>offsets</dt>
+<dd><p>Doc id start offsets for each reader.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Get_Schema">Get_Schema</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Plan/Schema.html">Schema</a>*
+<span class="prefix">lucy_</span><strong>SegReader_Get_Schema</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “schema” member var.</p>
+</dd>
+<dt id="func_Get_Folder">Get_Folder</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Store/Folder.html">Folder</a>*
+<span class="prefix">lucy_</span><strong>SegReader_Get_Folder</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “folder” member var.</p>
+</dd>
+<dt id="func_Get_Snapshot">Get_Snapshot</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Snapshot.html">Snapshot</a>*
+<span class="prefix">lucy_</span><strong>SegReader_Get_Snapshot</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “snapshot” member var.</p>
+</dd>
+<dt id="func_Get_Segments">Get_Segments</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Vector.html">Vector</a>*
+<span class="prefix">lucy_</span><strong>SegReader_Get_Segments</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segments” member var.</p>
+</dd>
+<dt id="func_Get_Segment">Get_Segment</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Segment.html">Segment</a>*
+<span class="prefix">lucy_</span><strong>SegReader_Get_Segment</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segment” member var.</p>
+</dd>
+<dt id="func_Get_Seg_Tick">Get_Seg_Tick</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>SegReader_Get_Seg_Tick</strong>(
+    <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “seg_tick” member var.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::SegReader is a <a href="../../Lucy/Index/IndexReader.html">Lucy::Index::IndexReader</a> is a <a href="../../Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/SegWriter.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/SegWriter.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/SegWriter.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/SegWriter.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,251 @@
+Title: Lucy::Index::SegWriter – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::SegWriter</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>SEGWRITER</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>SegWriter</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>SegWriter</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/SegWriter.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::SegWriter – Write one segment of an index.</p>
+<h3>Description</h3>
+<p>SegWriter is a conduit through which information fed to Indexer passes.  It
+manages <a href="../../Lucy/Index/Segment.html">Segment</a> and Inverter, invokes the
+<a href="../../Lucy/Analysis/Analyzer.html">Analyzer</a> chain, and feeds low
+level <a href="../../Lucy/Index/DataWriter.html">DataWriters</a> such as
+PostingListWriter and DocWriter.</p>
+<p>The sub-components of a SegWriter are determined by
+<a href="../../Lucy/Plan/Architecture.html">Architecture</a>.  DataWriter components
+which are added to the stack of writers via <a href="../../Lucy/Index/SegWriter.html#func_Add_Writer">Add_Writer()</a> have
+Add_Inverted_Doc() invoked for each document supplied to SegWriter’s
+<a href="../../Lucy/Index/SegWriter.html#func_Add_Doc">Add_Doc()</a>.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Register">Register</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Register</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>api</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/DataWriter.html">DataWriter</a> *<strong>component</strong> <span class="comment">// decremented</span>
+);
+</code></pre>
+<p>Register a DataWriter component with the SegWriter.  (Note that
+registration simply makes the writer available via <a href="../../Lucy/Index/SegWriter.html#func_Fetch">Fetch()</a>, so you may
+also want to call <a href="../../Lucy/Index/SegWriter.html#func_Add_Writer">Add_Writer()</a>).</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataWriter api which <code>writer</code>
+implements.</p>
+</dd>
+<dt>component</dt>
+<dd><p>A DataWriter.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Fetch">Fetch</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a>*
+<span class="prefix">lucy_</span><strong>SegWriter_Fetch</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>api</strong>
+);
+</code></pre>
+<p>Retrieve a registered component.</p>
+<dl>
+<dt>api</dt>
+<dd><p>The name of the DataWriter api which the component
+implements.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Add_Writer">Add_Writer</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Add_Writer</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/DataWriter.html">DataWriter</a> *<strong>writer</strong> <span class="comment">// decremented</span>
+);
+</code></pre>
+<p>Add a DataWriter to the SegWriter’s stack of writers.</p>
+</dd>
+<dt id="func_Add_Doc">Add_Doc</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Add_Doc</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Document/Doc.html">Doc</a> *<strong>doc</strong>,
+    float <strong>boost</strong>
+);
+</code></pre>
+<p>Add a document to the segment.  Inverts <code>doc</code>, increments
+the Segment’s internal document id, then calls Add_Inverted_Doc(),
+feeding all sub-writers.</p>
+</dd>
+<dt id="func_Add_Segment">Add_Segment</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Add_Segment</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/SegReader.html">SegReader</a> *<strong>reader</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>doc_map</strong>
+);
+</code></pre>
+<p>Add content from an existing segment into the one currently being
+written.</p>
+<dl>
+<dt>reader</dt>
+<dd><p>The SegReader containing content to add.</p>
+</dd>
+<dt>doc_map</dt>
+<dd><p>An array of integers mapping old document ids to
+new.  Deleted documents are mapped to 0, indicating that they should be
+skipped.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Merge_Segment">Merge_Segment</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Merge_Segment</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/SegReader.html">SegReader</a> *<strong>reader</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Object/I32Array.html">I32Array</a> *<strong>doc_map</strong>
+);
+</code></pre>
+<p>Move content from an existing segment into the one currently being
+written.</p>
+<p>The default implementation calls <a href="../../Lucy/Index/SegWriter.html#func_Add_Segment">Add_Segment()</a> then <a href="../../Lucy/Index/SegWriter.html#func_Delete_Segment">Delete_Segment()</a>.</p>
+<dl>
+<dt>reader</dt>
+<dd><p>The SegReader containing content to merge, which must
+represent a segment which is part of the the current snapshot.</p>
+</dd>
+<dt>doc_map</dt>
+<dd><p>An array of integers mapping old document ids to
+new.  Deleted documents are mapped to 0, indicating that they should be
+skipped.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Delete_Segment">Delete_Segment</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Delete_Segment</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>,
+    <span class="prefix">lucy_</span><a href="../../Lucy/Index/SegReader.html">SegReader</a> *<strong>reader</strong>
+);
+</code></pre>
+<p>Remove a segment’s data.  The default implementation is a no-op, as
+all files within the segment directory will be automatically deleted.
+Subclasses which manage their own files outside of the segment system
+should override this method and use it as a trigger for cleaning up
+obsolete data.</p>
+<dl>
+<dt>reader</dt>
+<dd><p>The SegReader containing content to merge, which must
+represent a segment which is part of the the current snapshot.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Finish">Finish</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Finish</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Complete the segment: close all streams, store metadata, etc.</p>
+</dd>
+</dl>
+<h4>Methods inherited from Lucy::Index::DataWriter</h4>
+<dl>
+<dt id="func_Metadata">Metadata</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Hash.html">Hash</a>* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>SegWriter_Metadata</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Arbitrary metadata to be serialized and stored by the Segment.  The
+default implementation supplies a hash with a single key-value pair for
+“format”.</p>
+</dd>
+<dt id="func_Format">Format <span class="comment">(abstract)</span></dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>SegWriter_Format</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Every writer must specify a file format revision number, which should
+increment each time the format changes. Responsibility for revision
+checking is left to the companion DataReader.</p>
+</dd>
+<dt id="func_Get_Snapshot">Get_Snapshot</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Snapshot.html">Snapshot</a>*
+<span class="prefix">lucy_</span><strong>SegWriter_Get_Snapshot</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “snapshot” member var.</p>
+</dd>
+<dt id="func_Get_Segment">Get_Segment</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/Segment.html">Segment</a>*
+<span class="prefix">lucy_</span><strong>SegWriter_Get_Segment</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “segment” member var.</p>
+</dd>
+<dt id="func_Get_PolyReader">Get_PolyReader</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Index/PolyReader.html">PolyReader</a>*
+<span class="prefix">lucy_</span><strong>SegWriter_Get_PolyReader</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “polyreader” member var.</p>
+</dd>
+<dt id="func_Get_Schema">Get_Schema</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Plan/Schema.html">Schema</a>*
+<span class="prefix">lucy_</span><strong>SegWriter_Get_Schema</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “schema” member var.</p>
+</dd>
+<dt id="func_Get_Folder">Get_Folder</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span><a href="../../Lucy/Store/Folder.html">Folder</a>*
+<span class="prefix">lucy_</span><strong>SegWriter_Get_Folder</strong>(
+    <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Accessor for “folder” member var.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::SegWriter is a <a href="../../Lucy/Index/DataWriter.html">Lucy::Index::DataWriter</a> is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>

Added: lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Segment.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Segment.mdtext?rev=1762636&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Segment.mdtext (added)
+++ lucy/site/trunk/content/docs/0.5.0/c/Lucy/Index/Segment.mdtext Wed Sep 28 12:06:24 2016
@@ -0,0 +1,167 @@
+Title: Lucy::Index::Segment – C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::Segment</h2>
+<table>
+<tr>
+<td class="label">parcel</td>
+<td><a href="../../lucy.html">Lucy</a></td>
+</tr>
+<tr>
+<td class="label">class variable</td>
+<td><code><span class="prefix">LUCY_</span>SEGMENT</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Segment</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Seg</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/Segment.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::Segment – Warehouse for information about one segment of an inverted index.</p>
+<h3>Description</h3>
+<p>Apache Lucy’s indexes are made up of individual “segments”, each of which is
+is an independent inverted index.  On the file system, each segment is a
+directory within the main index directory whose name starts with “seg_”:
+“seg_2”, “seg_5a”, etc.</p>
+<p>Each Segment object keeps track of information about an index segment: its
+fields, document count, and so on.  The Segment object itself writes one
+file, <code>segmeta.json</code>; besides storing info needed by Segment
+itself, the “segmeta” file serves as a central repository for metadata
+generated by other index components – relieving them of the burden of
+storing metadata themselves.</p>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Add_Field">Add_Field</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>Seg_Add_Field</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>field</strong>
+);
+</code></pre>
+<p>Register a new field and assign it a field number.  If the field was
+already known, nothing happens.</p>
+<dl>
+<dt>field</dt>
+<dd><p>Field name.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> the field’s field number, which is a positive integer.</p>
+</dd>
+<dt id="func_Store_Metadata">Store_Metadata</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Seg_Store_Metadata</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>key</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>metadata</strong> <span class="comment">// decremented</span>
+);
+</code></pre>
+<p>Store arbitrary information in the segment’s metadata hash, to be
+serialized later.  Throws an error if <code>key</code> is used twice.</p>
+<dl>
+<dt>key</dt>
+<dd><p>String identifying an index component.</p>
+</dd>
+<dt>metadata</dt>
+<dd><p>JSON-izable data structure.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Fetch_Metadata">Fetch_Metadata</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a>*
+<span class="prefix">lucy_</span><strong>Seg_Fetch_Metadata</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>key</strong>
+);
+</code></pre>
+<p>Fetch a value from the Segment’s metadata hash.</p>
+</dd>
+<dt id="func_Field_Num">Field_Num</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>Seg_Field_Num</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>field</strong>
+);
+</code></pre>
+<p>Given a field name, return its field number for this segment (which
+may differ from its number in other segments).  Return 0 (an invalid
+field number) if the field name can’t be found.</p>
+<dl>
+<dt>field</dt>
+<dd><p>Field name.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Field_Name">Field_Name</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a>*
+<span class="prefix">lucy_</span><strong>Seg_Field_Name</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    int32_t <strong>field_num</strong>
+);
+</code></pre>
+<p>Given a field number, return the name of its field, or NULL
+if the field name can’t be found.</p>
+</dd>
+<dt id="func_Get_Name">Get_Name</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a>*
+<span class="prefix">lucy_</span><strong>Seg_Get_Name</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for the object’s seg name.</p>
+</dd>
+<dt id="func_Get_Number">Get_Number</dt>
+<dd>
+<pre><code>int64_t
+<span class="prefix">lucy_</span><strong>Seg_Get_Number</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for the segment number.</p>
+</dd>
+<dt id="func_Set_Count">Set_Count</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Seg_Set_Count</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    int64_t <strong>count</strong>
+);
+</code></pre>
+<p>Setter for the object’s document count.</p>
+</dd>
+<dt id="func_Get_Count">Get_Count</dt>
+<dd>
+<pre><code>int64_t
+<span class="prefix">lucy_</span><strong>Seg_Get_Count</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>
+);
+</code></pre>
+<p>Getter for the object’s document count.</p>
+</dd>
+<dt id="func_Compare_To">Compare_To</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>Seg_Compare_To</strong>(
+    <span class="prefix">lucy_</span>Segment *<strong>self</strong>,
+    <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>other</strong>
+);
+</code></pre>
+<p>Compare by segment number.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Segment is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>