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/04/04 14:55:11 UTC
svn commit: r1737682 [5/8] - in /lucy/site/trunk/content: css/ docs/ docs/c/
docs/c/Clownfish/ docs/c/Clownfish/Docs/ docs/c/Lucy/ docs/c/Lucy/Analysis/
docs/c/Lucy/Docs/ docs/c/Lucy/Docs/Cookbook/ docs/c/Lucy/Docs/Tutorial/
docs/c/Lucy/Document/ docs/...
Added: lucy/site/trunk/content/docs/c/Lucy/Index/IndexManager.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/IndexManager.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/IndexManager.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/IndexManager.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,201 @@
+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_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>IxManager_Destroy</strong>(
+ <span class="prefix">lucy_</span>IndexManager *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<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/c/Lucy/Index/IndexReader.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/IndexReader.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/IndexReader.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/IndexReader.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,195 @@
+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>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>IxReader_Destroy</strong>(
+ <span class="prefix">lucy_</span>IndexReader *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</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/c/Lucy/Index/Indexer.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/Indexer.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/Indexer.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/Indexer.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,262 @@
+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>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Indexer_Destroy</strong>(
+ <span class="prefix">lucy_</span>Indexer *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</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/c/Lucy/Index/Lexicon.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/Lexicon.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/Lexicon.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/Lexicon.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,97 @@
+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_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Lex_Destroy</strong>(
+ <span class="prefix">lucy_</span>Lexicon *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<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/c/Lucy/Index/LexiconReader.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/LexiconReader.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/LexiconReader.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/LexiconReader.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,88 @@
+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>
+<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/c/Lucy/Index/PolyReader.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/PolyReader.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/PolyReader.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/PolyReader.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,155 @@
+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>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>PolyReader_Destroy</strong>(
+ <span class="prefix">lucy_</span>PolyReader *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</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/c/Lucy/Index/PostingList.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/PostingList.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/PostingList.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/PostingList.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,67 @@
+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>
+<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/c/Lucy/Index/PostingListReader.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/PostingListReader.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/PostingListReader.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/PostingListReader.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,70 @@
+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>
+<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/c/Lucy/Index/SegReader.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/SegReader.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/SegReader.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/SegReader.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,121 @@
+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_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegReader_Destroy</strong>(
+ <span class="prefix">lucy_</span>SegReader *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<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>
+<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/c/Lucy/Index/SegWriter.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/SegWriter.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/SegWriter.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/SegWriter.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,191 @@
+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>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>SegWriter_Destroy</strong>(
+ <span class="prefix">lucy_</span>SegWriter *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</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/c/Lucy/Index/Segment.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/Segment.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/Segment.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/Segment.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,177 @@
+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>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Seg_Destroy</strong>(
+ <span class="prefix">lucy_</span>Segment *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Segment is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>
Added: lucy/site/trunk/content/docs/c/Lucy/Index/Similarity.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/Similarity.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/Similarity.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/Similarity.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,112 @@
+Title: Lucy::Index::Similarity â C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::Similarity</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>SIMILARITY</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Similarity</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Sim</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/Similarity.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::Similarity â Judge how well a document matches a query.</p>
+<h3>Description</h3>
+<p>After determining whether a document matches a given query, a score must be
+calculated which indicates how <em>well</em> the document matches the query. The
+Similarity class is used to judge how âsimilarâ the query and the document
+are to each other; the closer the resemblance, they higher the document
+scores.</p>
+<p>The default implementation uses Luceneâs modified cosine similarity
+measure. Subclasses might tweak the existing algorithms, or might be used
+in conjunction with custom Query subclasses to implement arbitrary scoring
+schemes.</p>
+<p>Most of the methods operate on single fields, but some are used to combine
+scores from multiple fields.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Similarity* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>Sim_new</strong>(void);
+</code></pre>
+<p>Constructor. Takes no arguments.</p>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Similarity*
+<span class="prefix">lucy_</span><strong>Sim_init</strong>(
+ <span class="prefix">lucy_</span>Similarity *<strong>self</strong>
+);
+</code></pre>
+<p>Initialize a Similarity.</p>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Length_Norm">Length_Norm</dt>
+<dd>
+<pre><code>float
+<span class="prefix">lucy_</span><strong>Sim_Length_Norm</strong>(
+ <span class="prefix">lucy_</span>Similarity *<strong>self</strong>,
+ uint32_t <strong>num_tokens</strong>
+);
+</code></pre>
+<p>Dampen the scores of long documents.</p>
+<p>After a field is broken up into terms at index-time, each term must be
+assigned a weight. One of the factors in calculating this weight is
+the number of tokens that the original field was broken into.</p>
+<p>Typically, we assume that the more tokens in a field, the less
+important any one of them is â so that, e.g. 5 mentions of âKafkaâ in
+a short article are given more heft than 5 mentions of âKafkaâ in an
+entire book. The default implementation of length_norm expresses this
+using an inverted square root.</p>
+<p>However, the inverted square root has a tendency to reward very short
+fields highly, which isnât always appropriate for fields you expect to
+have a lot of tokens on average.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Sim_Destroy</strong>(
+ <span class="prefix">lucy_</span>Similarity *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<dt id="func_Equals">Equals</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">lucy_</span><strong>Sim_Equals</strong>(
+ <span class="prefix">lucy_</span>Similarity *<strong>self</strong>,
+ <span class="prefix">cfish_</span><a href="../../Clownfish/Obj.html">Obj</a> *<strong>other</strong>
+);
+</code></pre>
+<p>Indicate whether two objects are the same. By default, compares the
+memory address.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another Obj.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Similarity is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>
Added: lucy/site/trunk/content/docs/c/Lucy/Index/Snapshot.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Index/Snapshot.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Index/Snapshot.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Index/Snapshot.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,175 @@
+Title: Lucy::Index::Snapshot â C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Index::Snapshot</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>SNAPSHOT</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>Snapshot</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>Snapshot</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Index/Snapshot.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Index::Snapshot â Point-in-time index file list.</p>
+<h3>Description</h3>
+<p>A Snapshot is list of index files and folders. Because index files, once
+written, are never modified, a Snapshot defines a point-in-time view of the
+data in an index.</p>
+<p><a href="../../Lucy/Index/IndexReader.html">IndexReader</a> objects interpret the data
+associated with a single Snapshot.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Snapshot* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>Snapshot_new</strong>(void);
+</code></pre>
+<p>Constructor. Takes no arguments.</p>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Snapshot*
+<span class="prefix">lucy_</span><strong>Snapshot_init</strong>(
+ <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>
+);
+</code></pre>
+<p>Initialize a Snapshot.</p>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_List">List</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>Snapshot_List</strong>(
+ <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array of all entries.</p>
+</dd>
+<dt id="func_Num_Entries">Num_Entries</dt>
+<dd>
+<pre><code>uint32_t
+<span class="prefix">lucy_</span><strong>Snapshot_Num_Entries</strong>(
+ <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>
+);
+</code></pre>
+<p>Return the number of entries (including directories).</p>
+</dd>
+<dt id="func_Add_Entry">Add_Entry</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Snapshot_Add_Entry</strong>(
+ <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>,
+ <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>entry</strong>
+);
+</code></pre>
+<p>Add a filepath to the snapshot.</p>
+</dd>
+<dt id="func_Delete_Entry">Delete_Entry</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">lucy_</span><strong>Snapshot_Delete_Entry</strong>(
+ <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>,
+ <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>entry</strong>
+);
+</code></pre>
+<p>Delete a filepath from the snapshot.</p>
+<p><strong>Returns:</strong> true if the entry existed and was successfully deleted, false
+otherwise.</p>
+</dd>
+<dt id="func_Read_File">Read_File</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>Snapshot*
+<span class="prefix">lucy_</span><strong>Snapshot_Read_File</strong>(
+ <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>,
+ <span class="prefix">lucy_</span><a href="../../Lucy/Store/Folder.html">Folder</a> *<strong>folder</strong>,
+ <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>path</strong>
+);
+</code></pre>
+<p>Decode a snapshot file and initialize the object to reflect its
+contents.</p>
+<dl>
+<dt>folder</dt>
+<dd><p>A Folder.</p>
+</dd>
+<dt>path</dt>
+<dd><p>The location of the snapshot file. If not supplied, the
+most recent snapshot file in the base directory will be chosen.</p>
+</dd>
+</dl>
+<p><strong>Returns:</strong> the Snapshot object itself</p>
+</dd>
+<dt id="func_Write_File">Write_File</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Snapshot_Write_File</strong>(
+ <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>,
+ <span class="prefix">lucy_</span><a href="../../Lucy/Store/Folder.html">Folder</a> *<strong>folder</strong>,
+ <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>path</strong>
+);
+</code></pre>
+<p>Write a snapshot file. The caller must lock the index while this
+operation takes place, and the operation will fail if the snapshot file
+already exists.</p>
+<dl>
+<dt>folder</dt>
+<dd><p>A Folder.</p>
+</dd>
+<dt>path</dt>
+<dd><p>The path of the file to write. If NULL, a file
+name will be chosen which supersedes the latest snapshot file in the
+index folder.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Set_Path">Set_Path</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Snapshot_Set_Path</strong>(
+ <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>,
+ <span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a> *<strong>path</strong>
+);
+</code></pre>
+<p>Set the path to the file that the Snapshot object serves as a proxy
+for.</p>
+</dd>
+<dt id="func_Get_Path">Get_Path</dt>
+<dd>
+<pre><code><span class="prefix">cfish_</span><a href="../../Clownfish/String.html">String</a>*
+<span class="prefix">lucy_</span><strong>Snapshot_Get_Path</strong>(
+ <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>
+);
+</code></pre>
+<p>Get the path to the snapshot file. Initially NULL; updated
+by <a href="../../Lucy/Index/Snapshot.html#func_Read_File">Read_File()</a>, <a href="../../Lucy/Index/Snapshot.html#func_Write_File">Write_File()</a>, and <a href="../../Lucy/Index/Snapshot.html#func_Set_Path">Set_Path()</a>.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>Snapshot_Destroy</strong>(
+ <span class="prefix">lucy_</span>Snapshot *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Index::Snapshot is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>
Added: lucy/site/trunk/content/docs/c/Lucy/Object/BitVector.mdtext
URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/c/Lucy/Object/BitVector.mdtext?rev=1737682&view=auto
==============================================================================
--- lucy/site/trunk/content/docs/c/Lucy/Object/BitVector.mdtext (added)
+++ lucy/site/trunk/content/docs/c/Lucy/Object/BitVector.mdtext Mon Apr 4 12:55:10 2016
@@ -0,0 +1,287 @@
+Title: Lucy::Object::BitVector â C API Documentation
+
+<div class="c-api">
+<h2>Lucy::Object::BitVector</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>BITVECTOR</code></td>
+</tr>
+<tr>
+<td class="label">struct symbol</td>
+<td><code><span class="prefix">lucy_</span>BitVector</code></td>
+</tr>
+<tr>
+<td class="label">class nickname</td>
+<td><code><span class="prefix">lucy_</span>BitVec</code></td>
+</tr>
+<tr>
+<td class="label">header file</td>
+<td><code>Lucy/Object/BitVector.h</code></td>
+</tr>
+</table>
+<h3>Name</h3>
+<p>Lucy::Object::BitVector â An array of bits.</p>
+<h3>Description</h3>
+<p>BitVector is a growable array of bits. All bits are initially zero.</p>
+<h3>Functions</h3>
+<dl>
+<dt id="func_new">new</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>BitVector* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>BitVec_new</strong>(
+ uint32_t <strong>capacity</strong>
+);
+</code></pre>
+<p>Create a new BitVector.</p>
+<dl>
+<dt>capacity</dt>
+<dd><p>The number of bits that the initial array should be
+able to hold.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_init">init</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>BitVector*
+<span class="prefix">lucy_</span><strong>BitVec_init</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ uint32_t <strong>capacity</strong>
+);
+</code></pre>
+<p>Initialize a BitVector.</p>
+<dl>
+<dt>capacity</dt>
+<dd><p>The number of bits that the initial array should be
+able to hold.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+<h3>Methods</h3>
+<dl>
+<dt id="func_Get">Get</dt>
+<dd>
+<pre><code>bool
+<span class="prefix">lucy_</span><strong>BitVec_Get</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ uint32_t <strong>tick</strong>
+);
+</code></pre>
+<p>Return true if the bit at <code>tick</code> has been set, false if it
+hasnât (regardless of whether it lies within the bounds of the
+objectâs capacity).</p>
+<dl>
+<dt>tick</dt>
+<dd><p>The requested bit.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Set">Set</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Set</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ uint32_t <strong>tick</strong>
+);
+</code></pre>
+<p>Set the bit at <code>tick</code> to 1.</p>
+<dl>
+<dt>tick</dt>
+<dd><p>The bit to be set.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Next_Hit">Next_Hit</dt>
+<dd>
+<pre><code>int32_t
+<span class="prefix">lucy_</span><strong>BitVec_Next_Hit</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ uint32_t <strong>tick</strong>
+);
+</code></pre>
+<p>Returns the next set bit equal to or greater than <code>tick</code>,
+or -1 if no such bit exists.</p>
+</dd>
+<dt id="func_Clear">Clear</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Clear</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ uint32_t <strong>tick</strong>
+);
+</code></pre>
+<p>Clear the indicated bit. (i.e. set it to 0).</p>
+<dl>
+<dt>tick</dt>
+<dd><p>The bit to be cleared.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Clear_All">Clear_All</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Clear_All</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>
+);
+</code></pre>
+<p>Clear all bits.</p>
+</dd>
+<dt id="func_Grow">Grow</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Grow</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ uint32_t <strong>capacity</strong>
+);
+</code></pre>
+<p>If the BitVector does not already have enough room to hold the
+indicated number of bits, allocate more memory so that it can.</p>
+<dl>
+<dt>capacity</dt>
+<dd><p>Least number of bits the BitVector should accomodate.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_And">And</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_And</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ const <span class="prefix">lucy_</span>BitVector *<strong>other</strong>
+);
+</code></pre>
+<p>Modify the BitVector so that only bits which remain set are those
+which 1) were already set in this BitVector, and 2) were also set in
+the other BitVector.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another BitVector.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Or">Or</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Or</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ const <span class="prefix">lucy_</span>BitVector *<strong>other</strong>
+);
+</code></pre>
+<p>Modify the BitVector, setting all bits which are set in the other
+BitVector if they were not already set.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another BitVector.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Xor">Xor</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Xor</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ const <span class="prefix">lucy_</span>BitVector *<strong>other</strong>
+);
+</code></pre>
+<p>Modify the BitVector, performing an XOR operation against the other.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another BitVector.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_And_Not">And_Not</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_And_Not</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ const <span class="prefix">lucy_</span>BitVector *<strong>other</strong>
+);
+</code></pre>
+<p>Modify the BitVector, clearing all bits which are set in the other.</p>
+<dl>
+<dt>other</dt>
+<dd><p>Another BitVector.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Flip">Flip</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Flip</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ uint32_t <strong>tick</strong>
+);
+</code></pre>
+<p>Invert the value of a bit.</p>
+<dl>
+<dt>tick</dt>
+<dd><p>The bit to invert.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Flip_Block">Flip_Block</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Flip_Block</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>,
+ uint32_t <strong>offset</strong>,
+ uint32_t <strong>length</strong>
+);
+</code></pre>
+<p>Invert each bit within a contiguous block.</p>
+<dl>
+<dt>offset</dt>
+<dd><p>Lower bound.</p>
+</dd>
+<dt>length</dt>
+<dd><p>The number of bits to flip.</p>
+</dd>
+</dl>
+</dd>
+<dt id="func_Count">Count</dt>
+<dd>
+<pre><code>uint32_t
+<span class="prefix">lucy_</span><strong>BitVec_Count</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>
+);
+</code></pre>
+<p>Return a count of the number of set bits.</p>
+</dd>
+<dt id="func_To_Array">To_Array</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>BitVec_To_Array</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>
+);
+</code></pre>
+<p>Return an array where each element represents a set bit.</p>
+</dd>
+<dt id="func_Destroy">Destroy</dt>
+<dd>
+<pre><code>void
+<span class="prefix">lucy_</span><strong>BitVec_Destroy</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>
+);
+</code></pre>
+<p>Generic destructor. Frees the struct itself but not any complex
+member elements.</p>
+</dd>
+<dt id="func_Clone">Clone</dt>
+<dd>
+<pre><code><span class="prefix">lucy_</span>BitVector* <span class="comment">// incremented</span>
+<span class="prefix">lucy_</span><strong>BitVec_Clone</strong>(
+ <span class="prefix">lucy_</span>BitVector *<strong>self</strong>
+);
+</code></pre>
+<p>Return a clone of the object.</p>
+</dd>
+</dl>
+<h3>Inheritance</h3>
+<p>Lucy::Object::BitVector is a <a href="../../Clownfish/Obj.html">Clownfish::Obj</a>.</p>
+</div>