Author: buildbot Date: Sun Nov 23 17:43:07 2014 New Revision: 930230 Log: Staging update by buildbot for lucy
Added: websites/staging/lucy/trunk/content/docs/c/ websites/staging/lucy/trunk/content/docs/c/lucy.html websites/staging/lucy/trunk/content/docs/c/lucy_ANDQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_Analyzer.html websites/staging/lucy/trunk/content/docs/c/lucy_Architecture.html websites/staging/lucy/trunk/content/docs/c/lucy_BackgroundMerger.html websites/staging/lucy/trunk/content/docs/c/lucy_BitCollector.html websites/staging/lucy/trunk/content/docs/c/lucy_BitVector.html websites/staging/lucy/trunk/content/docs/c/lucy_BlobType.html websites/staging/lucy/trunk/content/docs/c/lucy_CaseFolder.html websites/staging/lucy/trunk/content/docs/c/lucy_Collector.html websites/staging/lucy/trunk/content/docs/c/lucy_Compiler.html websites/staging/lucy/trunk/content/docs/c/lucy_DataReader.html websites/staging/lucy/trunk/content/docs/c/lucy_DataWriter.html websites/staging/lucy/trunk/content/docs/c/lucy_DeletionsWriter.html websites/staging/lucy/trunk/content/docs/c/lucy_Doc.html websites/staging/lucy/trunk/content/docs/c/lucy_DocReader.html websites/staging/lucy/trunk/content/docs/c/lucy_EasyAnalyzer.html websites/staging/lucy/trunk/content/docs/c/lucy_FSFolder.html websites/staging/lucy/trunk/content/docs/c/lucy_FieldType.html websites/staging/lucy/trunk/content/docs/c/lucy_Folder.html websites/staging/lucy/trunk/content/docs/c/lucy_FullTextType.html websites/staging/lucy/trunk/content/docs/c/lucy_Highlighter.html websites/staging/lucy/trunk/content/docs/c/lucy_HitDoc.html websites/staging/lucy/trunk/content/docs/c/lucy_Hits.html websites/staging/lucy/trunk/content/docs/c/lucy_IndexManager.html websites/staging/lucy/trunk/content/docs/c/lucy_IndexReader.html websites/staging/lucy/trunk/content/docs/c/lucy_IndexSearcher.html websites/staging/lucy/trunk/content/docs/c/lucy_Indexer.html websites/staging/lucy/trunk/content/docs/c/lucy_LeafQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_Lexicon.html websites/staging/lucy/trunk/content/docs/c/lucy_LexiconReader.html websites/staging/lucy/trunk/content/docs/c/lucy_Lock.html websites/staging/lucy/trunk/content/docs/c/lucy_LockErr.html websites/staging/lucy/trunk/content/docs/c/lucy_LockFactory.html websites/staging/lucy/trunk/content/docs/c/lucy_MatchAllQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_Matcher.html websites/staging/lucy/trunk/content/docs/c/lucy_NOTQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_NoMatchQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_Normalizer.html websites/staging/lucy/trunk/content/docs/c/lucy_ORQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_PhraseQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_PolyAnalyzer.html websites/staging/lucy/trunk/content/docs/c/lucy_PolyQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_PolyReader.html websites/staging/lucy/trunk/content/docs/c/lucy_PolySearcher.html websites/staging/lucy/trunk/content/docs/c/lucy_PostingList.html websites/staging/lucy/trunk/content/docs/c/lucy_PostingListReader.html websites/staging/lucy/trunk/content/docs/c/lucy_ProximityQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_Query.html websites/staging/lucy/trunk/content/docs/c/lucy_QueryParser.html websites/staging/lucy/trunk/content/docs/c/lucy_RAMFolder.html websites/staging/lucy/trunk/content/docs/c/lucy_RangeQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_RegexTokenizer.html websites/staging/lucy/trunk/content/docs/c/lucy_RequiredOptionalQuery.html websites/staging/lucy/trunk/content/docs/c/lucy_Schema.html websites/staging/lucy/trunk/content/docs/c/lucy_Searcher.html websites/staging/lucy/trunk/content/docs/c/lucy_SegReader.html websites/staging/lucy/trunk/content/docs/c/lucy_SegWriter.html websites/staging/lucy/trunk/content/docs/c/lucy_Segment.html websites/staging/lucy/trunk/content/docs/c/lucy_Similarity.html websites/staging/lucy/trunk/content/docs/c/lucy_Snapshot.html websites/staging/lucy/trunk/content/docs/c/lucy_SnowballStemmer.html websites/staging/lucy/trunk/content/docs/c/lucy_SnowballStopFilter.html websites/staging/lucy/trunk/content/docs/c/lucy_SortRule.html websites/staging/lucy/trunk/content/docs/c/lucy_SortSpec.html websites/staging/lucy/trunk/content/docs/c/lucy_Span.html websites/staging/lucy/trunk/content/docs/c/lucy_StandardTokenizer.html websites/staging/lucy/trunk/content/docs/c/lucy_StringType.html websites/staging/lucy/trunk/content/docs/c/lucy_TermQuery.html Modified: websites/staging/lucy/trunk/content/ (props changed) Propchange: websites/staging/lucy/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Sun Nov 23 17:43:07 2014 @@ -1 +1 @@ -1629096 +1641230 Added: websites/staging/lucy/trunk/content/docs/c/lucy.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>C API documentation for Lucy</h1> +<ul> +<li><a href="lucy_Analyzer.html">Lucy::Analysis::Analyzer</a></li> +<li><a href="lucy_CaseFolder.html">Lucy::Analysis::CaseFolder</a></li> +<li><a href="lucy_EasyAnalyzer.html">Lucy::Analysis::EasyAnalyzer</a></li> +<li><a href="lucy_Normalizer.html">Lucy::Analysis::Normalizer</a></li> +<li><a href="lucy_PolyAnalyzer.html">Lucy::Analysis::PolyAnalyzer</a></li> +<li><a href="lucy_RegexTokenizer.html">Lucy::Analysis::RegexTokenizer</a></li> +<li><a href="lucy_SnowballStemmer.html">Lucy::Analysis::SnowballStemmer</a></li> +<li><a href="lucy_SnowballStopFilter.html">Lucy::Analysis::SnowballStopFilter</a></li> +<li><a href="lucy_StandardTokenizer.html">Lucy::Analysis::StandardTokenizer</a></li> +<li><a href="lucy_Doc.html">Lucy::Document::Doc</a></li> +<li><a href="lucy_HitDoc.html">Lucy::Document::HitDoc</a></li> +<li><a href="lucy_Highlighter.html">Lucy::Highlight::Highlighter</a></li> +<li><a href="lucy_BackgroundMerger.html">Lucy::Index::BackgroundMerger</a></li> +<li><a href="lucy_DataReader.html">Lucy::Index::DataReader</a></li> +<li><a href="lucy_DataWriter.html">Lucy::Index::DataWriter</a></li> +<li><a href="lucy_DeletionsWriter.html">Lucy::Index::DeletionsWriter</a></li> +<li><a href="lucy_DocReader.html">Lucy::Index::DocReader</a></li> +<li><a href="lucy_IndexManager.html">Lucy::Index::IndexManager</a></li> +<li><a href="lucy_IndexReader.html">Lucy::Index::IndexReader</a></li> +<li><a href="lucy_Indexer.html">Lucy::Index::Indexer</a></li> +<li><a href="lucy_Lexicon.html">Lucy::Index::Lexicon</a></li> +<li><a href="lucy_LexiconReader.html">Lucy::Index::LexiconReader</a></li> +<li><a href="lucy_PolyReader.html">Lucy::Index::PolyReader</a></li> +<li><a href="lucy_PostingList.html">Lucy::Index::PostingList</a></li> +<li><a href="lucy_PostingListReader.html">Lucy::Index::PostingListReader</a></li> +<li><a href="lucy_SegReader.html">Lucy::Index::SegReader</a></li> +<li><a href="lucy_SegWriter.html">Lucy::Index::SegWriter</a></li> +<li><a href="lucy_Segment.html">Lucy::Index::Segment</a></li> +<li><a href="lucy_Similarity.html">Lucy::Index::Similarity</a></li> +<li><a href="lucy_Snapshot.html">Lucy::Index::Snapshot</a></li> +<li><a href="lucy_BitVector.html">Lucy::Object::BitVector</a></li> +<li><a href="lucy_Architecture.html">Lucy::Plan::Architecture</a></li> +<li><a href="lucy_BlobType.html">Lucy::Plan::BlobType</a></li> +<li><a href="lucy_FieldType.html">Lucy::Plan::FieldType</a></li> +<li><a href="lucy_FullTextType.html">Lucy::Plan::FullTextType</a></li> +<li><a href="lucy_Schema.html">Lucy::Plan::Schema</a></li> +<li><a href="lucy_StringType.html">Lucy::Plan::StringType</a></li> +<li><a href="lucy_ANDQuery.html">Lucy::Search::ANDQuery</a></li> +<li><a href="lucy_Collector.html">Lucy::Search::Collector</a></li> +<li><a href="lucy_BitCollector.html">Lucy::Search::Collector::BitCollector</a></li> +<li><a href="lucy_Compiler.html">Lucy::Search::Compiler</a></li> +<li><a href="lucy_Hits.html">Lucy::Search::Hits</a></li> +<li><a href="lucy_IndexSearcher.html">Lucy::Search::IndexSearcher</a></li> +<li><a href="lucy_LeafQuery.html">Lucy::Search::LeafQuery</a></li> +<li><a href="lucy_MatchAllQuery.html">Lucy::Search::MatchAllQuery</a></li> +<li><a href="lucy_Matcher.html">Lucy::Search::Matcher</a></li> +<li><a href="lucy_NOTQuery.html">Lucy::Search::NOTQuery</a></li> +<li><a href="lucy_NoMatchQuery.html">Lucy::Search::NoMatchQuery</a></li> +<li><a href="lucy_ORQuery.html">Lucy::Search::ORQuery</a></li> +<li><a href="lucy_PhraseQuery.html">Lucy::Search::PhraseQuery</a></li> +<li><a href="lucy_PolyQuery.html">Lucy::Search::PolyQuery</a></li> +<li><a href="lucy_PolySearcher.html">Lucy::Search::PolySearcher</a></li> +<li><a href="lucy_Query.html">Lucy::Search::Query</a></li> +<li><a href="lucy_QueryParser.html">Lucy::Search::QueryParser</a></li> +<li><a href="lucy_RangeQuery.html">Lucy::Search::RangeQuery</a></li> +<li><a href="lucy_RequiredOptionalQuery.html">Lucy::Search::RequiredOptionalQuery</a></li> +<li><a href="lucy_Searcher.html">Lucy::Search::Searcher</a></li> +<li><a href="lucy_SortRule.html">Lucy::Search::SortRule</a></li> +<li><a href="lucy_SortSpec.html">Lucy::Search::SortSpec</a></li> +<li><a href="lucy_Span.html">Lucy::Search::Span</a></li> +<li><a href="lucy_TermQuery.html">Lucy::Search::TermQuery</a></li> +<li><a href="lucy_FSFolder.html">Lucy::Store::FSFolder</a></li> +<li><a href="lucy_Folder.html">Lucy::Store::Folder</a></li> +<li><a href="lucy_Lock.html">Lucy::Store::Lock</a></li> +<li><a href="lucy_LockErr.html">Lucy::Store::LockErr</a></li> +<li><a href="lucy_LockFactory.html">Lucy::Store::LockFactory</a></li> +<li><a href="lucy_RAMFolder.html">Lucy::Store::RAMFolder</a></li> +<li><a href="lucy_ProximityQuery.html">LucyX::Search::ProximityQuery</a></li> +</ul> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_ANDQuery.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_ANDQuery.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_ANDQuery.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,148 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Search::ANDQuery</h1> +<h2>Name</h2> +<p>Lucy::Search::ANDQuery - Intersect multiple result sets.</p> +<h2>Description</h2> +<p>ANDQuery is a composite <a href="lucy_Query.html">Query</a> which matches +only when all of its children match, so its result set is the intersection +of their result sets. Documents which match receive a summed score.</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_ANDQuery* +<strong>lucy_ANDQuery_init</strong>( + lucy_ANDQuery* <strong>self</strong>, + <a href="cfish_VArray.html">cfish_VArray*</a> <strong>children</strong> +); +</code></pre> +<dl> +<dt><emph>children</emph></dt> +<dd><p>An array of child Queries.</p> +</dd> +</dl> +</dd> +</dl> +<h2>Methods</h2> +<h3>Methods inherited from Lucy::Search::PolyQuery</h3><dl> +<dt>Add_Child</dt> +<dd> +<pre><code>void +<strong>LUCY_PolyQuery_Add_Child</strong>( + lucy_PolyQuery* <strong>self</strong>, + <a href="lucy_Query.html">lucy_Query*</a> <strong>query</strong> +); +</code></pre> +<p>Add a child Query node.</p> +</dd> +</dl> +<h3>Methods inherited from Lucy::Search::Query</h3><dl> +<dt>Make_Compiler</dt> +<dd> +<pre><code><a href="lucy_Compiler.html">lucy_Compiler*</a> // incremented +<strong>LUCY_Query_Make_Compiler</strong>( + lucy_Query* <strong>self</strong>, + <a href="lucy_Searcher.html">lucy_Searcher*</a> <strong>searcher</strong>, + float <strong>boost</strong>, + bool <strong>subordinate</strong> +); +</code></pre> +<p>Abstract factory method returning a Compiler derived from this Query.</p> +<dl> +<dt><emph>searcher</emph></dt> +<dd><p>A Searcher.</p> +</dd> +<dt><emph>boost</emph></dt> +<dd><p>A scoring multiplier.</p> +</dd> +<dt><emph>subordinate</emph></dt> +<dd><p>Indicates whether the Query is a subquery (as +opposed to a top-level query). If false, the implementation must +invoke Normalize() on the newly minted Compiler object before returning +it.</p> +</dd> +</dl> +</dd> +<dt>Set_Boost</dt> +<dd> +<pre><code>void +<strong>LUCY_Query_Set_Boost</strong>( + lucy_Query* <strong>self</strong>, + float <strong>boost</strong> +); +</code></pre> +<p>Set the Query's boost.</p> +</dd> +<dt>Get_Boost</dt> +<dd> +<pre><code>float +<strong>LUCY_Query_Get_Boost</strong>( + lucy_Query* <strong>self</strong> +); +</code></pre> +<p>Get the Query's boost.</p> +</dd> +<dt>Serialize</dt> +<dd> +<pre><code>void +<strong>LUCY_Query_Serialize</strong>( + lucy_Query* <strong>self</strong>, + <a href="lucy_OutStream.html">lucy_OutStream*</a> <strong>outstream</strong> +); +</code></pre> +</dd> +<dt>Deserialize</dt> +<dd> +<pre><code>lucy_Query* // incremented +<strong>LUCY_Query_Deserialize</strong>( + lucy_Query* <strong>self</strong>, // decremented + <a href="lucy_InStream.html">lucy_InStream*</a> <strong>instream</strong> +); +</code></pre> +</dd> +<dt>Dump</dt> +<dd> +<pre><code><a href="cfish_Obj.html">cfish_Obj*</a> // incremented +<strong>LUCY_Query_Dump</strong>( + lucy_Query* <strong>self</strong> +); +</code></pre> +</dd> +<dt>Load</dt> +<dd> +<pre><code><a href="cfish_Obj.html">cfish_Obj*</a> // incremented +<strong>LUCY_Query_Load</strong>( + lucy_Query* <strong>self</strong>, + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>dump</strong> +); +</code></pre> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Search::ANDQuery is a <a href="lucy_PolyQuery.html">Lucy::Search::PolyQuery</a> is a <a href="lucy_Query.html">Lucy::Search::Query</a> is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_Analyzer.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_Analyzer.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_Analyzer.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,108 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Analysis::Analyzer</h1> +<h2>Name</h2> +<p>Lucy::Analysis::Analyzer - Tokenize/modify/filter text.</p> +<h2>Description</h2> +<p>An Analyzer is a filter which processes text, transforming it from one form +into another. For instance, an analyzer might break up a long text into +smaller pieces (<a href="lucy_RegexTokenizer.html">RegexTokenizer</a>), or it +might perform case folding to facilitate case-insensitive search +(<a href="lucy_Normalizer.html">Normalizer</a>).</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_Analyzer* +<strong>lucy_Analyzer_init</strong>( + lucy_Analyzer* <strong>self</strong> +); +</code></pre> +</dd> +</dl> +<h2>Methods</h2> +<h3>Abstract methods</h3> +<dl> +<dt>Transform</dt> +<dd> +<pre><code><a href="lucy_Inversion.html">lucy_Inversion*</a> // incremented +<strong>LUCY_Analyzer_Transform</strong>( + lucy_Analyzer* <strong>self</strong>, + <a href="lucy_Inversion.html">lucy_Inversion*</a> <strong>inversion</strong> +); +</code></pre> +<p>Take a single <a href="lucy_Inversion.html">Inversion</a> as input +and returns an Inversion, either the same one (presumably transformed +in some way), or a new one.</p> +</dd> +</dl> +<h3>Novel methods</h3> +<dl> +<dt>Transform_Text</dt> +<dd> +<pre><code><a href="lucy_Inversion.html">lucy_Inversion*</a> // incremented +<strong>LUCY_Analyzer_Transform_Text</strong>( + lucy_Analyzer* <strong>self</strong>, + <a href="cfish_String.html">cfish_String*</a> <strong>text</strong> +); +</code></pre> +<p>Kick off an analysis chain, creating an Inversion from string input. +The default implementation simply creates an initial Inversion with a +single Token, then calls Transform(), but occasionally subclasses will +provide an optimized implementation which minimizes string copies.</p> +</dd> +<dt>Split</dt> +<dd> +<pre><code><a href="cfish_VArray.html">cfish_VArray*</a> // incremented +<strong>LUCY_Analyzer_Split</strong>( + lucy_Analyzer* <strong>self</strong>, + <a href="cfish_String.html">cfish_String*</a> <strong>text</strong> +); +</code></pre> +<p>Analyze text and return an array of token texts.</p> +</dd> +<dt>Dump</dt> +<dd> +<pre><code><a href="cfish_Obj.html">cfish_Obj*</a> // incremented +<strong>LUCY_Analyzer_Dump</strong>( + lucy_Analyzer* <strong>self</strong> +); +</code></pre> +</dd> +<dt>Load</dt> +<dd> +<pre><code><a href="cfish_Obj.html">cfish_Obj*</a> // incremented +<strong>LUCY_Analyzer_Load</strong>( + lucy_Analyzer* <strong>self</strong>, + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>dump</strong> +); +</code></pre> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Analysis::Analyzer is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_Architecture.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_Architecture.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_Architecture.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,299 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Plan::Architecture</h1> +<h2>Name</h2> +<p>Lucy::Plan::Architecture - Configure major components of an index.</p> +<h2>Description</h2> +<p>By default, a Lucy index consists of several main parts: lexicon, +postings, stored documents, deletions, and highlight data. The readers and +writers for that data are spawned by Architecture. Each component operates +at the segment level; Architecture's factory methods are used to build up +<a href="lucy_SegWriter.html">SegWriter</a> and +<a href="lucy_SegReader.html">SegReader</a>.</p> +<h2>Functions</h2> +<dl> +<dt>new</dt> +<dd> +<pre><code>lucy_Architecture* // incremented +<strong>lucy_Arch_new</strong>(void); +</code></pre> +</dd> +<dt>init</dt> +<dd> +<pre><code>lucy_Architecture* +<strong>lucy_Arch_init</strong>( + lucy_Architecture* <strong>self</strong> +); +</code></pre> +<p>Constructor. Takes no arguments.</p> +</dd> +</dl> +<h2>Methods</h2> +<h3>Novel methods</h3> +<dl> +<dt>Init_Seg_Writer</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Init_Seg_Writer</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegWriter.html">lucy_SegWriter*</a> <strong>writer</strong> +); +</code></pre> +<p>Initialize a SegWriter, adding DataWriter components.</p> +<dl> +<dt><emph>writer</emph></dt> +<dd><p>A SegWriter.</p> +</dd> +</dl> +</dd> +<dt>Register_Lexicon_Writer</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Lexicon_Writer</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegWriter.html">lucy_SegWriter*</a> <strong>writer</strong> +); +</code></pre> +<p>Spawn a LexiconWriter and Register() it with the supplied SegWriter, +but don't add it to the SegWriter's writer stack.</p> +<dl> +<dt><emph>writer</emph></dt> +<dd><p>A SegWriter.</p> +</dd> +</dl> +</dd> +<dt>Register_Posting_List_Writer</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Posting_List_Writer</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegWriter.html">lucy_SegWriter*</a> <strong>writer</strong> +); +</code></pre> +<p>Spawn a PostingListWriter and Register() it with the supplied +SegWriter, adding it to the SegWriter's writer stack. The SegWriter +must contain a previously registered LexiconWriter.</p> +<dl> +<dt><emph>writer</emph></dt> +<dd><p>A SegWriter.</p> +</dd> +</dl> +</dd> +<dt>Register_Doc_Writer</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Doc_Writer</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegWriter.html">lucy_SegWriter*</a> <strong>writer</strong> +); +</code></pre> +<p>Spawn a DataWriter and Register() it with the supplied SegWriter, +adding it to the SegWriter's writer stack.</p> +<dl> +<dt><emph>writer</emph></dt> +<dd><p>A SegWriter.</p> +</dd> +</dl> +</dd> +<dt>Register_Sort_Writer</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Sort_Writer</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegWriter.html">lucy_SegWriter*</a> <strong>writer</strong> +); +</code></pre> +<p>Spawn a SortWriter and Register() it with the supplied SegWriter, +adding it to the SegWriter's writer stack.</p> +<dl> +<dt><emph>writer</emph></dt> +<dd><p>A SegWriter.</p> +</dd> +</dl> +</dd> +<dt>Register_Highlight_Writer</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Highlight_Writer</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegWriter.html">lucy_SegWriter*</a> <strong>writer</strong> +); +</code></pre> +<p>Spawn a HighlightWriter and Register() it with the supplied SegWriter, +adding it to the SegWriter's writer stack.</p> +<dl> +<dt><emph>writer</emph></dt> +<dd><p>A SegWriter.</p> +</dd> +</dl> +</dd> +<dt>Register_Deletions_Writer</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Deletions_Writer</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegWriter.html">lucy_SegWriter*</a> <strong>writer</strong> +); +</code></pre> +<p>Spawn a DeletionsWriter and Register() it with the supplied SegWriter, +also calling Set_Del_Writer().</p> +<dl> +<dt><emph>writer</emph></dt> +<dd><p>A SegWriter.</p> +</dd> +</dl> +</dd> +<dt>Init_Seg_Reader</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Init_Seg_Reader</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong> +); +</code></pre> +<p>Initialize a SegReader, registering DataReaders.</p> +</dd> +<dt>Register_Doc_Reader</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Doc_Reader</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong> +); +</code></pre> +<p>Spawn a DocReader and Register() it with the supplied SegReader.</p> +<dl> +<dt><emph>reader</emph></dt> +<dd><p>A SegReader.</p> +</dd> +</dl> +</dd> +<dt>Register_Posting_List_Reader</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Posting_List_Reader</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong> +); +</code></pre> +<p>Spawn a PostingListReader and Register() it with the supplied SegReader.</p> +<dl> +<dt><emph>reader</emph></dt> +<dd><p>A SegReader.</p> +</dd> +</dl> +</dd> +<dt>Register_Sort_Reader</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Sort_Reader</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong> +); +</code></pre> +<p>Spawn a SortReader and Register() it with the supplied SegReader.</p> +<dl> +<dt><emph>reader</emph></dt> +<dd><p>A SegReader.</p> +</dd> +</dl> +</dd> +<dt>Register_Highlight_Reader</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Highlight_Reader</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong> +); +</code></pre> +<p>Spawn a HighlightReader and Register() it with the supplied +SegReader.</p> +<dl> +<dt><emph>reader</emph></dt> +<dd><p>A SegReader.</p> +</dd> +</dl> +</dd> +<dt>Register_Lexicon_Reader</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Lexicon_Reader</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong> +); +</code></pre> +<p>Spawn a LexiconReader and Register() it with the supplied SegReader.</p> +<dl> +<dt><emph>reader</emph></dt> +<dd><p>A SegReader.</p> +</dd> +</dl> +</dd> +<dt>Register_Deletions_Reader</dt> +<dd> +<pre><code>void +<strong>LUCY_Arch_Register_Deletions_Reader</strong>( + lucy_Architecture* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong> +); +</code></pre> +<p>Spawn a DeletionsReader and Register() it with the supplied SegReader.</p> +<dl> +<dt><emph>reader</emph></dt> +<dd><p>A SegReader.</p> +</dd> +</dl> +</dd> +<dt>Make_Similarity</dt> +<dd> +<pre><code><a href="lucy_Similarity.html">lucy_Similarity*</a> // incremented +<strong>LUCY_Arch_Make_Similarity</strong>( + lucy_Architecture* <strong>self</strong> +); +</code></pre> +<p>Factory method for creating a new Similarity object.</p> +</dd> +<dt>Index_Interval</dt> +<dd> +<pre><code>int32_t +<strong>LUCY_Arch_Index_Interval</strong>( + lucy_Architecture* <strong>self</strong> +); +</code></pre> +</dd> +<dt>Skip_Interval</dt> +<dd> +<pre><code>int32_t +<strong>LUCY_Arch_Skip_Interval</strong>( + lucy_Architecture* <strong>self</strong> +); +</code></pre> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Plan::Architecture is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_BackgroundMerger.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_BackgroundMerger.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_BackgroundMerger.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,109 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Index::BackgroundMerger</h1> +<h2>Name</h2> +<p>Lucy::Index::BackgroundMerger - Consolidate index segments in the background.</p> +<h2>Description</h2> +<p>Adding documents to an index is usually fast, but every once in a while the +index must be compacted and an update takes substantially longer to +complete. See L<Lucy::Docs::Cookbook::FastUpdates> for how to use +this class to control worst-case index update performance.</p> +<p>As with <a href="lucy_Indexer.html">Indexer</a>, see +L<Lucy::Docs::FileLocking> if your index is on a shared volume.</p> +<h2>Functions</h2> +<dl> +<dt>new</dt> +<dd> +<pre><code>lucy_BackgroundMerger* // incremented +<strong>lucy_BGMerger_new</strong>( + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>index</strong>, + <a href="lucy_IndexManager.html">lucy_IndexManager*</a> <strong>manager</strong> +); +</code></pre> +</dd> +<dt>init</dt> +<dd> +<pre><code>lucy_BackgroundMerger* +<strong>lucy_BGMerger_init</strong>( + lucy_BackgroundMerger* <strong>self</strong>, + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>index</strong>, + <a href="lucy_IndexManager.html">lucy_IndexManager*</a> <strong>manager</strong> +); +</code></pre> +<p>Open a new BackgroundMerger.</p> +<dl> +<dt><emph>index</emph></dt> +<dd><p>Either a string filepath or a Folder.</p> +</dd> +<dt><emph>manager</emph></dt> +<dd><p>An IndexManager. If not supplied, an IndexManager with +a 10-second write lock timeout will be created.</p> +</dd> +</dl> +</dd> +</dl> +<h2>Methods</h2> +<h3>Novel methods</h3> +<dl> +<dt>Optimize</dt> +<dd> +<pre><code>void +<strong>LUCY_BGMerger_Optimize</strong>( + lucy_BackgroundMerger* <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> +</dd> +<dt>Commit</dt> +<dd> +<pre><code>void +<strong>LUCY_BGMerger_Commit</strong>( + lucy_BackgroundMerger* <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>Calls Prepare_Commit() implicitly if it has not already been called.</p> +</dd> +<dt>Prepare_Commit</dt> +<dd> +<pre><code>void +<strong>LUCY_BGMerger_Prepare_Commit</strong>( + lucy_BackgroundMerger* <strong>self</strong> +); +</code></pre> +<p>Perform the expensive setup for Commit() in advance, so that Commit() +completes quickly.</p> +<p>Towards the end of Prepare_Commit(), the BackgroundMerger attempts to +re-acquire the write lock, which is then held until Commit() finishes +and releases it.</p> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Index::BackgroundMerger is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_BitCollector.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_BitCollector.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_BitCollector.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,113 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Search::Collector::BitCollector</h1> +<h2>Name</h2> +<p>Lucy::Search::Collector::BitCollector - Collector which records doc nums in a BitVector.</p> +<h2>Description</h2> +<p>BitCollector is a Collector which saves matching document ids in a +<a href="lucy_BitVector.html">BitVector</a>. It is useful for recording the +entire set of documents which matches a query.</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_BitCollector* +<strong>lucy_BitColl_init</strong>( + lucy_BitCollector* <strong>self</strong>, + <a href="lucy_BitVector.html">lucy_BitVector*</a> <strong>bit_vector</strong> +); +</code></pre> +<dl> +<dt><emph>bit_vector</emph></dt> +<dd><p>A Lucy::Object::BitVector.</p> +</dd> +</dl> +</dd> +</dl> +<h2>Methods</h2> +<h3>Methods inherited from Lucy::Search::Collector</h3><dl> +<dt>Collect</dt> +<dd> +<pre><code>void +<strong>LUCY_Coll_Collect</strong>( + lucy_Collector* <strong>self</strong>, + int32_t <strong>doc_id</strong> +); +</code></pre> +<p>Do something with a doc id. (For instance, keep track of the docs +with the ten highest scores.)</p> +<dl> +<dt><emph>doc_id</emph></dt> +<dd><p>A segment document id.</p> +</dd> +</dl> +</dd> +<dt>Set_Reader</dt> +<dd> +<pre><code>void +<strong>LUCY_Coll_Set_Reader</strong>( + lucy_Collector* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong> +); +</code></pre> +<p>Setter for "reader".</p> +</dd> +<dt>Set_Base</dt> +<dd> +<pre><code>void +<strong>LUCY_Coll_Set_Base</strong>( + lucy_Collector* <strong>self</strong>, + int32_t <strong>base</strong> +); +</code></pre> +<p>Set the "base" document id, an offset which must be added to the +<code>doc_id</code> supplied via Collect() to get the doc id for the +larger index.</p> +</dd> +<dt>Need_Score</dt> +<dd> +<pre><code>bool +<strong>LUCY_Coll_Need_Score</strong>( + lucy_Collector* <strong>self</strong> +); +</code></pre> +<p>Indicate whether the Collector will call Score() on its Matcher.</p> +</dd> +<dt>Set_Matcher</dt> +<dd> +<pre><code>void +<strong>LUCY_Coll_Set_Matcher</strong>( + lucy_Collector* <strong>self</strong>, + <a href="lucy_Matcher.html">lucy_Matcher*</a> <strong>matcher</strong> +); +</code></pre> +<p>Setter for "matcher".</p> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Search::Collector::BitCollector is a <a href="lucy_Collector.html">Lucy::Search::Collector</a> is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_BitVector.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_BitVector.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_BitVector.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,254 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Object::BitVector</h1> +<h2>Name</h2> +<p>Lucy::Object::BitVector - An array of bits.</p> +<h2>Description</h2> +<p>BitVector is a growable array of bits. All bits are initially zero.</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_BitVector* +<strong>lucy_BitVec_init</strong>( + lucy_BitVector* <strong>self</strong>, + uint32_t <strong>capacity</strong> +); +</code></pre> +<dl> +<dt><emph>capacity</emph></dt> +<dd><p>The number of bits that the initial array should be +able to hold.</p> +</dd> +</dl> +</dd> +</dl> +<h2>Methods</h2> +<h3>Novel methods</h3> +<dl> +<dt>Get</dt> +<dd> +<pre><code>bool +<strong>LUCY_BitVec_Get</strong>( + lucy_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><emph>tick</emph></dt> +<dd><p>The requested bit.</p> +</dd> +</dl> +</dd> +<dt>Set</dt> +<dd> +<pre><code>void +<strong>LUCY_BitVec_Set</strong>( + lucy_BitVector* <strong>self</strong>, + uint32_t <strong>tick</strong> +); +</code></pre> +<p>Set the bit at <code>tick</code> to 1.</p> +<dl> +<dt><emph>tick</emph></dt> +<dd><p>The bit to be set.</p> +</dd> +</dl> +</dd> +<dt>Next_Hit</dt> +<dd> +<pre><code>int32_t +<strong>LUCY_BitVec_Next_Hit</strong>( + lucy_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>Clear</dt> +<dd> +<pre><code>void +<strong>LUCY_BitVec_Clear</strong>( + lucy_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><emph>tick</emph></dt> +<dd><p>The bit to be cleared.</p> +</dd> +</dl> +</dd> +<dt>Clear_All</dt> +<dd> +<pre><code>void +<strong>LUCY_BitVec_Clear_All</strong>( + lucy_BitVector* <strong>self</strong> +); +</code></pre> +<p>Clear all bits.</p> +</dd> +<dt>Grow</dt> +<dd> +<pre><code>void +<strong>LUCY_BitVec_Grow</strong>( + lucy_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><emph>capacity</emph></dt> +<dd><p>Least number of bits the BitVector should accomodate.</p> +</dd> +</dl> +</dd> +<dt>And</dt> +<dd> +<pre><code>void +<strong>LUCY_BitVec_And</strong>( + lucy_BitVector* <strong>self</strong>, + const lucy_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><emph>other</emph></dt> +<dd><p>Another BitVector.</p> +</dd> +</dl> +</dd> +<dt>Or</dt> +<dd> +<pre><code>void +<strong>LUCY_BitVec_Or</strong>( + lucy_BitVector* <strong>self</strong>, + const lucy_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><emph>other</emph></dt> +<dd><p>Another BitVector.</p> +</dd> +</dl> +</dd> +<dt>Xor</dt> +<dd> +<pre><code>void +<strong>LUCY_BitVec_Xor</strong>( + lucy_BitVector* <strong>self</strong>, + const lucy_BitVector* <strong>other</strong> +); +</code></pre> +<p>Modify the BitVector, performing an XOR operation against the other.</p> +<dl> +<dt><emph>other</emph></dt> +<dd><p>Another BitVector.</p> +</dd> +</dl> +</dd> +<dt>And_Not</dt> +<dd> +<pre><code>void +<strong>LUCY_BitVec_And_Not</strong>( + lucy_BitVector* <strong>self</strong>, + const lucy_BitVector* <strong>other</strong> +); +</code></pre> +<p>Modify the BitVector, clearing all bits which are set in the other.</p> +<dl> +<dt><emph>other</emph></dt> +<dd><p>Another BitVector.</p> +</dd> +</dl> +</dd> +<dt>Flip</dt> +<dd> +<pre><code>void +<strong>LUCY_BitVec_Flip</strong>( + lucy_BitVector* <strong>self</strong>, + uint32_t <strong>tick</strong> +); +</code></pre> +<p>Invert the value of a bit.</p> +<dl> +<dt><emph>tick</emph></dt> +<dd><p>The bit to invert.</p> +</dd> +</dl> +</dd> +<dt>Flip_Block</dt> +<dd> +<pre><code>void +<strong>LUCY_BitVec_Flip_Block</strong>( + lucy_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><emph>offset</emph></dt> +<dd><p>Lower bound.</p> +</dd> +<dt><emph>length</emph></dt> +<dd><p>The number of bits to flip.</p> +</dd> +</dl> +</dd> +<dt>Count</dt> +<dd> +<pre><code>uint32_t +<strong>LUCY_BitVec_Count</strong>( + lucy_BitVector* <strong>self</strong> +); +</code></pre> +<p>Return a count of the number of set bits.</p> +</dd> +<dt>To_Array</dt> +<dd> +<pre><code><a href="lucy_I32Array.html">lucy_I32Array*</a> // incremented +<strong>LUCY_BitVec_To_Array</strong>( + lucy_BitVector* <strong>self</strong> +); +</code></pre> +<p>Return an array where each element represents a set bit.</p> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Object::BitVector is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_BlobType.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_BlobType.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_BlobType.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,179 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Plan::BlobType</h1> +<h2>Name</h2> +<p>Lucy::Plan::BlobType - Default behaviors for binary fields.</p> +<h2>Description</h2> +<p>BlobType is an implementation of FieldType tuned for use with fields +containing binary data, which cannot be indexed or searched -- only stored.</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_BlobType* +<strong>lucy_BlobType_init</strong>( + lucy_BlobType* <strong>self</strong>, + bool <strong>stored</strong> +); +</code></pre> +<dl> +<dt><emph>stored</emph></dt> +<dd><p>boolean indicating whether the field should be stored.</p> +</dd> +</dl> +</dd> +<dt>new</dt> +<dd> +<pre><code>lucy_BlobType* // incremented +<strong>lucy_BlobType_new</strong>( + bool <strong>stored</strong> +); +</code></pre> +</dd> +</dl> +<h2>Methods</h2> +<h3>Methods inherited from Lucy::Plan::FieldType</h3><dl> +<dt>Set_Boost</dt> +<dd> +<pre><code>void +<strong>LUCY_FType_Set_Boost</strong>( + lucy_FieldType* <strong>self</strong>, + float <strong>boost</strong> +); +</code></pre> +<p>Setter for <code>boost</code>.</p> +</dd> +<dt>Get_Boost</dt> +<dd> +<pre><code>float +<strong>LUCY_FType_Get_Boost</strong>( + lucy_FieldType* <strong>self</strong> +); +</code></pre> +<p>Accessor for <code>boost</code>.</p> +</dd> +<dt>Set_Indexed</dt> +<dd> +<pre><code>void +<strong>LUCY_FType_Set_Indexed</strong>( + lucy_FieldType* <strong>self</strong>, + bool <strong>indexed</strong> +); +</code></pre> +<p>Setter for <code>indexed</code>.</p> +</dd> +<dt>Indexed</dt> +<dd> +<pre><code>bool +<strong>LUCY_FType_Indexed</strong>( + lucy_FieldType* <strong>self</strong> +); +</code></pre> +<p>Accessor for <code>indexed</code>.</p> +</dd> +<dt>Set_Stored</dt> +<dd> +<pre><code>void +<strong>LUCY_FType_Set_Stored</strong>( + lucy_FieldType* <strong>self</strong>, + bool <strong>stored</strong> +); +</code></pre> +<p>Setter for <code>stored</code>.</p> +</dd> +<dt>Stored</dt> +<dd> +<pre><code>bool +<strong>LUCY_FType_Stored</strong>( + lucy_FieldType* <strong>self</strong> +); +</code></pre> +<p>Accessor for <code>stored</code>.</p> +</dd> +<dt>Set_Sortable</dt> +<dd> +<pre><code>void +<strong>LUCY_FType_Set_Sortable</strong>( + lucy_FieldType* <strong>self</strong>, + bool <strong>sortable</strong> +); +</code></pre> +<p>Setter for <code>sortable</code>.</p> +</dd> +<dt>Sortable</dt> +<dd> +<pre><code>bool +<strong>LUCY_FType_Sortable</strong>( + lucy_FieldType* <strong>self</strong> +); +</code></pre> +<p>Accessor for <code>sortable</code>.</p> +</dd> +<dt>Binary</dt> +<dd> +<pre><code>bool +<strong>LUCY_FType_Binary</strong>( + lucy_FieldType* <strong>self</strong> +); +</code></pre> +<p>Indicate whether the field contains binary data.</p> +</dd> +<dt>Compare_Values</dt> +<dd> +<pre><code>int32_t +<strong>LUCY_FType_Compare_Values</strong>( + lucy_FieldType* <strong>self</strong>, + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>a</strong>, + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>b</strong> +); +</code></pre> +<p>Compare two values for the field. The default implementation +dispatches to the Compare_To() method of argument <code>a</code>.</p> +<p><strong>Returns:</strong> a negative number if a is "less than" b, 0 if they are "equal", +and a positive number if a is "greater than" b.</p> +</dd> +<dt>Dump</dt> +<dd> +<pre><code><a href="cfish_Obj.html">cfish_Obj*</a> // incremented +<strong>LUCY_FType_Dump</strong>( + lucy_FieldType* <strong>self</strong> +); +</code></pre> +</dd> +<dt>Load</dt> +<dd> +<pre><code><a href="cfish_Obj.html">cfish_Obj*</a> // incremented +<strong>LUCY_FType_Load</strong>( + lucy_FieldType* <strong>self</strong>, + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>dump</strong> +); +</code></pre> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Plan::BlobType is a <a href="lucy_FieldType.html">Lucy::Plan::FieldType</a> is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_CaseFolder.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_CaseFolder.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_CaseFolder.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,104 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Analysis::CaseFolder</h1> +<h2>Name</h2> +<p>Lucy::Analysis::CaseFolder - Normalize case, facilitating case-insensitive search.</p> +<h2>Description</h2> +<p>CaseFolder is DEPRECATED. Use <a href="lucy_Normalizer.html">Normalizer</a> +instead.</p> +<p>CaseFolder normalizes text according to Unicode case-folding rules, so that +searches will be case-insensitive.</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_CaseFolder* +<strong>lucy_CaseFolder_init</strong>( + lucy_CaseFolder* <strong>self</strong> +); +</code></pre> +<p>Constructor. Takes no arguments.</p> +</dd> +</dl> +<h2>Methods</h2> +<h3>Methods inherited from Lucy::Analysis::Analyzer</h3><dl> +<dt>Transform</dt> +<dd> +<pre><code><a href="lucy_Inversion.html">lucy_Inversion*</a> // incremented +<strong>LUCY_Analyzer_Transform</strong>( + lucy_Analyzer* <strong>self</strong>, + <a href="lucy_Inversion.html">lucy_Inversion*</a> <strong>inversion</strong> +); +</code></pre> +<p>Take a single <a href="lucy_Inversion.html">Inversion</a> as input +and returns an Inversion, either the same one (presumably transformed +in some way), or a new one.</p> +</dd> +<dt>Transform_Text</dt> +<dd> +<pre><code><a href="lucy_Inversion.html">lucy_Inversion*</a> // incremented +<strong>LUCY_Analyzer_Transform_Text</strong>( + lucy_Analyzer* <strong>self</strong>, + <a href="cfish_String.html">cfish_String*</a> <strong>text</strong> +); +</code></pre> +<p>Kick off an analysis chain, creating an Inversion from string input. +The default implementation simply creates an initial Inversion with a +single Token, then calls Transform(), but occasionally subclasses will +provide an optimized implementation which minimizes string copies.</p> +</dd> +<dt>Split</dt> +<dd> +<pre><code><a href="cfish_VArray.html">cfish_VArray*</a> // incremented +<strong>LUCY_Analyzer_Split</strong>( + lucy_Analyzer* <strong>self</strong>, + <a href="cfish_String.html">cfish_String*</a> <strong>text</strong> +); +</code></pre> +<p>Analyze text and return an array of token texts.</p> +</dd> +<dt>Dump</dt> +<dd> +<pre><code><a href="cfish_Obj.html">cfish_Obj*</a> // incremented +<strong>LUCY_Analyzer_Dump</strong>( + lucy_Analyzer* <strong>self</strong> +); +</code></pre> +</dd> +<dt>Load</dt> +<dd> +<pre><code><a href="cfish_Obj.html">cfish_Obj*</a> // incremented +<strong>LUCY_Analyzer_Load</strong>( + lucy_Analyzer* <strong>self</strong>, + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>dump</strong> +); +</code></pre> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Analysis::CaseFolder is a <a href="lucy_Analyzer.html">Lucy::Analysis::Analyzer</a> is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_Collector.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_Collector.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_Collector.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,116 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Search::Collector</h1> +<h2>Name</h2> +<p>Lucy::Search::Collector - Process hits.</p> +<h2>Description</h2> +<p>A Collector decides what to do with the hits that a +<a href="lucy_Matcher.html">Matcher</a> iterates through, based on how the +abstract Collect() method is implemented.</p> +<p>Collectors operate on individual segments, but must operate within the +context of a larger collection. Each time the collector moves to a new +segment, Set_Reader(), Set_Base() and Set_Matcher() will be called, and the +collector must take the updated information into account.</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_Collector* +<strong>lucy_Coll_init</strong>( + lucy_Collector* <strong>self</strong> +); +</code></pre> +<p>Abstract constructor. Takes no arguments.</p> +</dd> +</dl> +<h2>Methods</h2> +<h3>Abstract methods</h3> +<dl> +<dt>Collect</dt> +<dd> +<pre><code>void +<strong>LUCY_Coll_Collect</strong>( + lucy_Collector* <strong>self</strong>, + int32_t <strong>doc_id</strong> +); +</code></pre> +<p>Do something with a doc id. (For instance, keep track of the docs +with the ten highest scores.)</p> +<dl> +<dt><emph>doc_id</emph></dt> +<dd><p>A segment document id.</p> +</dd> +</dl> +</dd> +<dt>Need_Score</dt> +<dd> +<pre><code>bool +<strong>LUCY_Coll_Need_Score</strong>( + lucy_Collector* <strong>self</strong> +); +</code></pre> +<p>Indicate whether the Collector will call Score() on its Matcher.</p> +</dd> +</dl> +<h3>Novel methods</h3> +<dl> +<dt>Set_Reader</dt> +<dd> +<pre><code>void +<strong>LUCY_Coll_Set_Reader</strong>( + lucy_Collector* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong> +); +</code></pre> +<p>Setter for "reader".</p> +</dd> +<dt>Set_Base</dt> +<dd> +<pre><code>void +<strong>LUCY_Coll_Set_Base</strong>( + lucy_Collector* <strong>self</strong>, + int32_t <strong>base</strong> +); +</code></pre> +<p>Set the "base" document id, an offset which must be added to the +<code>doc_id</code> supplied via Collect() to get the doc id for the +larger index.</p> +</dd> +<dt>Set_Matcher</dt> +<dd> +<pre><code>void +<strong>LUCY_Coll_Set_Matcher</strong>( + lucy_Collector* <strong>self</strong>, + <a href="lucy_Matcher.html">lucy_Matcher*</a> <strong>matcher</strong> +); +</code></pre> +<p>Setter for "matcher".</p> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Search::Collector is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_Compiler.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_Compiler.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_Compiler.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,311 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Search::Compiler</h1> +<h2>Name</h2> +<p>Lucy::Search::Compiler - Query-to-Matcher compiler.</p> +<h2>Description</h2> +<p>The purpose of the Compiler class is to take a specification in the form of +a <a href="lucy_Query.html">Query</a> object and compile a +<a href="lucy_Matcher.html">Matcher</a> object that can do real work.</p> +<p>The simplest Compiler subclasses -- such as those associated with +constant-scoring Query types -- might simply implement a Make_Matcher() +method which passes along information verbatim from the Query to the +Matcher's constructor.</p> +<p>However it is common for the Compiler to perform some calculations which +affect it's "weight" -- a floating point multiplier that the Matcher will +factor into each document's score. If that is the case, then the Compiler +subclass may wish to override Get_Weight(), Sum_Of_Squared_Weights(), and +Apply_Norm_Factor().</p> +<p>Compiling a Matcher is a two stage process.</p> +<p>The first stage takes place during the Compiler's construction, which is +where the Query object meets a <a href="lucy_Searcher.html">Searcher</a> +object for the first time. Searchers operate on a specific document +collection and they can tell you certain statistical information about the +collection -- such as how many total documents are in the collection, or +how many documents in the collection a particular term is present in. +Lucy's core Compiler classes plug this information into the classic +TF/IDF weighting algorithm to adjust the Compiler's weight; custom +subclasses might do something similar.</p> +<p>The second stage of compilation is Make_Matcher(), method, which is where +the Compiler meets a <a href="lucy_SegReader.html">SegReader</a> object. +SegReaders are associated with a single segment within a single index on a +single machine, and are thus lower-level than Searchers, which may +represent a document collection spread out over a search cluster +(comprising several indexes and many segments). The Compiler object can +use new information supplied by the SegReader -- such as whether a term is +missing from the local index even though it is present within the larger +collection represented by the Searcher -- when figuring out what to feed to +the Matchers's constructor, or whether Make_Matcher() should return a +Matcher at all.</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_Compiler* +<strong>lucy_Compiler_init</strong>( + lucy_Compiler* <strong>self</strong>, + <a href="lucy_Query.html">lucy_Query*</a> <strong>parent</strong>, + <a href="lucy_Searcher.html">lucy_Searcher*</a> <strong>searcher</strong>, + <a href="lucy_Similarity.html">lucy_Similarity*</a> <strong>similarity</strong>, + float <strong>boost</strong> +); +</code></pre> +<p>Abstract constructor.</p> +<dl> +<dt><emph>parent</emph></dt> +<dd><p>The parent Query.</p> +</dd> +<dt><emph>searcher</emph></dt> +<dd><p>A Lucy::Search::Searcher, such as an +IndexSearcher.</p> +</dd> +<dt><emph>similarity</emph></dt> +<dd><p>A Similarity.</p> +</dd> +<dt><emph>boost</emph></dt> +<dd><p>An arbitrary scoring multiplier. Defaults to the boost of +the parent Query.</p> +</dd> +</dl> +</dd> +</dl> +<h2>Methods</h2> +<h3>Abstract methods</h3> +<dl> +<dt>Make_Matcher</dt> +<dd> +<pre><code><a href="lucy_Matcher.html">lucy_Matcher*</a> // incremented +<strong>LUCY_Compiler_Make_Matcher</strong>( + lucy_Compiler* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong>, + bool <strong>need_score</strong> +); +</code></pre> +<p>Factory method returning a Matcher.</p> +<dl> +<dt><emph>reader</emph></dt> +<dd><p>A SegReader.</p> +</dd> +<dt><emph>need_score</emph></dt> +<dd><p>Indicate whether the Matcher must implement Score().</p> +</dd> +</dl> +<p><strong>Returns:</strong> a Matcher, or NULL if the Matcher would have matched no +documents.</p> +</dd> +</dl> +<h3>Novel methods</h3> +<dl> +<dt>Get_Weight</dt> +<dd> +<pre><code>float +<strong>LUCY_Compiler_Get_Weight</strong>( + lucy_Compiler* <strong>self</strong> +); +</code></pre> +<p>Return the Compiler's numerical weight, a scoring multiplier. By +default, returns the object's boost.</p> +</dd> +<dt>Get_Similarity</dt> +<dd> +<pre><code><a href="lucy_Similarity.html">lucy_Similarity*</a> +<strong>LUCY_Compiler_Get_Similarity</strong>( + lucy_Compiler* <strong>self</strong> +); +</code></pre> +<p>Accessor for the Compiler's Similarity object.</p> +</dd> +<dt>Get_Parent</dt> +<dd> +<pre><code><a href="lucy_Query.html">lucy_Query*</a> +<strong>LUCY_Compiler_Get_Parent</strong>( + lucy_Compiler* <strong>self</strong> +); +</code></pre> +<p>Accessor for the Compiler's parent Query object.</p> +</dd> +<dt>Sum_Of_Squared_Weights</dt> +<dd> +<pre><code>float +<strong>LUCY_Compiler_Sum_Of_Squared_Weights</strong>( + lucy_Compiler* <strong>self</strong> +); +</code></pre> +<p>Compute and return a raw weighting factor. (This quantity is used by +Normalize()). By default, simply returns 1.0.</p> +</dd> +<dt>Apply_Norm_Factor</dt> +<dd> +<pre><code>void +<strong>LUCY_Compiler_Apply_Norm_Factor</strong>( + lucy_Compiler* <strong>self</strong>, + float <strong>factor</strong> +); +</code></pre> +<p>Apply a floating point normalization multiplier. For a TermCompiler, +this involves multiplying its own weight by the supplied factor; +combining classes such as ORCompiler would apply the factor recursively +to their children.</p> +<p>The default implementation is a no-op; subclasses may wish to multiply +their internal weight by the supplied factor.</p> +<dl> +<dt><emph>factor</emph></dt> +<dd><p>The multiplier.</p> +</dd> +</dl> +</dd> +<dt>Normalize</dt> +<dd> +<pre><code>void +<strong>LUCY_Compiler_Normalize</strong>( + lucy_Compiler* <strong>self</strong> +); +</code></pre> +<p>Take a newly minted Compiler object and apply query-specific +normalization factors. Should be invoked by Query subclasses during +Make_Compiler() for top-level nodes.</p> +<p>For a TermQuery, the scoring formula is approximately:</p> +<pre><code>(tf_d * idf_t / norm_d) * (tf_q * idf_t / norm_q) +</code></pre> +<p>Normalize() is theoretically concerned with applying the second half of +that formula to a the Compiler's weight. What actually happens depends +on how the Compiler and Similarity methods called internally are +implemented.</p> +</dd> +<dt>Highlight_Spans</dt> +<dd> +<pre><code><a href="cfish_VArray.html">cfish_VArray*</a> // incremented +<strong>LUCY_Compiler_Highlight_Spans</strong>( + lucy_Compiler* <strong>self</strong>, + <a href="lucy_Searcher.html">lucy_Searcher*</a> <strong>searcher</strong>, + <a href="lucy_DocVector.html">lucy_DocVector*</a> <strong>doc_vec</strong>, + <a href="cfish_String.html">cfish_String*</a> <strong>field</strong> +); +</code></pre> +<p>Return an array of Span objects, indicating where in the given field +the text that matches the parent Query occurs and how well each snippet +matches. The Span's offset and length are measured in Unicode code +points.</p> +<p>The default implementation returns an empty array.</p> +<dl> +<dt><emph>searcher</emph></dt> +<dd><p>A Searcher.</p> +</dd> +<dt><emph>doc_vec</emph></dt> +<dd><p>A DocVector.</p> +</dd> +<dt><emph>field</emph></dt> +<dd><p>The name of the field.</p> +</dd> +</dl> +</dd> +</dl> +<h3>Methods inherited from Lucy::Search::Query</h3><dl> +<dt>Make_Compiler</dt> +<dd> +<pre><code><a href="lucy_Compiler.html">lucy_Compiler*</a> // incremented +<strong>LUCY_Query_Make_Compiler</strong>( + lucy_Query* <strong>self</strong>, + <a href="lucy_Searcher.html">lucy_Searcher*</a> <strong>searcher</strong>, + float <strong>boost</strong>, + bool <strong>subordinate</strong> +); +</code></pre> +<p>Abstract factory method returning a Compiler derived from this Query.</p> +<dl> +<dt><emph>searcher</emph></dt> +<dd><p>A Searcher.</p> +</dd> +<dt><emph>boost</emph></dt> +<dd><p>A scoring multiplier.</p> +</dd> +<dt><emph>subordinate</emph></dt> +<dd><p>Indicates whether the Query is a subquery (as +opposed to a top-level query). If false, the implementation must +invoke Normalize() on the newly minted Compiler object before returning +it.</p> +</dd> +</dl> +</dd> +<dt>Set_Boost</dt> +<dd> +<pre><code>void +<strong>LUCY_Query_Set_Boost</strong>( + lucy_Query* <strong>self</strong>, + float <strong>boost</strong> +); +</code></pre> +<p>Set the Query's boost.</p> +</dd> +<dt>Get_Boost</dt> +<dd> +<pre><code>float +<strong>LUCY_Query_Get_Boost</strong>( + lucy_Query* <strong>self</strong> +); +</code></pre> +<p>Get the Query's boost.</p> +</dd> +<dt>Serialize</dt> +<dd> +<pre><code>void +<strong>LUCY_Query_Serialize</strong>( + lucy_Query* <strong>self</strong>, + <a href="lucy_OutStream.html">lucy_OutStream*</a> <strong>outstream</strong> +); +</code></pre> +</dd> +<dt>Deserialize</dt> +<dd> +<pre><code>lucy_Query* // incremented +<strong>LUCY_Query_Deserialize</strong>( + lucy_Query* <strong>self</strong>, // decremented + <a href="lucy_InStream.html">lucy_InStream*</a> <strong>instream</strong> +); +</code></pre> +</dd> +<dt>Dump</dt> +<dd> +<pre><code><a href="cfish_Obj.html">cfish_Obj*</a> // incremented +<strong>LUCY_Query_Dump</strong>( + lucy_Query* <strong>self</strong> +); +</code></pre> +</dd> +<dt>Load</dt> +<dd> +<pre><code><a href="cfish_Obj.html">cfish_Obj*</a> // incremented +<strong>LUCY_Query_Load</strong>( + lucy_Query* <strong>self</strong>, + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>dump</strong> +); +</code></pre> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Search::Compiler is a <a href="lucy_Query.html">Lucy::Search::Query</a> is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_DataReader.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_DataReader.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_DataReader.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,165 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Index::DataReader</h1> +<h2>Name</h2> +<p>Lucy::Index::DataReader - Abstract base class for reading index data.</p> +<h2>Description</h2> +<p>DataReader is the companion class to +<a href="lucy_DataWriter.html">DataWriter</a>. Every index component will +implement one of each.</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_DataReader* +<strong>lucy_DataReader_init</strong>( + lucy_DataReader* <strong>self</strong>, + <a href="lucy_Schema.html">lucy_Schema*</a> <strong>schema</strong>, + <a href="lucy_Folder.html">lucy_Folder*</a> <strong>folder</strong>, + <a href="lucy_Snapshot.html">lucy_Snapshot*</a> <strong>snapshot</strong>, + <a href="cfish_VArray.html">cfish_VArray*</a> <strong>segments</strong>, + int32_t <strong>seg_tick</strong> +); +</code></pre> +<dl> +<dt><emph>schema</emph></dt> +<dd><p>A Schema.</p> +</dd> +<dt><emph>folder</emph></dt> +<dd><p>A Folder.</p> +</dd> +<dt><emph>snapshot</emph></dt> +<dd><p>A Snapshot.</p> +</dd> +<dt><emph>segments</emph></dt> +<dd><p>An array of Segments.</p> +</dd> +<dt><emph>seg_tick</emph></dt> +<dd><p>The array index of the Segment object within the +<code>segments</code> array that this particular DataReader is assigned +to, if any. A value of -1 indicates that no Segment should be +assigned.</p> +</dd> +</dl> +</dd> +</dl> +<h2>Methods</h2> +<h3>Abstract methods</h3> +<dl> +<dt>Aggregator</dt> +<dd> +<pre><code>lucy_DataReader* // incremented +<strong>LUCY_DataReader_Aggregator</strong>( + lucy_DataReader* <strong>self</strong>, + <a href="cfish_VArray.html">cfish_VArray*</a> <strong>readers</strong>, + <a href="lucy_I32Array.html">lucy_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><emph>readers</emph></dt> +<dd><p>An array of DataReaders.</p> +</dd> +<dt><emph>offsets</emph></dt> +<dd><p>Doc id start offsets for each reader.</p> +</dd> +</dl> +</dd> +<dt>Close</dt> +<dd> +<pre><code>void +<strong>LUCY_DataReader_Close</strong>( + lucy_DataReader* <strong>self</strong> +); +</code></pre> +<p>Release external resources, e.g. streams. Implementations must be +safe for multiple calls. Once called, no other operations may be +performed upon either the reader or any component subreaders other than +object destruction.</p> +</dd> +</dl> +<h3>Novel methods</h3> +<dl> +<dt>Get_Schema</dt> +<dd> +<pre><code><a href="lucy_Schema.html">lucy_Schema*</a> +<strong>LUCY_DataReader_Get_Schema</strong>( + lucy_DataReader* <strong>self</strong> +); +</code></pre> +<p>Accessor for "schema" member var.</p> +</dd> +<dt>Get_Folder</dt> +<dd> +<pre><code><a href="lucy_Folder.html">lucy_Folder*</a> +<strong>LUCY_DataReader_Get_Folder</strong>( + lucy_DataReader* <strong>self</strong> +); +</code></pre> +<p>Accessor for "folder" member var.</p> +</dd> +<dt>Get_Snapshot</dt> +<dd> +<pre><code><a href="lucy_Snapshot.html">lucy_Snapshot*</a> +<strong>LUCY_DataReader_Get_Snapshot</strong>( + lucy_DataReader* <strong>self</strong> +); +</code></pre> +<p>Accessor for "snapshot" member var.</p> +</dd> +<dt>Get_Segments</dt> +<dd> +<pre><code><a href="cfish_VArray.html">cfish_VArray*</a> +<strong>LUCY_DataReader_Get_Segments</strong>( + lucy_DataReader* <strong>self</strong> +); +</code></pre> +<p>Accessor for "segments" member var.</p> +</dd> +<dt>Get_Segment</dt> +<dd> +<pre><code><a href="lucy_Segment.html">lucy_Segment*</a> +<strong>LUCY_DataReader_Get_Segment</strong>( + lucy_DataReader* <strong>self</strong> +); +</code></pre> +<p>Accessor for "segment" member var.</p> +</dd> +<dt>Get_Seg_Tick</dt> +<dd> +<pre><code>int32_t +<strong>LUCY_DataReader_Get_Seg_Tick</strong>( + lucy_DataReader* <strong>self</strong> +); +</code></pre> +<p>Accessor for "seg_tick" member var.</p> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Index::DataReader is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_DataWriter.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_DataWriter.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_DataWriter.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,237 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Index::DataWriter</h1> +<h2>Name</h2> +<p>Lucy::Index::DataWriter - Write data to an index.</p> +<h2>Description</h2> +<p>DataWriter is an abstract base class for writing index data, generally in +segment-sized chunks. Each component of an index -- e.g. stored fields, +lexicon, postings, deletions -- is represented by a +DataWriter/<a href="lucy_DataReader.html">DataReader</a> pair.</p> +<p>Components may be specified per index by subclassing +<a href="lucy_Architecture.html">Architecture</a>.</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_DataWriter* +<strong>lucy_DataWriter_init</strong>( + lucy_DataWriter* <strong>self</strong>, + <a href="lucy_Schema.html">lucy_Schema*</a> <strong>schema</strong>, + <a href="lucy_Snapshot.html">lucy_Snapshot*</a> <strong>snapshot</strong>, + <a href="lucy_Segment.html">lucy_Segment*</a> <strong>segment</strong>, + <a href="lucy_PolyReader.html">lucy_PolyReader*</a> <strong>polyreader</strong> +); +</code></pre> +<dl> +<dt><emph>snapshot</emph></dt> +<dd><p>The Snapshot that will be committed at the end of the +indexing session.</p> +</dd> +<dt><emph>segment</emph></dt> +<dd><p>The Segment in progress.</p> +</dd> +<dt><emph>polyreader</emph></dt> +<dd><p>A PolyReader representing all existing data in the +index. (If the index is brand new, the PolyReader will have no +sub-readers).</p> +</dd> +</dl> +</dd> +</dl> +<h2>Methods</h2> +<h3>Abstract methods</h3> +<dl> +<dt>Add_Inverted_Doc</dt> +<dd> +<pre><code>void +<strong>LUCY_DataWriter_Add_Inverted_Doc</strong>( + lucy_DataWriter* <strong>self</strong>, + <a href="lucy_Inverter.html">lucy_Inverter*</a> <strong>inverter</strong>, + int32_t <strong>doc_id</strong> +); +</code></pre> +<p>Process a document, previously inverted by <code>inverter</code>.</p> +<dl> +<dt><emph>inverter</emph></dt> +<dd><p>An Inverter wrapping an inverted document.</p> +</dd> +<dt><emph>doc_id</emph></dt> +<dd><p>Internal number assigned to this document within the +segment.</p> +</dd> +</dl> +</dd> +<dt>Add_Segment</dt> +<dd> +<pre><code>void +<strong>LUCY_DataWriter_Add_Segment</strong>( + lucy_DataWriter* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong>, + <a href="lucy_I32Array.html">lucy_I32Array*</a> <strong>doc_map</strong> +); +</code></pre> +<p>Add content from an existing segment into the one currently being +written.</p> +<dl> +<dt><emph>reader</emph></dt> +<dd><p>The SegReader containing content to add.</p> +</dd> +<dt><emph>doc_map</emph></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>Finish</dt> +<dd> +<pre><code>void +<strong>LUCY_DataWriter_Finish</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Complete the segment: close all streams, store metadata, etc.</p> +</dd> +<dt>Format</dt> +<dd> +<pre><code>int32_t +<strong>LUCY_DataWriter_Format</strong>( + lucy_DataWriter* <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> +</dl> +<h3>Novel methods</h3> +<dl> +<dt>Delete_Segment</dt> +<dd> +<pre><code>void +<strong>LUCY_DataWriter_Delete_Segment</strong>( + lucy_DataWriter* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_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><emph>reader</emph></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>Merge_Segment</dt> +<dd> +<pre><code>void +<strong>LUCY_DataWriter_Merge_Segment</strong>( + lucy_DataWriter* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong>, + <a href="lucy_I32Array.html">lucy_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 Add_Segment() then Delete_Segment().</p> +<dl> +<dt><emph>reader</emph></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><emph>doc_map</emph></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>Metadata</dt> +<dd> +<pre><code><a href="cfish_Hash.html">cfish_Hash*</a> // incremented +<strong>LUCY_DataWriter_Metadata</strong>( + lucy_DataWriter* <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>Get_Snapshot</dt> +<dd> +<pre><code><a href="lucy_Snapshot.html">lucy_Snapshot*</a> +<strong>LUCY_DataWriter_Get_Snapshot</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Accessor for "snapshot" member var.</p> +</dd> +<dt>Get_Segment</dt> +<dd> +<pre><code><a href="lucy_Segment.html">lucy_Segment*</a> +<strong>LUCY_DataWriter_Get_Segment</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Accessor for "segment" member var.</p> +</dd> +<dt>Get_PolyReader</dt> +<dd> +<pre><code><a href="lucy_PolyReader.html">lucy_PolyReader*</a> +<strong>LUCY_DataWriter_Get_PolyReader</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Accessor for "polyreader" member var.</p> +</dd> +<dt>Get_Schema</dt> +<dd> +<pre><code><a href="lucy_Schema.html">lucy_Schema*</a> +<strong>LUCY_DataWriter_Get_Schema</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Accessor for "schema" member var.</p> +</dd> +<dt>Get_Folder</dt> +<dd> +<pre><code><a href="lucy_Folder.html">lucy_Folder*</a> +<strong>LUCY_DataWriter_Get_Folder</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Accessor for "folder" member var.</p> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Index::DataWriter is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_DeletionsWriter.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_DeletionsWriter.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_DeletionsWriter.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,319 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Index::DeletionsWriter</h1> +<h2>Name</h2> +<p>Lucy::Index::DeletionsWriter - Abstract base class for marking documents as deleted.</p> +<h2>Description</h2> +<p>Subclasses of DeletionsWriter provide a low-level mechanism for declaring a +document deleted from an index.</p> +<p>Because files in an index are never modified, and because it is not +practical to delete entire segments, a DeletionsWriter does not actually +remove documents from the index. Instead, it communicates to a search-time +companion DeletionsReader which documents are deleted in such a way that it +can create a Matcher iterator.</p> +<p>Documents are truly deleted only when the segments which contain them are +merged into new ones.</p> +<h2>Methods</h2> +<h3>Abstract methods</h3> +<dl> +<dt>Delete_By_Term</dt> +<dd> +<pre><code>void +<strong>LUCY_DelWriter_Delete_By_Term</strong>( + lucy_DeletionsWriter* <strong>self</strong>, + <a href="cfish_String.html">cfish_String*</a> <strong>field</strong>, + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>term</strong> +); +</code></pre> +<p>Delete all documents in the index that index the supplied term.</p> +<dl> +<dt><emph>field</emph></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><emph>term</emph></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>Delete_By_Query</dt> +<dd> +<pre><code>void +<strong>LUCY_DelWriter_Delete_By_Query</strong>( + lucy_DeletionsWriter* <strong>self</strong>, + <a href="lucy_Query.html">lucy_Query*</a> <strong>query</strong> +); +</code></pre> +<p>Delete all documents in the index that match <code>query</code>.</p> +<dl> +<dt><emph>query</emph></dt> +<dd><p>A <a href="lucy_Query.html">Query</a>.</p> +</dd> +</dl> +</dd> +<dt>Delete_By_Doc_ID</dt> +<dd> +<pre><code>void +<strong>LUCY_DelWriter_Delete_By_Doc_ID</strong>( + lucy_DeletionsWriter* <strong>self</strong>, + int32_t <strong>doc_id</strong> +); +</code></pre> +<p>Delete the document identified in the PolyReader by the supplied id.</p> +</dd> +<dt>Updated</dt> +<dd> +<pre><code>bool +<strong>LUCY_DelWriter_Updated</strong>( + lucy_DeletionsWriter* <strong>self</strong> +); +</code></pre> +<p>Returns true if there are updates that need to be written.</p> +</dd> +<dt>Seg_Deletions</dt> +<dd> +<pre><code><a href="lucy_Matcher.html">lucy_Matcher*</a> // incremented +<strong>LUCY_DelWriter_Seg_Deletions</strong>( + lucy_DeletionsWriter* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>seg_reader</strong> +); +</code></pre> +<p>Return a deletions iterator for the supplied SegReader, which must be +a component within the PolyReader that was supplied at +construction-time.</p> +</dd> +<dt>Seg_Del_Count</dt> +<dd> +<pre><code>int32_t +<strong>LUCY_DelWriter_Seg_Del_Count</strong>( + lucy_DeletionsWriter* <strong>self</strong>, + <a href="cfish_String.html">cfish_String*</a> <strong>seg_name</strong> +); +</code></pre> +<p>Return the number of deletions for a given segment.</p> +<dl> +<dt><emph>seg_name</emph></dt> +<dd><p>The name of the segment.</p> +</dd> +</dl> +</dd> +</dl> +<h3>Novel methods</h3> +<dl> +<dt>Generate_Doc_Map</dt> +<dd> +<pre><code><a href="lucy_I32Array.html">lucy_I32Array*</a> // incremented +<strong>LUCY_DelWriter_Generate_Doc_Map</strong>( + lucy_DeletionsWriter* <strong>self</strong>, + <a href="lucy_Matcher.html">lucy_Matcher*</a> <strong>deletions</strong>, + int32_t <strong>doc_max</strong>, + int32_t <strong>offset</strong> +); +</code></pre> +<p>Produce an array of int32_t which wraps around deleted documents. The +position in the array represents the original doc id, and the value +represents the new doc id. Deleted docs are assigned the value - 0, so +if you had 4 docs and doc 2 was deleted, the array would have the +values... (1, 0, 2, 3).</p> +<dl> +<dt><emph>offset</emph></dt> +<dd><p>Value which gets added to each valid document id. +With an offset of 1000, the array in the previous example would be +{ 1001, 0, 1002, 1003 }.</p> +</dd> +</dl> +</dd> +</dl> +<h3>Methods inherited from Lucy::Index::DataWriter</h3><dl> +<dt>Add_Inverted_Doc</dt> +<dd> +<pre><code>void +<strong>LUCY_DataWriter_Add_Inverted_Doc</strong>( + lucy_DataWriter* <strong>self</strong>, + <a href="lucy_Inverter.html">lucy_Inverter*</a> <strong>inverter</strong>, + int32_t <strong>doc_id</strong> +); +</code></pre> +<p>Process a document, previously inverted by <code>inverter</code>.</p> +<dl> +<dt><emph>inverter</emph></dt> +<dd><p>An Inverter wrapping an inverted document.</p> +</dd> +<dt><emph>doc_id</emph></dt> +<dd><p>Internal number assigned to this document within the +segment.</p> +</dd> +</dl> +</dd> +<dt>Add_Segment</dt> +<dd> +<pre><code>void +<strong>LUCY_DataWriter_Add_Segment</strong>( + lucy_DataWriter* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong>, + <a href="lucy_I32Array.html">lucy_I32Array*</a> <strong>doc_map</strong> +); +</code></pre> +<p>Add content from an existing segment into the one currently being +written.</p> +<dl> +<dt><emph>reader</emph></dt> +<dd><p>The SegReader containing content to add.</p> +</dd> +<dt><emph>doc_map</emph></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>Delete_Segment</dt> +<dd> +<pre><code>void +<strong>LUCY_DataWriter_Delete_Segment</strong>( + lucy_DataWriter* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_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><emph>reader</emph></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>Merge_Segment</dt> +<dd> +<pre><code>void +<strong>LUCY_DataWriter_Merge_Segment</strong>( + lucy_DataWriter* <strong>self</strong>, + <a href="lucy_SegReader.html">lucy_SegReader*</a> <strong>reader</strong>, + <a href="lucy_I32Array.html">lucy_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 Add_Segment() then Delete_Segment().</p> +<dl> +<dt><emph>reader</emph></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><emph>doc_map</emph></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>Finish</dt> +<dd> +<pre><code>void +<strong>LUCY_DataWriter_Finish</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Complete the segment: close all streams, store metadata, etc.</p> +</dd> +<dt>Metadata</dt> +<dd> +<pre><code><a href="cfish_Hash.html">cfish_Hash*</a> // incremented +<strong>LUCY_DataWriter_Metadata</strong>( + lucy_DataWriter* <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>Format</dt> +<dd> +<pre><code>int32_t +<strong>LUCY_DataWriter_Format</strong>( + lucy_DataWriter* <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>Get_Snapshot</dt> +<dd> +<pre><code><a href="lucy_Snapshot.html">lucy_Snapshot*</a> +<strong>LUCY_DataWriter_Get_Snapshot</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Accessor for "snapshot" member var.</p> +</dd> +<dt>Get_Segment</dt> +<dd> +<pre><code><a href="lucy_Segment.html">lucy_Segment*</a> +<strong>LUCY_DataWriter_Get_Segment</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Accessor for "segment" member var.</p> +</dd> +<dt>Get_PolyReader</dt> +<dd> +<pre><code><a href="lucy_PolyReader.html">lucy_PolyReader*</a> +<strong>LUCY_DataWriter_Get_PolyReader</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Accessor for "polyreader" member var.</p> +</dd> +<dt>Get_Schema</dt> +<dd> +<pre><code><a href="lucy_Schema.html">lucy_Schema*</a> +<strong>LUCY_DataWriter_Get_Schema</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Accessor for "schema" member var.</p> +</dd> +<dt>Get_Folder</dt> +<dd> +<pre><code><a href="lucy_Folder.html">lucy_Folder*</a> +<strong>LUCY_DataWriter_Get_Folder</strong>( + lucy_DataWriter* <strong>self</strong> +); +</code></pre> +<p>Accessor for "folder" member var.</p> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Index::DeletionsWriter is a <a href="lucy_DataWriter.html">Lucy::Index::DataWriter</a> is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html> Added: websites/staging/lucy/trunk/content/docs/c/lucy_Doc.html ============================================================================== --- websites/staging/lucy/trunk/content/docs/c/lucy_Doc.html (added) +++ websites/staging/lucy/trunk/content/docs/c/lucy_Doc.html Sun Nov 23 17:43:07 2014 @@ -0,0 +1,133 @@ +<!DOCTYPE html> +<html> +<head> +<meta name="viewport" content="width=device-width" /> +<style type="text/css"> +body { + font-family: sans-serif; + font-size: 0.85em; + max-width: 640px; +} +dt { + font-weight: bold; +} +pre { + border: 1px solid #000; + padding: 0.2em 0.4em; + background: #f6f6f6; + font-size: 1.2em; +} +code { + font-family: "Consolas", "Menlo", monospace; +} +</style> +</head> +<body> +<h1>Lucy::Document::Doc</h1> +<h2>Name</h2> +<p>Lucy::Document::Doc - A document.</p> +<h2>Description</h2> +<p>A Doc object is akin to a row in a database, in that it is made up of one +or more fields, each of which has a value.</p> +<h2>Functions</h2> +<dl> +<dt>init</dt> +<dd> +<pre><code>lucy_Doc* +<strong>lucy_Doc_init</strong>( + lucy_Doc* <strong>self</strong>, + void* <strong>fields</strong>, + int32_t <strong>doc_id</strong> +); +</code></pre> +<dl> +<dt><emph>fields</emph></dt> +<dd><p>Field-value pairs.</p> +</dd> +<dt><emph>doc_id</emph></dt> +<dd><p>Internal Lucy document id. Default of 0 (an +invalid doc id).</p> +</dd> +</dl> +</dd> +</dl> +<h2>Methods</h2> +<h3>Novel methods</h3> +<dl> +<dt>Set_Doc_ID</dt> +<dd> +<pre><code>void +<strong>LUCY_Doc_Set_Doc_ID</strong>( + lucy_Doc* <strong>self</strong>, + int32_t <strong>doc_id</strong> +); +</code></pre> +<p>Set internal Lucy document id.</p> +</dd> +<dt>Get_Doc_ID</dt> +<dd> +<pre><code>int32_t +<strong>LUCY_Doc_Get_Doc_ID</strong>( + lucy_Doc* <strong>self</strong> +); +</code></pre> +<p>Retrieve internal Lucy document id.</p> +</dd> +<dt>Get_Fields</dt> +<dd> +<pre><code>void* +<strong>LUCY_Doc_Get_Fields</strong>( + lucy_Doc* <strong>self</strong> +); +</code></pre> +<p>Return the Doc's backing fields hash.</p> +</dd> +<dt>Get_Size</dt> +<dd> +<pre><code>uint32_t +<strong>LUCY_Doc_Get_Size</strong>( + lucy_Doc* <strong>self</strong> +); +</code></pre> +<p>Return the number of fields in the Doc.</p> +</dd> +<dt>Serialize</dt> +<dd> +<pre><code>void +<strong>LUCY_Doc_Serialize</strong>( + lucy_Doc* <strong>self</strong>, + <a href="lucy_OutStream.html">lucy_OutStream*</a> <strong>outstream</strong> +); +</code></pre> +</dd> +<dt>Deserialize</dt> +<dd> +<pre><code>lucy_Doc* // incremented +<strong>LUCY_Doc_Deserialize</strong>( + lucy_Doc* <strong>self</strong>, // decremented + <a href="lucy_InStream.html">lucy_InStream*</a> <strong>instream</strong> +); +</code></pre> +</dd> +<dt>Dump</dt> +<dd> +<pre><code><a href="cfish_Hash.html">cfish_Hash*</a> // incremented +<strong>LUCY_Doc_Dump</strong>( + lucy_Doc* <strong>self</strong> +); +</code></pre> +</dd> +<dt>Load</dt> +<dd> +<pre><code>lucy_Doc* // incremented +<strong>LUCY_Doc_Load</strong>( + lucy_Doc* <strong>self</strong>, + <a href="cfish_Obj.html">cfish_Obj*</a> <strong>dump</strong> +); +</code></pre> +</dd> +</dl> +<h2>Inheritance</h2> +<p>Lucy::Document::Doc is a <a href="cfish_Obj.html">Clownfish::Obj</a>.</p> +</body> +</html>