You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by bu...@apache.org on 2011/08/11 04:21:01 UTC

[lucy-commits] svn commit: r794176 [4/4] - in /websites/staging/lucy/trunk/content/lucy/docs/0.1.0: ./ perl/ perl/Lucy/ perl/Lucy/Analysis/ perl/Lucy/Docs/ perl/Lucy/Docs/Cookbook/ perl/Lucy/Docs/Tutorial/ perl/Lucy/Document/ perl/Lucy/Highlight/ perl/Lucy/Index/ per...

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/RangeQuery.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/RangeQuery.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/RangeQuery.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,75 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Search::RangeQuery - Match a range of values.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    # Match all articles by &quot;Foo&quot; published since the year 2000.
+    my $range_query = Lucy::Search::RangeQuery-&gt;new(
+        field         =&gt; &#39;publication_date&#39;,
+        lower_term    =&gt; &#39;2000-01-01&#39;,
+        include_lower =&gt; 1,
+    );
+    my $author_query = Lucy::Search::TermQuery-&gt;new(
+        field =&gt; &#39;author_last_name&#39;,
+        text  =&gt; &#39;Foo&#39;,
+    );
+    my $and_query = Lucy::Search::ANDQuery-&gt;new(
+        children =&gt; [ $range_query, $author_query ],
+    );
+    my $hits = $searcher-&gt;hits( query =&gt; $and_query );
+    ...</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>RangeQuery matches documents where the value for a particular field falls within a given range.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    my $range_query = Lucy::Search::RangeQuery-&gt;new(
+        field         =&gt; &#39;product_number&#39;, # required
+        lower_term    =&gt; &#39;003&#39;,            # see below
+        upper_term    =&gt; &#39;060&#39;,            # see below
+        include_lower =&gt; 0,                # default true
+        include_upper =&gt; 0,                # default true
+    );</code></pre>
+
+<p>Takes 5 parameters; <code>field</code> is required, as is at least one of either <code>lower_term</code> or <code>upper_term</code>.</p>
+
+<ul>
+
+<li><p><b>field</b> - The name of a <code>sortable</code> field.</p>
+
+</li>
+<li><p><b>lower_term</b> - Lower delimiter. If not supplied, all values less than <code>upper_term</code> will pass.</p>
+
+</li>
+<li><p><b>upper_term</b> - Upper delimiter. If not supplied, all values greater than <code>lower_term</code> will pass.</p>
+
+</li>
+<li><p><b>include_lower</b> - Indicates whether docs which match <code>lower_term</code> should be included in the results.</p>
+
+</li>
+<li><p><b>include_upper</b> - Indicates whether docs which match <code>upper_term</code> should be included in the results.</p>
+
+</li>
+</ul>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Search::RangeQuery isa <a href="../../Lucy/Search/Query.html">Lucy::Search::Query</a> isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/RequiredOptionalQuery.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/RequiredOptionalQuery.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/RequiredOptionalQuery.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,70 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Search::RequiredOptionalQuery - Join results for two Queries, one required, one optional.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $foo_and_maybe_bar = Lucy::Search::RequiredOptionalQuery-&gt;new(
+        required_query =&gt; $foo_query,
+        optional_query =&gt; $bar_query,
+    );
+    my $hits = $searcher-&gt;hits( query =&gt; $foo_and_maybe_bar );
+    ...</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>RequiredOptionalQuery joins the result sets of one Query which MUST match, and one Query which SHOULD match. When only the required Query matches, its score is passed along; when both match, the scores are summed.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    my $reqopt_query = Lucy::Search::RequiredOptionalQuery-&gt;new(
+        required_query =&gt; $foo_query,    # required
+        optional_query =&gt; $bar_query,    # required
+    );</code></pre>
+
+<ul>
+
+<li><p><b>required_query</b> - Query must must match.</p>
+
+</li>
+<li><p><b>optional_query</b> - Query which should match.</p>
+
+</li>
+</ul>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="get_required_query-">get_required_query()</h2>
+
+<p>Getter for the required Query.</p>
+
+<h2 id="set_required_query-required_query-">set_required_query(required_query)</h2>
+
+<p>Setter for the required Query.</p>
+
+<h2 id="get_optional_query-">get_optional_query()</h2>
+
+<p>Getter for the optional Query.</p>
+
+<h2 id="set_optional_query-optional_query-">set_optional_query(optional_query)</h2>
+
+<p>Setter for the optional Query.</p>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Search::RequiredOptionalQuery isa <a href="../../Lucy/Search/PolyQuery.html">Lucy::Search::PolyQuery</a> isa <a href="../../Lucy/Search/Query.html">Lucy::Search::Query</a> isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/Searcher.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/Searcher.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/Searcher.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,124 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Search::Searcher - Base class for searching collections of documents.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    # Abstract base class.</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>Abstract base class for objects which search. Core subclasses include <a href="../../Lucy/Search/IndexSearcher.html">Lucy::Search::IndexSearcher</a> and <a href="../../Lucy/Search/PolySearcher.html">Lucy::Search::PolySearcher</a>.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    package MySearcher;
+    use base qw( Lucy::Search::Searcher );
+    sub new {
+        my $self = shift-&gt;SUPER::new;
+        ...
+        return $self;
+    }</code></pre>
+
+<p>Abstract constructor.</p>
+
+<ul>
+
+<li><p><b>schema</b> - A Schema.</p>
+
+</li>
+</ul>
+
+<h1 id="ABSTRACT-METHODS">ABSTRACT METHODS</h1>
+
+<h2 id="collect-labeled-params-">collect( <i>[labeled params]</i> )</h2>
+
+<p>Iterate over hits, feeding them into a <a href="../../Lucy/Search/Collector.html">Collector</a>.</p>
+
+<ul>
+
+<li><p><b>query</b> - A Query.</p>
+
+</li>
+<li><p><b>collector</b> - A Collector.</p>
+
+</li>
+</ul>
+
+<h2 id="doc_max-">doc_max()</h2>
+
+<p>Return the maximum number of docs in the collection represented by the Searcher, which is also the highest possible internal doc id. Documents which have been marked as deleted but not yet purged are included in this count.</p>
+
+<h2 id="doc_freq-labeled-params-">doc_freq( <i>[labeled params]</i> )</h2>
+
+<p>Return the number of documents which contain the term in the given field.</p>
+
+<ul>
+
+<li><p><b>field</b> - Field name.</p>
+
+</li>
+<li><p><b>term</b> - The term to look up.</p>
+
+</li>
+</ul>
+
+<h2 id="fetch_doc-doc_id-">fetch_doc(doc_id)</h2>
+
+<p>Retrieve a document. Throws an error if the doc id is out of range.</p>
+
+<ul>
+
+<li><p><b>doc_id</b> - A document id.</p>
+
+</li>
+</ul>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="hits-labeled-params-">hits( <i>[labeled params]</i> )</h2>
+
+<p>Return a Hits object containing the top results.</p>
+
+<ul>
+
+<li><p><b>query</b> - Either a Query object or a query string.</p>
+
+</li>
+<li><p><b>offset</b> - The number of most-relevant hits to discard, typically used when &quot;paging&quot; through hits N at a time. Setting <code>offset</code> to 20 and <code>num_wanted</code> to 10 retrieves hits 21-30, assuming that 30 hits can be found.</p>
+
+</li>
+<li><p><b>num_wanted</b> - The number of hits you would like to see after <code>offset</code> is taken into account.</p>
+
+</li>
+<li><p><b>sort_spec</b> - A <a href="../../Lucy/Search/SortSpec.html">Lucy::Search::SortSpec</a>, which will affect how results are ranked and returned.</p>
+
+</li>
+</ul>
+
+<h2 id="glean_query-query-">glean_query(query)</h2>
+
+<p>If the supplied object is a Query, return it; if it&#39;s a query string, create a QueryParser and parse it to produce a query against all indexed fields.</p>
+
+<h2 id="get_schema-">get_schema()</h2>
+
+<p>Accessor for the object&#39;s <code>schema</code> member.</p>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Search::Searcher isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/SortRule.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/SortRule.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/SortRule.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,68 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Search::SortRule - Element of a SortSpec.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $sort_spec = Lucy::Search::SortSpec-&gt;new(
+        rules =&gt; [
+            Lucy::Search::SortRule-&gt;new( field =&gt; &#39;date&#39; ),
+            Lucy::Search::SortRule-&gt;new( type  =&gt; &#39;doc_id&#39; ),
+        ],
+    );</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>SortRules are the building blocks used to assemble <a href="../../Lucy/Search/SortSpec.html">SortSpecs</a>; each SortRule defines a single level of sorting. For example, sorting first by &quot;category&quot; then by score requires a SortSpec with two SortRule elements.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    my $by_title   = Lucy::Search::SortRule-&gt;new( field =&gt; &#39;title&#39; );
+    my $by_score   = Lucy::Search::SortRule-&gt;new( type  =&gt; &#39;score&#39; );
+    my $by_doc_id  = Lucy::Search::SortRule-&gt;new( type  =&gt; &#39;doc_id&#39; );
+    my $reverse_date = Lucy::Search::SortRule-&gt;new(
+        field   =&gt; &#39;date&#39;,
+        reverse =&gt; 1,
+    );</code></pre>
+
+<ul>
+
+<li><p><b>type</b> - Indicate whether to sort by score, field, etc. (The default is to sort by a field.)</p>
+
+</li>
+<li><p><b>field</b> - The name of a <code>sortable</code> field.</p>
+
+</li>
+<li><p><b>reverse</b> - If true, reverse the order of the sort for this rule.</p>
+
+</li>
+</ul>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="get_field-">get_field()</h2>
+
+<p>Accessor for &quot;field&quot; member.</p>
+
+<h2 id="get_reverse-">get_reverse()</h2>
+
+<p>Accessor for &quot;reverse&quot; member.</p>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Search::SortRule isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/SortSpec.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/SortSpec.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/SortSpec.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,54 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Search::SortSpec - Specify a custom sort order for search results.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $sort_spec = Lucy::Search::SortSpec-&gt;new(
+        rules =&gt; [
+            Lucy::Search::SortRule-&gt;new( field =&gt; &#39;date&#39; ),
+            Lucy::Search::SortRule-&gt;new( type  =&gt; &#39;doc_id&#39; ),
+        ],
+    );
+    my $hits = $searcher-&gt;hits(
+        query     =&gt; $query,
+        sort_spec =&gt; $sort_spec,
+    );</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>By default, searches return results in order of relevance; SortSpec allows you to indicate an alternate order via an array of <a href="../../Lucy/Search/SortRule.html">SortRules</a>.</p>
+
+<p>Fields you wish to sort against must be <code>sortable</code>.</p>
+
+<p>For a stable sort (important when paging through results), add a sort-by-doc rule as the last SortRule.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    my $sort_spec = Lucy::Search::SortSpec-&gt;new( rules =&gt; \@rules );</code></pre>
+
+<ul>
+
+<li><p><b>rules</b> - An array of SortRules.</p>
+
+</li>
+</ul>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Search::SortSpec isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/Span.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/Span.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/Span.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,85 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Search::Span - An offset, a length, and a weight.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $combined_length = $upper_span-&gt;get_length
+        + ( $upper_span-&gt;get_offset - $lower_span-&gt;get_offset );
+    my $combined_span = Lucy::Search::Span-&gt;new(
+        offset =&gt; $lower_span-&gt;get_offset,
+        length =&gt; $combined_length,
+    );
+    ...</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>Span objects store information about a span across an array of... something. The unit is context-dependent.</p>
+
+<p>Text is one possibility, in which case offset and length might be measured in Unicode code points. However, the Span could also refer to a span within an array of tokens, for example -- in which case the start and offset might be measured in token positions.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    my $span = Lucy::Search::Span-&gt;new(
+        offset =&gt; 75,     # required
+        length =&gt; 7,      # required
+        weight =&gt; 1.0,    # default 0.0
+    );</code></pre>
+
+<ul>
+
+<li><p><b>offset</b> - Integer offset, unit is context-dependent.</p>
+
+</li>
+<li><p><b>length</b> - Integer length, unit is context-dependent.</p>
+
+</li>
+<li><p><b>weight</b> - A floating point weight.</p>
+
+</li>
+</ul>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="set_offset-offset-">set_offset(offset)</h2>
+
+<p>Setter for <code>offset</code> attribute.</p>
+
+<h2 id="get_offset-">get_offset()</h2>
+
+<p>Accessor for <code>offset</code> attribute.</p>
+
+<h2 id="set_length-length-">set_length(length)</h2>
+
+<p>Setter for <code>length</code> attribute.</p>
+
+<h2 id="get_length-">get_length()</h2>
+
+<p>Accessor for <code>length</code> attribute.</p>
+
+<h2 id="set_weight-weight-">set_weight(weight)</h2>
+
+<p>Setter for <code>weight</code> attribute.</p>
+
+<h2 id="get_weight-">get_weight()</h2>
+
+<p>Accessor for <code>weight</code> attribute.</p>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Search::Span isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/TermQuery.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/TermQuery.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Search/TermQuery.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,61 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Search::TermQuery - Query which matches individual terms.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $term_query = Lucy::Search::TermQuery-&gt;new(
+        field =&gt; &#39;content&#39;,
+        term  =&gt; &#39;foo&#39;, 
+    );
+    my $hits = $searcher-&gt;hits( query =&gt; $term_query );</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>TermQuery is a subclass of <a href="../../Lucy/Search/Query.html">Lucy::Search::Query</a> for matching individual terms in a specific field.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    my $term_query = Lucy::Search::TermQuery-&gt;new(
+        field =&gt; &#39;content&#39;,    # required
+        term  =&gt; &#39;foo&#39;,        # required
+    );</code></pre>
+
+<ul>
+
+<li><p><b>field</b> - Field name.</p>
+
+</li>
+<li><p><b>term</b> - Term text.</p>
+
+</li>
+</ul>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="get_field-">get_field()</h2>
+
+<p>Accessor for object&#39;s <code>field</code> member.</p>
+
+<h2 id="get_term-">get_term()</h2>
+
+<p>Accessor for object&#39;s <code>term</code> member.</p>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Search::TermQuery isa <a href="../../Lucy/Search/Query.html">Lucy::Search::Query</a> isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Simple.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Simple.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Simple.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,124 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Simple - Basic search engine.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<p>First, build an index of your documents.</p>
+
+<pre><code>    my $index = Lucy::Simple-&gt;new(
+        path     =&gt; &#39;/path/to/index/&#39;
+        language =&gt; &#39;en&#39;,
+    );
+
+    while ( my ( $title, $content ) = each %source_docs ) {
+        $index-&gt;add_doc({
+            title    =&gt; $title,
+            content  =&gt; $content,
+        });
+    }</code></pre>
+
+<p>Later, search the index.</p>
+
+<pre><code>    my $total_hits = $index-&gt;search( 
+        query      =&gt; $query_string,
+        offset     =&gt; 0,
+        num_wanted =&gt; 10,
+    );
+
+    print &quot;Total hits: $total_hits\n&quot;;
+    while ( my $hit = $index-&gt;next ) {
+        print &quot;$hit-&gt;{title}\n&quot;,
+    }</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>Lucy::Simple is a stripped-down interface for the <a href="http://search.cpan.org/perldoc?Lucy">Apache Lucy</a> search engine library.</p>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="new">new</h2>
+
+<pre><code>    my $lucy = Lucy::Simple-&gt;new(
+        path     =&gt; &#39;/path/to/index/&#39;,
+        language =&gt; &#39;en&#39;,
+    );</code></pre>
+
+<p>Create a Lucy::Simple object, which can be used for both indexing and searching. Two hash-style parameters are required.</p>
+
+<ul>
+
+<li><p><b>path</b> - Where the index directory should be located. If no index is found at the specified location, one will be created.</p>
+
+</li>
+<li><p><b>language</b> - The language of the documents in your collection, indicated by a two-letter ISO code. 12 languages are supported:</p>
+
+<pre><code>    |-----------------------|
+    | Language   | ISO code |
+    |-----------------------|
+    | Danish     | da       |
+    | Dutch      | nl       |
+    | English    | en       |
+    | Finnish    | fi       |
+    | French     | fr       |
+    | German     | de       |
+    | Italian    | it       |
+    | Norwegian  | no       |
+    | Portuguese | pt       |
+    | Spanish    | es       |
+    | Swedish    | sv       |
+    | Russian    | ru       |
+    |-----------------------|</code></pre>
+
+</li>
+</ul>
+
+<h2 id="add_doc">add_doc</h2>
+
+<pre><code>    $lucy-&gt;add_doc({
+        location =&gt; $url,
+        title    =&gt; $title,
+        content  =&gt; $content,
+    });</code></pre>
+
+<p>Add a document to the index. The document must be supplied as a hashref, with field names as keys and content as values.</p>
+
+<h2 id="search">search</h2>
+
+<pre><code>    my $total_hits = $lucy-&gt;search( 
+        query      =&gt; $query_string,    # required
+        offset     =&gt; 40,               # default 0
+        num_wanted =&gt; 20,               # default 10
+    );</code></pre>
+
+<p>Search the index. Returns the total number of documents which match the query. (This number is unlikely to match <code>num_wanted</code>.)</p>
+
+<ul>
+
+<li><p><b>query</b> - A search query string.</p>
+
+</li>
+<li><p><b>offset</b> - The number of most-relevant hits to discard, typically used when &quot;paging&quot; through hits N at a time. Setting offset to 20 and num_wanted to 10 retrieves hits 21-30, assuming that 30 hits can be found.</p>
+
+</li>
+<li><p><b>num_wanted</b> - The number of hits you would like to see after <code>offset</code> is taken into account.</p>
+
+</li>
+</ul>
+
+<h1 id="BUGS">BUGS</h1>
+
+<p>Not thread-safe.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/FSFolder.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/FSFolder.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/FSFolder.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,45 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Store::FSFolder - File System implementation of Folder.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $folder = Lucy::Store::FSFolder-&gt;new(
+        path   =&gt; &#39;/path/to/folder&#39;,
+    );</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>Implementation of <a href="../../Lucy/Store/Folder.html">Lucy::Store::Folder</a> using a single file system directory and multiple files.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    my $folder = Lucy::Store::FSFolder-&gt;new(
+        path   =&gt; &#39;/path/to/folder&#39;,
+    );</code></pre>
+
+<ul>
+
+<li><p><b>path</b> - Location of the index. If the specified directory does not exist already, it will NOT be created, in order to prevent misconfigured read applications from spawning bogus files -- so it may be necessary to create the directory yourself.</p>
+
+</li>
+</ul>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Store::FSFolder isa <a href="../../Lucy/Store/Folder.html">Lucy::Store::Folder</a> isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/Folder.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/Folder.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/Folder.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,30 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Store::Folder - Abstract class representing a directory.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    # Abstract base class.</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>A &quot;file&quot; within a Folder might be a real file on disk -- or it might be a RAM buffer. Similarly, delete() might delete a file from the file system, or a key-value pair from a hash, or something else.</p>
+
+<p>The archetypal implementation of Folder, <a href="../../Lucy/Store/FSFolder.html">FSFolder</a>, represents a directory on the file system holding a collection of files.</p>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Store::Folder isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/Lock.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/Lock.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/Lock.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,101 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Store::Lock - Abstract class representing an interprocess mutex lock.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $lock = $lock_factory-&gt;make_lock(
+        name    =&gt; &#39;write&#39;,
+        timeout =&gt; 5000,
+    );
+    $lock-&gt;obtain or die &quot;can&#39;t get lock for &quot; . $lock-&gt;get_name;
+    do_stuff();
+    $lock-&gt;release;</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>The Lock class produces an interprocess mutex lock. The default subclass uses dot-lock files, but alternative implementations are possible.</p>
+
+<p>Each lock must have a name which is unique per resource to be locked. Each lock also has a &quot;host&quot; id which should be unique per machine; it is used to help clear away stale locks.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    my $lock = Lucy::Store::Lock-&gt;new(
+        name     =&gt; &#39;commit&#39;,     # required
+        folder   =&gt; $folder,      # required
+        host     =&gt; $hostname,    # required
+        timeout  =&gt; 5000,         # default: 0
+        interval =&gt; 1000,         # default: 100
+    );</code></pre>
+
+<p>Abstract constructor.</p>
+
+<ul>
+
+<li><p><b>folder</b> - A Folder.</p>
+
+</li>
+<li><p><b>name</b> - String identifying the resource to be locked, which must consist solely of characters matching [-_.A-Za-z0-9].</p>
+
+</li>
+<li><p><b>host</b> - A unique per-machine identifier.</p>
+
+</li>
+<li><p><b>timeout</b> - Time in milliseconds to keep retrying before abandoning the attempt to obtain() a lock.</p>
+
+</li>
+<li><p><b>interval</b> - Time in milliseconds between retries.</p>
+
+</li>
+</ul>
+
+<h1 id="ABSTRACT-METHODS">ABSTRACT METHODS</h1>
+
+<h2 id="request-">request()</h2>
+
+<p>Make one attempt to acquire the lock.</p>
+
+<p>The semantics of request() differ depending on whether shared() returns true. If the Lock is shared(), then request() should not fail if another lock is held against the resource identified by <code>name</code> (though it might fail for other reasons). If it is not shared() -- i.e. it&#39;s an exclusive (write) lock -- then other locks should cause request() to fail.</p>
+
+<p>Returns: true on success, false on failure (sets Lucy-&gt;error).</p>
+
+<h2 id="release-">release()</h2>
+
+<p>Release the lock.</p>
+
+<h2 id="is_locked-">is_locked()</h2>
+
+<p>Indicate whether the resource identified by this lock&#39;s name is currently locked.</p>
+
+<p>Returns: true if the resource is locked, false otherwise.</p>
+
+<h2 id="clear_stale-">clear_stale()</h2>
+
+<p>Release all locks that meet the following three conditions: the lock name matches, the host id matches, and the process id that the lock was created under no longer identifies an active process.</p>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="obtain-">obtain()</h2>
+
+<p>Call request() once per <code>interval</code> until request() returns success or the <code>timeout</code> has been reached.</p>
+
+<p>Returns: true on success, false on failure (sets Lucy-&gt;error).</p>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Store::Lock isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/LockErr.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/LockErr.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/LockErr.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,40 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Store::LockErr - Lock exception.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    while (1) {
+        my $bg_merger = eval {
+            Lucy::Index::BackgroundMerger-&gt;new( index =&gt; $index );
+        };
+        if ( blessed($@) and $@-&gt;isa(&quot;Lucy::Store::LockErr&quot;) ) {
+            warn &quot;Retrying...\n&quot;;
+        }
+        elsif (!$bg_merger) {
+            # Re-throw.
+            die &quot;Failed to open BackgroundMerger: $@&quot;;
+        }
+        ...
+    }</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>LockErr is a subclass of <a href="../../Lucy/Object/Err.html">Err</a> which indicates that a file locking problem occurred.</p>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Store::LockErr isa <a href="../../Lucy/Object/Err.html">Lucy::Object::Err</a> isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/LockFactory.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/LockFactory.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/LockFactory.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,96 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Store::LockFactory - Create Locks.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    use Sys::Hostname qw( hostname );
+    my $hostname = hostname() or die &quot;Can&#39;t get unique hostname&quot;;
+    my $folder = Lucy::Store::FSFolder-&gt;new( 
+        path =&gt; &#39;/path/to/index&#39;, 
+    );
+    my $lock_factory = Lucy::Store::LockFactory-&gt;new(
+        folder =&gt; $folder,
+        host   =&gt; $hostname,
+    );
+    my $write_lock = $lock_factory-&gt;make_lock(
+        name     =&gt; &#39;write&#39;,
+        timeout  =&gt; 5000,
+        interval =&gt; 100,
+    );</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>LockFactory is used to spin off interprocess mutex locks used by various index reading and writing components. The default implementation uses lockfiles, but LockFactory subclasses which are implemented using alternatives such as flock() are possible.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    my $lock_factory = Lucy::Store::LockFactory-&gt;new(
+        folder =&gt; $folder,      # required
+        host   =&gt; $hostname,    # required
+    );</code></pre>
+
+<ul>
+
+<li><p><b>folder</b> - A <a href="../../Lucy/Store/Folder.html">Lucy::Store::Folder</a>.</p>
+
+</li>
+<li><p><b>host</b> - An identifier which should be unique per-machine.</p>
+
+</li>
+</ul>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="make_lock-labeled-params-">make_lock( <i>[labeled params]</i> )</h2>
+
+<p>Return a Lock object, which, once obtain() returns successfully, maintains an exclusive lock on a resource.</p>
+
+<ul>
+
+<li><p><b>name</b> - A file-system-friendly id which identifies the resource to be locked.</p>
+
+</li>
+<li><p><b>timeout</b> - Time in milliseconds to keep retrying before abandoning the attempt to obtain() a lock.</p>
+
+</li>
+<li><p><b>interval</b> - Time in milliseconds between retries.</p>
+
+</li>
+</ul>
+
+<h2 id="make_shared_lock-labeled-params-">make_shared_lock( <i>[labeled params]</i> )</h2>
+
+<p>Return a Lock object for which shared() returns true, and which maintains a non-exclusive lock on a resource once obtain() returns success.</p>
+
+<ul>
+
+<li><p><b>name</b> - A file-system-friendly id which identifies the resource to be locked.</p>
+
+</li>
+<li><p><b>timeout</b> - Time in milliseconds to keep retrying before abandoning the attempt to obtain() a lock.</p>
+
+</li>
+<li><p><b>interval</b> - Time in milliseconds between retries.</p>
+
+</li>
+</ul>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Store::LockFactory isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/RAMFolder.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/RAMFolder.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/Lucy/Store/RAMFolder.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,48 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>Lucy::Store::RAMFolder - In-memory Folder implementation.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $folder = Lucy::Store::RAMFolder-&gt;new;
+    
+    # or sometimes...
+    my $folder = Lucy::Store::RAMFolder-&gt;new(
+        path =&gt; $relative_path,
+    );</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>RAMFolder is an entirely in-memory implementation of <a href="../../Lucy/Store/Folder.html">Lucy::Store::Folder</a>, primarily used for testing and development.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<pre><code>    my $folder = Lucy::Store::RAMFolder-&gt;new(
+        path =&gt; $relative_path,   # default: empty string
+    );</code></pre>
+
+<ul>
+
+<li><p><b>path</b> - Relative path, used for subfolders.</p>
+
+</li>
+</ul>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>Lucy::Store::RAMFolder isa <a href="../../Lucy/Store/Folder.html">Lucy::Store::Folder</a> isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ByteBufDocReader.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ByteBufDocReader.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ByteBufDocReader.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,24 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>LucyX::Index::ByteBufDocReader - Read a Doc as a fixed-width byte array.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    # See LucyX::Index::ByteBufDocWriter</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>This is a proof-of-concept class to demonstrate alternate implementations for fetching documents. It is unsupported.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ByteBufDocWriter.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ByteBufDocWriter.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ByteBufDocWriter.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,86 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>LucyX::Index::ByteBufDocWriter - Write a Doc as a fixed-width byte array.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<p>Create an <a href="../../Lucy/Plan/Architecture.html">Architecture</a> subclass which overrides register_doc_writer() and register_doc_reader():</p>
+
+<pre><code>    package MyArchitecture;
+    use base qw( Lucy::Plan::Architecture );
+    use LucyX::Index::ByteBufDocReader;
+    use LucyX::Index::ByteBufDocWriter;
+
+    sub register_doc_writer {
+        my ( $self, $seg_writer ) = @_; 
+        my $doc_writer = LucyX::Index::ByteBufDocWriter-&gt;new(
+            width      =&gt; 16,
+            field      =&gt; &#39;value&#39;,
+            snapshot   =&gt; $seg_writer-&gt;get_snapshot,
+            segment    =&gt; $seg_writer-&gt;get_segment,
+            polyreader =&gt; $seg_writer-&gt;get_polyreader,
+        );  
+        $seg_writer-&gt;register(
+            api       =&gt; &quot;Lucy::Index::DocReader&quot;,
+            component =&gt; $doc_writer,
+        );  
+        $seg_writer-&gt;add_writer($doc_writer);
+    }
+
+    sub register_doc_reader {
+        my ( $self, $seg_reader ) = @_; 
+        my $doc_reader = LucyX::Index::ByteBufDocReader-&gt;new(
+            width    =&gt; 16,
+            field    =&gt; &#39;value&#39;,
+            schema   =&gt; $seg_reader-&gt;get_schema,
+            folder   =&gt; $seg_reader-&gt;get_folder,
+            segments =&gt; $seg_reader-&gt;get_segments,
+            seg_tick =&gt; $seg_reader-&gt;get_seg_tick,
+            snapshot =&gt; $seg_reader-&gt;get_snapshot,
+        );  
+        $seg_reader-&gt;register(
+            api       =&gt; &#39;Lucy::Index::DocReader&#39;,
+            component =&gt; $doc_reader,
+        );  
+    }
+
+    package MySchema;
+    use base qw( Lucy::Plan::Schema );
+
+    sub architecture { MyArchitecture-&gt;new }</code></pre>
+
+<p>Proceed as normal in your indexer app, making sure that every supplied document supplies a valid value for the field in question:</p>
+
+<pre><code>    $indexer-&gt;add_doc({
+        title   =&gt; $title,
+        content =&gt; $content,
+        id      =&gt; $id,      # &lt;---- Must meet spec.
+    });</code></pre>
+
+<p>Then, in your search app:</p>
+
+<pre><code>    my $searcher = Lucy::Search::IndexSearcher-&gt;new( 
+        index =&gt; &#39;/path/to/index&#39;,
+    );
+    my $hits = $searcher-&gt;hits( query =&gt; $query );
+    while ( my $id = $hits-&gt;next ) {
+        my $real_doc = $external_document_source-&gt;fetch( $doc-&gt;{value} );
+        ...
+    }</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>This is a proof-of-concept class to demonstrate alternate implementations for fetching documents. It is unsupported.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/LongFieldSim.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/LongFieldSim.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/LongFieldSim.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,79 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>LucyX::Index::LongFieldSim - Similarity optimized for long fields.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    package MySchema::body;
+    use base qw( Lucy::Plan::FullTextType );
+    use LucyX::Index::LongFieldSim;
+    sub make_similarity { LucyX::Index::LongFieldSim-&gt;new }</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>Apache Lucy&#39;s default <a href="../../Lucy/Index/Similarity.html">Similarity</a> implmentation produces a bias towards extremely short fields.</p>
+
+<pre><code>    Lucy::Index::Similarity
+    
+    | more weight
+    | *
+    |  **  
+    |    ***
+    |       **********
+    |                 ********************
+    |                                     *******************************
+    | less weight                                                        ****
+    |------------------------------------------------------------------------
+      fewer tokens                                              more tokens</code></pre>
+
+<p>LongFieldSim eliminates this bias.</p>
+
+<pre><code>    LucyX::Index::LongFieldSim
+    
+    | more weight
+    | 
+    |    
+    |    
+    |*****************
+    |                 ********************
+    |                                     *******************************
+    | less weight                                                        ****
+    |------------------------------------------------------------------------
+      fewer tokens                                              more tokens</code></pre>
+
+<p>In most cases, the default bias towards short fields is desirable. For instance, say you have two documents:</p>
+
+<ul>
+
+<li><p>&quot;George Washington&quot;</p>
+
+</li>
+<li><p>&quot;George Washington Carver&quot;</p>
+
+</li>
+</ul>
+
+<p>If a user searches for &quot;george washington&quot;, we want the exact title match to appear first. Under the default Similarity implementation it will, because the &quot;Carver&quot; in &quot;George Washington Carver&quot; dilutes the impact of the other two tokens.</p>
+
+<p>However, under LongFieldSim, the two titles will yield equal scores. That would be bad in this particular case, but it could be good in another.</p>
+
+<pre><code>     &quot;George Washington Carver is cool.&quot;
+
+     &quot;George Washington Carver was born on the eve of the US Civil War, in
+     1864.  His exact date of birth is unknown... Carver&#39;s research in crop
+     rotation revolutionized agriculture...&quot;</code></pre>
+
+<p>The first document is succinct, but useless. Unfortunately, the default similarity will assess it as extremely relevant to a query of &quot;george washington carver&quot;. However, under LongFieldSim, the short-field bias is eliminated, and the addition of other mentions of Carver&#39;s name in the second document yield a higher score and a higher rank.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ZlibDocReader.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ZlibDocReader.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ZlibDocReader.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,20 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>LucyX::Index::ZlibDocReader - Compressed doc storage.</p>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>This is a proof-of-concept class to demonstrate alternate implementations for fetching documents. It is unsupported.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ZlibDocWriter.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ZlibDocWriter.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Index/ZlibDocWriter.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,20 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>LucyX::Index::ZlibDocWriter - Compressed doc storage.</p>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>This is a proof-of-concept class to demonstrate alternate implementations for fetching documents. It is unsupported.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Remote/SearchClient.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Remote/SearchClient.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Remote/SearchClient.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,46 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<p>Make a remote procedure call. For every call that does not close/terminate the socket connection, expect a response back that&#39;s been serialized using Storable.</p>
+
+<h1 id="NAME">NAME</h1>
+
+<p>LucyX::Remote::SearchClient - Connect to a remote SearchServer.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $client = LucyX::Remote::SearchClient-&gt;new(
+        peer_address =&gt; &#39;searchserver1:7890&#39;,
+        password     =&gt; $pass,
+    );
+    my $hits = $client-&gt;hits( query =&gt; $query );</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>SearchClient is a subclass of <a href="../../Lucy/Search/Searcher.html">Lucy::Search::Searcher</a> which can be used to search an index on a remote machine made accessible via <a href="../../LucyX/Remote/SearchServer.html">SearchServer</a>.</p>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="new">new</h2>
+
+<p>Constructor. Takes hash-style params.</p>
+
+<ul>
+
+<li><p><b>peer_address</b> - The name/IP and the port number which the client should attempt to connect to.</p>
+
+</li>
+<li><p><b>password</b> - Password to be supplied to the SearchServer when initializing socket connection.</p>
+
+</li>
+</ul>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Remote/SearchServer.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Remote/SearchServer.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Remote/SearchServer.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,65 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>LucyX::Remote::SearchServer - Make a Searcher remotely accessible.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $searcher = Lucy::Search::IndexSearcher-&gt;new( 
+        index =&gt; &#39;/path/to/index&#39; 
+    );
+    my $search_server = LucyX::Remote::SearchServer-&gt;new(
+        searcher =&gt; $searcher,
+        port       =&gt; 7890,
+        password   =&gt; $pass,
+    );
+    $search_server-&gt;serve;</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>The SearchServer class, in conjunction with <a href="../../LucyX/Remote/SearchClient.html">SearchClient</a>, makes it possible to run a search on one machine and report results on another.</p>
+
+<p>By aggregating several SearchClients under a <a href="../../Lucy/Search/PolySearcher.html">PolySearcher</a>, the cost of searching what might have been a prohibitively large monolithic index can be distributed across multiple nodes, each with its own, smaller index.</p>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="new">new</h2>
+
+<pre><code>    my $search_server = LucyX::Remote::SearchServer-&gt;new(
+        searcher =&gt; $searcher, # required
+        port       =&gt; 7890,      # required
+        password   =&gt; $pass,     # required
+    );</code></pre>
+
+<p>Constructor. Takes hash-style parameters.</p>
+
+<ul>
+
+<li><p><b>searcher</b> - the <a href="../../Lucy/Search/IndexSearcher.html">Searcher</a> that the SearchServer will wrap.</p>
+
+</li>
+<li><p><b>port</b> - the port on localhost that the server should open and listen on.</p>
+
+</li>
+<li><p><b>password</b> - a password which must be supplied by clients.</p>
+
+</li>
+</ul>
+
+<h2 id="serve">serve</h2>
+
+<pre><code>    $search_server-&gt;serve;</code></pre>
+
+<p>Open a listening socket on localhost and wait for SearchClients to connect.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Search/Filter.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Search/Filter.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Search/Filter.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,68 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>LucyX::Search::Filter - Build a caching filter based on results of a Query.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my %category_filters;
+    for my $category (qw( sweet sour salty bitter )) {
+        my $cat_query = Lucy::Search::TermQuery-&gt;new(
+            field =&gt; &#39;category&#39;,
+            term  =&gt; $category,
+        );
+        $category_filters{$category} = LucyX::Search::Filter-&gt;new( 
+            query =&gt; $cat_query, 
+        );
+    }
+    
+    while ( my $cgi = CGI::Fast-&gt;new ) {
+        my $user_query = $cgi-&gt;param(&#39;q&#39;);
+        my $filter     = $category_filters{ $cgi-&gt;param(&#39;category&#39;) };
+        my $and_query  = Lucy::Search::ANDQuery-&gt;new;
+        $and_query-&gt;add_child($user_query);
+        $and_query-&gt;add_child($filter);
+        my $hits = $searcher-&gt;hits( query =&gt; $and_query );
+        ...</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>A Filter is a <a href="../../Lucy/Search/Query.html">Lucy::Search::Query</a> subclass that can be used to filter the results of another Query. The effect is very similar to simply using the wrapped inner query, but there are two important differences:</p>
+
+<ul>
+
+<li><p>A Filter does not contribute to the score of the documents it matches.</p>
+
+</li>
+<li><p>A Filter caches its results, so it is more efficient if you use it more than once.</p>
+
+</li>
+</ul>
+
+<p>To obtain logically equivalent results to the Filter but avoid the caching, substitute the wrapped query but use set_boost() to set its <code>boost</code> to 0.</p>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="new">new</h2>
+
+<pre><code>    my $filter = LucyX::Search::Filter-&gt;new(
+        query =&gt; $query;
+    );</code></pre>
+
+<p>Constructor. Takes one hash-style parameter, <code>query</code>, which must be an object belonging to a subclass of <a href="../../Lucy/Search/Query.html">Lucy::Search::Query</a>.</p>
+
+<h1 id="BUGS">BUGS</h1>
+
+<p>Filters do not cache when used in a search cluster with LucyX::Remote&#39;s SearchServer and SearchClient.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Search/MockMatcher.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Search/MockMatcher.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Search/MockMatcher.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,36 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>LucyX::Search::MockMatcher - Matcher with arbitrary docs and scores.</p>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>Used for testing combining <a href="../../Lucy/Search/Matcher.html">Matchers</a> such as ANDMatcher, MockMatcher allows arbitrary match criteria to be supplied, obviating the need for clever index construction to cover corner cases.</p>
+
+<p>MockMatcher is a testing and demonstration class; it is unsupported.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( [<i>labeled params</i>] )</h2>
+
+<ul>
+
+<li><p><b>doc_ids</b> - A sorted array of <a href="../../Lucy/Docs/DocIDs.html">doc_ids</a>.</p>
+
+</li>
+<li><p><b>scores</b> - An array of scores, one for each doc_id.</p>
+
+</li>
+</ul>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Search/ProximityQuery.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Search/ProximityQuery.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/LucyX/Search/ProximityQuery.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,61 @@
+
+<html>
+<head>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+</head>
+<body>
+
+
+<h1 id="NAME">NAME</h1>
+
+<p>LucyX::Search::ProximityQuery - Query matching an ordered list of terms.</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code>    my $proximity_query = LucyX::Search::ProximityQuery-&gt;new( 
+        field  =&gt; &#39;content&#39;,
+        terms  =&gt; [qw( the who )],
+        within =&gt; 10,    # match within 10 positions
+    );
+    my $hits = $searcher-&gt;hits( query =&gt; $proximity_query );</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>ProximityQuery is a subclass of <a href="../../Lucy/Search/Query.html">Lucy::Search::Query</a> for matching against an ordered sequence of terms.</p>
+
+<h1 id="CONSTRUCTORS">CONSTRUCTORS</h1>
+
+<h2 id="new-labeled-params-">new( <i>[labeled params]</i> )</h2>
+
+<ul>
+
+<li><p><b>field</b> - The field that the phrase must occur in.</p>
+
+</li>
+<li><p><b>terms</b> - The ordered array of terms that must match.</p>
+
+</li>
+</ul>
+
+<h1 id="METHODS">METHODS</h1>
+
+<h2 id="get_field-">get_field()</h2>
+
+<p>Accessor for object&#39;s field attribute.</p>
+
+<h2 id="get_terms-">get_terms()</h2>
+
+<p>Accessor for object&#39;s array of terms.</p>
+
+<h2 id="get_within-">get_within()</h2>
+
+<p>Accessor for object&#39;s within attribute.</p>
+
+<h1 id="INHERITANCE">INHERITANCE</h1>
+
+<p>LucyX::Search::ProximityQuery isa <a href="../../Lucy/Search/Query.html">Lucy::Search::Query</a> isa <a href="../../Lucy/Object/Obj.html">Lucy::Object::Obj</a>.</p>
+
+</body>
+</html>
+

Added: websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/index.html
==============================================================================
--- websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/index.html (added)
+++ websites/staging/lucy/trunk/content/lucy/docs/0.1.0/perl/index.html Thu Aug 11 02:20:58 2011
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title></title>
+    <link rel="stylesheet" type="text/css" media="screen" href="http://incubator.apache.org/lucy/css/lucy.css">
+  </head>
+
+  <body>
+
+    <div id="lucy-rigid_wrapper">
+
+      <div id="lucy-top" class="container_16 lucy-white_box_3d">
+
+        <div id="lucy-logo_box" class="grid_8">
+          <a href="/lucy/"><img src="http://incubator.apache.org/lucy/images/lucy_logo_150x100.png" alt="Apache Lucy™"></a>
+        </div> <!-- lucy-logo_box -->
+
+        <div #id="lucy-top_nav_box" class="grid_8">
+          <div id="lucy-top_nav_bar" class="container_8">
+            <ul>
+              <li><a href="http://www.apache.org/" title="Apache Software Foundation">Apache Software Foundation</a></li>
+              <li><a href="http://www.apache.org/licenses/" title="License">License</a></li>
+              <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
+              <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+              <li><a href="http://www.apache.org/security/ " title="Security">Security</a></li>
+            </ul>
+          </div> <!-- lucy-top_nav_bar -->
+          <p><a href="http://www.apache.org/">Apache</a>&nbsp;&raquo&nbsp;<a href="/">Incubator</a>&nbsp;&raquo&nbsp;<a href="/lucy/">Lucy</a>&nbsp;&raquo&nbsp;<a href="/lucy/docs/">Docs</a>&nbsp;&raquo&nbsp;<a href="/lucy/docs/0.1.0/">0.1.0</a>&nbsp;&raquo&nbsp;<a href="/lucy/docs/0.1.0/perl/">Perl</a></p>
+          <form name="lucy-top_search_box" id="lucy-top_search_box" action="http://www.google.com/search" method="get">
+            <input value="*.apache.org" name="sitesearch" type="hidden"/>
+            <input type="text" name="q" id="query" style="width:85%">
+            <input type="submit" id="submit" value="Search">
+          </form>
+        </div> <!-- lucy-top_nav_box -->
+
+        <div class="clear"></div>
+
+      </div> <!-- lucy-top -->
+
+      <div id="lucy-main_content" class="container_16 lucy-white_box_3d">
+
+        <div class="grid_4" id="lucy-left_nav_box">
+          <h6>About</h6>
+            <ul>
+              <li><a href="/lucy/">Welcome</a></li>
+              <li><a href="/lucy/faq.html">FAQ</a></li>
+              <li><a href="/lucy/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/lucy/download.html">Download</a></li>
+              <li><a href="/lucy/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/lucy/docs/perl/">Documentation</a></li>
+              <li><a href="http://wiki.apache.org/lucy/">Wiki</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/LUCY">Issue Tracker</a></li>
+              <li><a href="/lucy/version_control.html">Version Control</a></li>
+            </ul>
+          <h6>Related Projects</h6>
+            <ul>
+              <li><a href="http://lucene.apache.org/java/">Lucene</a></li>
+              <li><a href="http://lucene.apache.org/solr/">Solr</a></li>
+              <li><a href="http://incubator.apache.org/lucene.net/">Lucene.NET</a></li>
+              <li><a href="http://lucene.apache.org/pylucene/">PyLucene</a></li>
+              <li><a href="http://lucene.apache.org/openrelevance/">Open Relevance</a></li>
+            </ul>
+        </div> <!-- lucy-left_nav_box -->
+
+        <div id="lucy-main_content_box" class="grid_9">
+          <h4>Perl API documentation for Apache Lucy 0.1.0</h4>
+
+<ul>
+<li><a href="Lucy.html">Lucy</a> - Apache Lucy search engine library.</li>
+<li><a href="Lucy/Analysis/Analyzer.html">Lucy::Analysis::Analyzer</a> - Tokenize/modify/filter text.</li>
+<li><a href="Lucy/Analysis/CaseFolder.html">Lucy::Analysis::CaseFolder</a> - Normalize case, facilitating case-insensitive search.</li>
+<li><a href="Lucy/Analysis/PolyAnalyzer.html">Lucy::Analysis::PolyAnalyzer</a> - Multiple Analyzers in series.</li>
+<li><a href="Lucy/Analysis/RegexTokenizer.html">Lucy::Analysis::RegexTokenizer</a> - Split a string into tokens.</li>
+<li><a href="Lucy/Analysis/SnowballStemmer.html">Lucy::Analysis::SnowballStemmer</a> - Reduce related words to a shared root.</li>
+<li><a href="Lucy/Analysis/SnowballStopFilter.html">Lucy::Analysis::SnowballStopFilter</a> - Suppress a "stoplist" of common words.</li>
+<li><a href="Lucy/Docs/Cookbook.html">Lucy::Docs::Cookbook</a> - Apache Lucy recipes.</li>
+<li><a href="Lucy/Docs/Cookbook/CustomQuery.html">Lucy::Docs::Cookbook::CustomQuery</a> - Sample subclass of Query.</li>
+<li><a href="Lucy/Docs/Cookbook/CustomQueryParser.html">Lucy::Docs::Cookbook::CustomQueryParser</a> - Sample subclass of QueryParser.</li>
+<li><a href="Lucy/Docs/Cookbook/FastUpdates.html">Lucy::Docs::Cookbook::FastUpdates</a> - Near real-time index updates.</li>
+<li><a href="Lucy/Docs/DevGuide.html">Lucy::Docs::DevGuide</a> - Quick-start guide to hacking on Apache Lucy.</li>
+<li><a href="Lucy/Docs/DocIDs.html">Lucy::Docs::DocIDs</a> - Characteristics of Apache Lucy document ids.</li>
+<li><a href="Lucy/Docs/FileFormat.html">Lucy::Docs::FileFormat</a> - Overview of index file format.</li>
+<li><a href="Lucy/Docs/FileLocking.html">Lucy::Docs::FileLocking</a> - Manage indexes on shared volumes.</li>
+<li><a href="Lucy/Docs/IRTheory.html">Lucy::Docs::IRTheory</a> - Crash course in information retrieval.</li>
+<li><a href="Lucy/Docs/Tutorial.html">Lucy::Docs::Tutorial</a> - Step-by-step introduction to Apache Lucy.</li>
+<li><a href="Lucy/Docs/Tutorial/Analysis.html">Lucy::Docs::Tutorial::Analysis</a> - How to choose and use Analyzers.</li>
+<li><a href="Lucy/Docs/Tutorial/BeyondSimple.html">Lucy::Docs::Tutorial::BeyondSimple</a> - A more flexible app structure.</li>
+<li><a href="Lucy/Docs/Tutorial/FieldType.html">Lucy::Docs::Tutorial::FieldType</a> - Specify per-field properties and behaviors.</li>
+<li><a href="Lucy/Docs/Tutorial/Highlighter.html">Lucy::Docs::Tutorial::Highlighter</a> - Augment search results with highlighted excerpts.</li>
+<li><a href="Lucy/Docs/Tutorial/QueryObjects.html">Lucy::Docs::Tutorial::QueryObjects</a> - Use Query objects instead of query strings.</li>
+<li><a href="Lucy/Docs/Tutorial/Simple.html">Lucy::Docs::Tutorial::Simple</a> - Bare-bones search app.</li>
+<li><a href="Lucy/Document/Doc.html">Lucy::Document::Doc</a> - A document.</li>
+<li><a href="Lucy/Document/HitDoc.html">Lucy::Document::HitDoc</a> - A document read from an index.</li>
+<li><a href="Lucy/Highlight/Highlighter.html">Lucy::Highlight::Highlighter</a> - Create and highlight excerpts.</li>
+<li><a href="Lucy/Index/BackgroundMerger.html">Lucy::Index::BackgroundMerger</a> - Consolidate index segments in the background.</li>
+<li><a href="Lucy/Index/DataReader.html">Lucy::Index::DataReader</a> - Abstract base class for reading index data.</li>
+<li><a href="Lucy/Index/DataWriter.html">Lucy::Index::DataWriter</a> - Write data to an index.</li>
+<li><a href="Lucy/Index/DeletionsWriter.html">Lucy::Index::DeletionsWriter</a> - Abstract base class for marking documents as deleted.</li>
+<li><a href="Lucy/Index/DocReader.html">Lucy::Index::DocReader</a> - Retrieve stored documents.</li>
+<li><a href="Lucy/Index/IndexManager.html">Lucy::Index::IndexManager</a> - Policies governing index updating, locking, and file deletion.</li>
+<li><a href="Lucy/Index/IndexReader.html">Lucy::Index::IndexReader</a> - Read from an inverted index.</li>
+<li><a href="Lucy/Index/Indexer.html">Lucy::Index::Indexer</a> - Build inverted indexes.</li>
+<li><a href="Lucy/Index/Lexicon.html">Lucy::Index::Lexicon</a> - Iterator for a field's terms.</li>
+<li><a href="Lucy/Index/LexiconReader.html">Lucy::Index::LexiconReader</a> - Read Lexicon data.</li>
+<li><a href="Lucy/Index/PolyReader.html">Lucy::Index::PolyReader</a> - Multi-segment implementation of IndexReader.</li>
+<li><a href="Lucy/Index/PostingList.html">Lucy::Index::PostingList</a> - Term-Document pairings.</li>
+<li><a href="Lucy/Index/PostingListReader.html">Lucy::Index::PostingListReader</a> - Read postings data.</li>
+<li><a href="Lucy/Index/SegReader.html">Lucy::Index::SegReader</a> - Single-segment IndexReader.</li>
+<li><a href="Lucy/Index/SegWriter.html">Lucy::Index::SegWriter</a> - Write one segment of an index.</li>
+<li><a href="Lucy/Index/Segment.html">Lucy::Index::Segment</a> - Warehouse for information about one segment of an inverted index.</li>
+<li><a href="Lucy/Index/Similarity.html">Lucy::Index::Similarity</a> - Judge how well a document matches a query.</li>
+<li><a href="Lucy/Index/Snapshot.html">Lucy::Index::Snapshot</a> - Point-in-time index file list.</li>
+<li><a href="Lucy/Object/BitVector.html">Lucy::Object::BitVector</a> - An array of bits.</li>
+<li><a href="Lucy/Object/Err.html">Lucy::Object::Err</a> - Exception.</li>
+<li><a href="Lucy/Object/Obj.html">Lucy::Object::Obj</a> - Base class for all Lucy objects.</li>
+<li><a href="Lucy/Plan/Architecture.html">Lucy::Plan::Architecture</a> - Configure major components of an index.</li>
+<li><a href="Lucy/Plan/BlobType.html">Lucy::Plan::BlobType</a> - Default behaviors for binary fields.</li>
+<li><a href="Lucy/Plan/FieldType.html">Lucy::Plan::FieldType</a> - Define a field's behavior.</li>
+<li><a href="Lucy/Plan/FullTextType.html">Lucy::Plan::FullTextType</a> - Full-text search field type.</li>
+<li><a href="Lucy/Plan/Schema.html">Lucy::Plan::Schema</a> - User-created specification for an inverted index.</li>
+<li><a href="Lucy/Plan/StringType.html">Lucy::Plan::StringType</a> - Non-tokenized text type.</li>
+<li><a href="Lucy/Search/ANDQuery.html">Lucy::Search::ANDQuery</a> - Intersect multiple result sets.</li>
+<li><a href="Lucy/Search/Collector.html">Lucy::Search::Collector</a> - Process hits.</li>
+<li><a href="Lucy/Search/Collector/BitCollector.html">Lucy::Search::Collector::BitCollector</a> - Collector which records doc nums in a BitVector.</li>
+<li><a href="Lucy/Search/Compiler.html">Lucy::Search::Compiler</a> - Query-to-Matcher compiler.</li>
+<li><a href="Lucy/Search/Hits.html">Lucy::Search::Hits</a> - Access search results.</li>
+<li><a href="Lucy/Search/IndexSearcher.html">Lucy::Search::IndexSearcher</a> - Execute searches against a single index.</li>
+<li><a href="Lucy/Search/LeafQuery.html">Lucy::Search::LeafQuery</a> - Leaf node in a tree created by QueryParser.</li>
+<li><a href="Lucy/Search/MatchAllQuery.html">Lucy::Search::MatchAllQuery</a> - Query which matches all documents.</li>
+<li><a href="Lucy/Search/Matcher.html">Lucy::Search::Matcher</a> - Match a set of document ids.</li>
+<li><a href="Lucy/Search/NOTQuery.html">Lucy::Search::NOTQuery</a> - Invert the result set of another Query.</li>
+<li><a href="Lucy/Search/NoMatchQuery.html">Lucy::Search::NoMatchQuery</a> - Query which matches no documents.</li>
+<li><a href="Lucy/Search/ORQuery.html">Lucy::Search::ORQuery</a> - Union multiple result sets.</li>
+<li><a href="Lucy/Search/PhraseQuery.html">Lucy::Search::PhraseQuery</a> - Query matching an ordered list of terms.</li>
+<li><a href="Lucy/Search/PolyQuery.html">Lucy::Search::PolyQuery</a> - Base class for composite Query objects.</li>
+<li><a href="Lucy/Search/PolySearcher.html">Lucy::Search::PolySearcher</a> - Aggregate results from multiple Searchers.</li>
+<li><a href="Lucy/Search/Query.html">Lucy::Search::Query</a> - A specification for a search query.</li>
+<li><a href="Lucy/Search/QueryParser.html">Lucy::Search::QueryParser</a> - Transform a string into a Query object.</li>
+<li><a href="Lucy/Search/RangeQuery.html">Lucy::Search::RangeQuery</a> - Match a range of values.</li>
+<li><a href="Lucy/Search/RequiredOptionalQuery.html">Lucy::Search::RequiredOptionalQuery</a> - Join results for two Queries, one required, one optional.</li>
+<li><a href="Lucy/Search/Searcher.html">Lucy::Search::Searcher</a> - Base class for searching collections of documents.</li>
+<li><a href="Lucy/Search/SortRule.html">Lucy::Search::SortRule</a> - Element of a SortSpec.</li>
+<li><a href="Lucy/Search/SortSpec.html">Lucy::Search::SortSpec</a> - Specify a custom sort order for search results.</li>
+<li><a href="Lucy/Search/Span.html">Lucy::Search::Span</a> - An offset, a length, and a weight.</li>
+<li><a href="Lucy/Search/TermQuery.html">Lucy::Search::TermQuery</a> - Query which matches individual terms.</li>
+<li><a href="Lucy/Simple.html">Lucy::Simple</a> - Basic search engine.</li>
+<li><a href="Lucy/Store/FSFolder.html">Lucy::Store::FSFolder</a> - File System implementation of Folder.</li>
+<li><a href="Lucy/Store/Folder.html">Lucy::Store::Folder</a> - Abstract class representing a directory.</li>
+<li><a href="Lucy/Store/Lock.html">Lucy::Store::Lock</a> - Abstract class representing an interprocess mutex lock.</li>
+<li><a href="Lucy/Store/LockErr.html">Lucy::Store::LockErr</a> - Lock exception.</li>
+<li><a href="Lucy/Store/LockFactory.html">Lucy::Store::LockFactory</a> - Create Locks.</li>
+<li><a href="Lucy/Store/RAMFolder.html">Lucy::Store::RAMFolder</a> - In-memory Folder implementation.</li>
+<li><a href="LucyX/Index/ByteBufDocReader.html">LucyX::Index::ByteBufDocReader</a> - Read a Doc as a fixed-width byte array.</li>
+<li><a href="LucyX/Index/ByteBufDocWriter.html">LucyX::Index::ByteBufDocWriter</a> - Write a Doc as a fixed-width byte array.</li>
+<li><a href="LucyX/Index/LongFieldSim.html">LucyX::Index::LongFieldSim</a> - Similarity optimized for long fields.</li>
+<li><a href="LucyX/Index/ZlibDocReader.html">LucyX::Index::ZlibDocReader</a> - Compressed doc storage.</li>
+<li><a href="LucyX/Index/ZlibDocWriter.html">LucyX::Index::ZlibDocWriter</a> - Compressed doc storage.</li>
+<li><a href="LucyX/Remote/SearchClient.html">LucyX::Remote::SearchClient</a> - Connect to a remote SearchServer.</li>
+<li><a href="LucyX/Remote/SearchServer.html">LucyX::Remote::SearchServer</a> - Make a Searcher remotely accessible.</li>
+<li><a href="LucyX/Search/Filter.html">LucyX::Search::Filter</a> - Build a caching filter based on results of a Query.</li>
+<li><a href="LucyX/Search/MockMatcher.html">LucyX::Search::MockMatcher</a> - Matcher with arbitrary docs and scores.</li>
+<li><a href="LucyX/Search/ProximityQuery.html">LucyX::Search::ProximityQuery</a> - Query matching an ordered list of terms.</li>
+</ul>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2011 The Apache Software Foundation, Licensed under the 
+           <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+           <br/>
+           Apache Lucy, Lucy, Apache, the Apache feather logo, and the Apache Lucy project logo are trademarks of The
+           Apache Software Foundation.  All other marks mentioned may be trademarks or registered trademarks of their
+           respective owners.
+        </p>
+      </div> <!-- lucy-copyright -->
+
+    </div> <!-- lucy-rigid_wrapper -->
+
+  </body>
+</html>