Added: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Docs/Tutorial/QueryObjectsTutorial.html
==============================================================================
--- 
websites/staging/lucy/trunk/content/docs/test/Lucy/Docs/Tutorial/QueryObjectsTutorial.html
 (added)
+++ 
websites/staging/lucy/trunk/content/docs/test/Lucy/Docs/Tutorial/QueryObjectsTutorial.html
 Fri Feb 26 12:52:42 2016
@@ -0,0 +1,272 @@
+<!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>Lucy::Docs::Tutorial::QueryObjectsTutorial - Apache Lucy 
Documentation</title>
+    <link rel="stylesheet" type="text/css" media="screen" 
href="http://lucy.apache.org/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="/"><img 
src="http://lucy.apache.org/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="/">Lucy</a>&nbsp;&raquo&nbsp;<a 
href="/docs/">Docs</a>&nbsp;&raquo&nbsp;<a 
href="/docs/test/">Test</a>&nbsp;&raquo&nbsp;<a 
href="/docs/test/Lucy/">Lucy</a>&nbsp;&raquo&nbsp;<a 
href="/docs/test/Lucy/Docs/">Docs</a>&nbsp;&raquo&nbsp;<a 
href="/docs/test/Lucy/Docs/Tutorial/">Tutorial</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="/">Welcome</a></li>
+              <li><a href="/clownfish.html">Clownfish</a></li>
+              <li><a href="/faq.html">FAQ</a></li>
+              <li><a href="/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/download.html">Download</a></li>
+              <li><a href="/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/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="/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">
+          <div>
+<a name='___top' class='dummyTopAnchor' ></a>
+
+<h2><a class='u'
+name="NAME"
+>NAME</a></h2>
+
+<p>Lucy::Docs::Tutorial::QueryObjectsTutorial - Use Query objects instead of 
query strings.</p>
+
+<h2><a class='u'
+name="DESCRIPTION"
+>DESCRIPTION</a></h2>
+
+<p>Until now,
+our search app has had only a single search box.
+In this tutorial chapter,
+we&#8217;ll move towards an &#8220;advanced search&#8221; interface,
+by adding a &#8220;category&#8221; drop-down menu.
+Three new classes will be required:</p>
+
+<ul>
+<li><a href="../../../Lucy/Search/QueryParser.html" class="podlinkpod"
+>QueryParser</a> - Turn a query string into a <a 
href="../../../Lucy/Search/Query.html" class="podlinkpod"
+>Query</a> object.</li>
+
+<li><a href="../../../Lucy/Search/TermQuery.html" class="podlinkpod"
+>TermQuery</a> - Query for a specific term within a specific field.</li>
+
+<li><a href="../../../Lucy/Search/ANDQuery.html" class="podlinkpod"
+>ANDQuery</a> - &#8220;AND&#8221; together multiple Query objects to produce 
an intersected result set.</li>
+</ul>
+
+<h3><a class='u'
+name="Adaptations_to_indexer.pl"
+>Adaptations to indexer.pl</a></h3>
+
+<p>Our new &#8220;category&#8221; field will be a StringType field rather than 
a FullTextType field,
+because we will only be looking for exact matches.
+It needs to be indexed,
+but since we won&#8217;t display its value,
+it doesn&#8217;t need to be stored.</p>
+
+<pre>    my $cat_type = Lucy::Plan::StringType-&#62;new( stored =&#62; 0 );
+    $schema-&#62;spec_field( name =&#62; &#39;category&#39;, type =&#62; 
$cat_type );</pre>
+
+<p>There will be three possible values: &#8220;article&#8221;, 
&#8220;amendment&#8221;, and &#8220;preamble&#8221;, which we&#8217;ll hack out 
of the source file&#8217;s name during our <code>parse_file</code> 
subroutine:</p>
+
+<pre>    my $category
+        = $filename =~ /art/      ? &#39;article&#39;
+        : $filename =~ /amend/    ? &#39;amendment&#39;
+        : $filename =~ /preamble/ ? &#39;preamble&#39;
+        :                           die &#34;Can&#39;t derive category for 
$filename&#34;;
+    return {
+        title    =&#62; $title,
+        content  =&#62; $bodytext,
+        url      =&#62; &#34;/us_constitution/$filename&#34;,
+        category =&#62; $category,
+    };</pre>
+
+<h3><a class='u'
+name="Adaptations_to_search.cgi"
+>Adaptations to search.cgi</a></h3>
+
+<p>The &#8220;category&#8221; constraint will be added to our search interface 
using an HTML &#8220;select&#8221; element (this routine will need to be 
integrated into the HTML generation section of search.cgi):</p>
+
+<pre>    # Build up the HTML &#34;select&#34; object for the 
&#34;category&#34; field.
+    sub generate_category_select {
+        my $cat = shift;
+        my $select = qq|
+          &#60;select name=&#34;category&#34;&#62;
+            &#60;option value=&#34;&#34;&#62;All Sections&#60;/option&#62;
+            &#60;option value=&#34;article&#34;&#62;Articles&#60;/option&#62;
+            &#60;option 
value=&#34;amendment&#34;&#62;Amendments&#60;/option&#62;
+          &#60;/select&#62;|;
+        if ($cat) {
+            $select =~ s/&#34;$cat&#34;/&#34;$cat&#34; selected/;
+        }
+        return $select;
+    }</pre>
+
+<p>We&#8217;ll start off by loading our new modules and extracting our new CGI 
parameter.</p>
+
+<pre>    use Lucy::Search::QueryParser;
+    use Lucy::Search::TermQuery;
+    use Lucy::Search::ANDQuery;
+
+    ... 
+
+    my $category = decode( &#34;UTF-8&#34;, 
$cgi-&#62;param(&#39;category&#39;) || &#39;&#39; );</pre>
+
+<p>QueryParser&#8217;s constructor requires a &#8220;schema&#8221; argument. 
We can get that from our IndexSearcher:</p>
+
+<pre>    # Create an IndexSearcher and a QueryParser.
+    my $searcher = Lucy::Search::IndexSearcher-&#62;new( 
+        index =&#62; $path_to_index, 
+    );
+    my $qparser  = Lucy::Search::QueryParser-&#62;new( 
+        schema =&#62; $searcher-&#62;get_schema,
+    );</pre>
+
+<p>Previously, we have been handing raw query strings to IndexSearcher. Behind 
the scenes, IndexSearcher has been using a QueryParser to turn those query 
strings into Query objects. Now, we will bring QueryParser into the foreground 
and parse the strings explicitly.</p>
+
+<pre>    my $query = $qparser-&#62;parse($q);</pre>
+
+<p>If the user has specified a category, we&#8217;ll use an ANDQuery to join 
our parsed query together with a TermQuery representing the category.</p>
+
+<pre>    if ($category) {
+        my $category_query = Lucy::Search::TermQuery-&#62;new(
+            field =&#62; &#39;category&#39;, 
+            term  =&#62; $category,
+        );
+        $query = Lucy::Search::ANDQuery-&#62;new(
+            children =&#62; [ $query, $category_query ]
+        );
+    }</pre>
+
+<p>Now when we execute the query&#8230;</p>
+
+<pre>    # Execute the Query and get a Hits object.
+    my $hits = $searcher-&#62;hits(
+        query      =&#62; $query,
+        offset     =&#62; $offset,
+        num_wanted =&#62; $page_size,
+    );</pre>
+
+<p>&#8230; we&#8217;ll get a result set which is the intersection of the 
parsed query and the category query.</p>
+
+<h3><a class='u'
+name="Using_TermQuery_with_full_text_fields"
+>Using TermQuery with full text fields</a></h3>
+
+<p>When querying full text fields, the easiest way is to create query objects 
using QueryParser. But sometimes you want to create TermQuery for a single term 
in a FullTextType field directly. In this case, we have to run the search term 
through the field&#8217;s analyzer to make sure it gets normalized in the same 
way as the field&#8217;s content.</p>
+
+<pre>    sub make_term_query {
+        my ($field, $term) = @_;
+
+        my $token;
+        my $type = $schema-&#62;fetch_type($field);
+
+        if ( $type-&#62;isa(&#39;Lucy::Plan::FullTextType&#39;) ) {
+            # Run the term through the full text analysis chain.
+            my $analyzer = $type-&#62;get_analyzer;
+            my $tokens   = $analyzer-&#62;split($term);
+
+            if ( @$tokens != 1 ) {
+                # If the term expands to more than one token, or no
+                # tokens at all, it will never match a token in the
+                # full text field.
+                return Lucy::Search::NoMatchQuery-&#62;new;
+            }
+
+            $token = $tokens-&#62;[0];
+        }
+        else {
+            # Exact match for other types.
+            $token = $term;
+        }
+
+        return Lucy::Search::TermQuery-&#62;new(
+            field =&#62; $field,
+            term  =&#62; $token,
+        );
+    }</pre>
+
+<h3><a class='u'
+name="Congratulations!"
+>Congratulations!</a></h3>
+
+<p>You&#8217;ve made it to the end of the tutorial.</p>
+
+<h3><a class='u'
+name="See_Also"
+>See Also</a></h3>
+
+<p>For additional thematic documentation, see the Apache Lucy <a 
href="../../../Lucy/Docs/Cookbook.html" class="podlinkpod"
+>Cookbook</a>.</p>
+
+<p>ANDQuery has a companion class, <a href="../../../Lucy/Search/ORQuery.html" 
class="podlinkpod"
+>ORQuery</a>, and a close relative, <a 
href="../../../Lucy/Search/RequiredOptionalQuery.html" class="podlinkpod"
+>RequiredOptionalQuery</a>.</p>
+
+</div>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2015 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>

Added: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Docs/Tutorial/SimpleTutorial.html
==============================================================================
--- 
websites/staging/lucy/trunk/content/docs/test/Lucy/Docs/Tutorial/SimpleTutorial.html
 (added)
+++ 
websites/staging/lucy/trunk/content/docs/test/Lucy/Docs/Tutorial/SimpleTutorial.html
 Fri Feb 26 12:52:42 2016
@@ -0,0 +1,377 @@
+<!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>Lucy::Docs::Tutorial::SimpleTutorial - Apache Lucy 
Documentation</title>
+    <link rel="stylesheet" type="text/css" media="screen" 
href="http://lucy.apache.org/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="/"><img 
src="http://lucy.apache.org/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="/">Lucy</a>&nbsp;&raquo&nbsp;<a 
href="/docs/">Docs</a>&nbsp;&raquo&nbsp;<a 
href="/docs/test/">Test</a>&nbsp;&raquo&nbsp;<a 
href="/docs/test/Lucy/">Lucy</a>&nbsp;&raquo&nbsp;<a 
href="/docs/test/Lucy/Docs/">Docs</a>&nbsp;&raquo&nbsp;<a 
href="/docs/test/Lucy/Docs/Tutorial/">Tutorial</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="/">Welcome</a></li>
+              <li><a href="/clownfish.html">Clownfish</a></li>
+              <li><a href="/faq.html">FAQ</a></li>
+              <li><a href="/people.html">People</a></li>
+            </ul>
+          <h6>Resources</h6>
+            <ul>
+              <li><a href="/download.html">Download</a></li>
+              <li><a href="/mailing_lists.html">Mailing Lists</a></li>
+              <li><a href="/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="/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">
+          <div>
+<a name='___top' class='dummyTopAnchor' ></a>
+
+<h2><a class='u'
+name="NAME"
+>NAME</a></h2>
+
+<p>Lucy::Docs::Tutorial::SimpleTutorial - Bare-bones search app.</p>
+
+<h2><a class='u'
+name="DESCRIPTION"
+>DESCRIPTION</a></h2>
+
+<h3><a class='u'
+name="Setup"
+>Setup</a></h3>
+
+<p>Copy the text presentation of the US Constitution from the 
<code>sample</code> directory of the Apache Lucy distribution to the base level 
of your web server&#8217;s <code>htdocs</code> directory.</p>
+
+<pre>    $ cp -R sample/us_constitution /usr/local/apache2/htdocs/</pre>
+
+<h3><a class='u'
+name="Indexing:_indexer.pl"
+>Indexing: indexer.pl</a></h3>
+
+<p>Our first task will be to create an application called 
<code>indexer.pl</code> which builds a searchable &#8220;inverted index&#8221; 
from a collection of documents.</p>
+
+<p>After we specify some configuration variables and load all necessary 
modules&#8230;</p>
+
+<pre>    #!/usr/local/bin/perl
+    use strict;
+    use warnings;
+
+    # (Change configuration variables as needed.)
+    my $path_to_index = &#39;/path/to/index&#39;;
+    my $uscon_source  = &#39;/usr/local/apache2/htdocs/us_constitution&#39;;
+
+    use Lucy::Simple;
+    use File::Spec::Functions qw( catfile );</pre>
+
+<p>&#8230; we&#8217;ll start by creating a <a href="../../../Lucy/Simple.html" 
class="podlinkpod"
+>Lucy::Simple</a> object, telling it where we&#8217;d like the index to be 
located and the language of the source material.</p>
+
+<pre>    my $lucy = Lucy::Simple-&#62;new(
+        path     =&#62; $path_to_index,
+        language =&#62; &#39;en&#39;,
+    );</pre>
+
+<p>Next, we&#8217;ll add a subroutine which parses our sample documents.</p>
+
+<pre>    # Parse a file from our US Constitution collection and return a 
hashref with
+    # the fields title, body, and url.
+    sub parse_file {
+        my $filename = shift;
+        my $filepath = catfile( $uscon_source, $filename );
+        open( my $fh, &#39;&#60;&#39;, $filepath ) or die &#34;Can&#39;t open 
&#39;$filepath&#39;: $!&#34;;
+        my $text = do { local $/; &#60;$fh&#62; };    # slurp file content
+        $text =~ /\A(.+?)^\s+(.*)/ms
+            or die &#34;Can&#39;t extract title/bodytext from 
&#39;$filepath&#39;&#34;;
+        my $title    = $1;
+        my $bodytext = $2;
+        return {
+            title    =&#62; $title,
+            content  =&#62; $bodytext,
+            url      =&#62; &#34;/us_constitution/$filename&#34;,
+        };
+    }</pre>
+
+<p>Add some elementary directory reading code&#8230;</p>
+
+<pre>    # Collect names of source files.
+    opendir( my $dh, $uscon_source )
+        or die &#34;Couldn&#39;t opendir &#39;$uscon_source&#39;: $!&#34;;
+    my @filenames = grep { $_ =~ /\.txt/ } readdir $dh;</pre>
+
+<p>&#8230; and now we&#8217;re ready for the meat of indexer.pl &#8211; which 
occupies exactly one line of code.</p>
+
+<pre>    foreach my $filename (@filenames) {
+        my $doc = parse_file($filename);
+        $lucy-&#62;add_doc($doc);  # ta-da!
+    }</pre>
+
+<h3><a class='u'
+name="Search:_search.cgi"
+>Search: search.cgi</a></h3>
+
+<p>As with our indexing app, the bulk of the code in our search script 
won&#8217;t be Lucy-specific.</p>
+
+<p>The beginning is dedicated to CGI processing and configuration.</p>
+
+<pre>    #!/usr/local/bin/perl -T
+    use strict;
+    use warnings;
+
+    # (Change configuration variables as needed.)
+    my $path_to_index = &#39;/path/to/index&#39;;
+
+    use CGI;
+    use List::Util qw( max min );
+    use POSIX qw( ceil );
+    use Encode qw( decode );
+    use Lucy::Simple;
+
+    my $cgi       = CGI-&#62;new;
+    my $q         = decode( &#34;UTF-8&#34;, $cgi-&#62;param(&#39;q&#39;) || 
&#39;&#39; );
+    my $offset    = decode( &#34;UTF-8&#34;, $cgi-&#62;param(&#39;offset&#39;) 
|| 0 );
+    my $page_size = 10;</pre>
+
+<p>Once that&#8217;s out of the way, we create our Lucy::Simple object and 
feed it a query string.</p>
+
+<pre>    my $lucy = Lucy::Simple-&#62;new(
+        path     =&#62; $path_to_index,
+        language =&#62; &#39;en&#39;,
+    );
+    my $hit_count = $lucy-&#62;search(
+        query      =&#62; $q,
+        offset     =&#62; $offset,
+        num_wanted =&#62; $page_size,
+    );</pre>
+
+<p>The value returned by <a href="../../../Lucy/Simple.html#search" 
class="podlinkpod"
+>search()</a> is the total number of documents in the collection which matched 
the query. We&#8217;ll show this hit count to the user, and also use it in 
conjunction with the parameters <code>offset</code> and <code>num_wanted</code> 
to break up results into &#8220;pages&#8221; of manageable size.</p>
+
+<p>Calling <a href="../../../Lucy/Simple.html#search" class="podlinkpod"
+>search()</a> on our Simple object turns it into an iterator. Invoking <a 
href="../../../Lucy/Simple.html#next" class="podlinkpod"
+>next()</a> now returns hits one at a time as <a 
href="../../../Lucy/Document/HitDoc.html" class="podlinkpod"
+>HitDoc</a> objects, starting with the most relevant.</p>
+
+<pre>    # Create result list.
+    my $report = &#39;&#39;;
+    while ( my $hit = $lucy-&#62;next ) {
+        my $score = sprintf( &#34;%0.3f&#34;, $hit-&#62;get_score );
+        $report .= qq|
+            &#60;p&#62;
+              &#60;a 
href=&#34;$hit-&#62;{url}&#34;&#62;&#60;strong&#62;$hit-&#62;{title}&#60;/strong&#62;&#60;/a&#62;
+              &#60;em&#62;$score&#60;/em&#62;
+              &#60;br&#62;
+              &#60;span 
class=&#34;excerptURL&#34;&#62;$hit-&#62;{url}&#60;/span&#62;
+            &#60;/p&#62;
+            |;
+    }</pre>
+
+<p>The rest of the script is just text wrangling.</p>
+
+<pre>    #---------------------------------------------------------------#
+    # No tutorial material below this point - just html generation. #
+    #---------------------------------------------------------------#
+
+    # Generate paging links and hit count, print and exit.
+    my $paging_links = generate_paging_info( $q, $hit_count );
+    blast_out_content( $q, $report, $paging_links );
+
+    # Create html fragment with links for paging through results n-at-a-time.
+    sub generate_paging_info {
+        my ( $query_string, $total_hits ) = @_;
+        my $escaped_q = CGI::escapeHTML($query_string);
+        my $paging_info;
+        if ( !length $query_string ) {
+            # No query?  No display.
+            $paging_info = &#39;&#39;;
+        }
+        elsif ( $total_hits == 0 ) {
+            # Alert the user that their search failed.
+            $paging_info
+                = qq|&#60;p&#62;No matches for 
&#60;strong&#62;$escaped_q&#60;/strong&#62;&#60;/p&#62;|;
+        }
+        else {
+            # Calculate the nums for the first and last hit to display.
+            my $last_result = min( ( $offset + $page_size ), $total_hits );
+            my $first_result = min( ( $offset + 1 ), $last_result );
+
+            # Display the result nums, start paging info.
+            $paging_info = qq|
+                &#60;p&#62;
+                    Results 
&#60;strong&#62;$first_result-$last_result&#60;/strong&#62; 
+                    of &#60;strong&#62;$total_hits&#60;/strong&#62; 
+                    for &#60;strong&#62;$escaped_q&#60;/strong&#62;.
+                &#60;/p&#62;
+                &#60;p&#62;
+                    Results Page:
+                |;
+
+            # Calculate first and last hits pages to display / link to.
+            my $current_page = int( $first_result / $page_size ) + 1;
+            my $last_page    = ceil( $total_hits / $page_size );
+            my $first_page   = max( 1, ( $current_page - 9 ) );
+            $last_page = min( $last_page, ( $current_page + 10 ) );
+
+            # Create a url for use in paging links.
+            my $href = $cgi-&#62;url( -relative =&#62; 1 );
+            $href .= &#34;?q=&#34; . CGI::escape($query_string);
+            $href .= &#34;;offset=&#34; . CGI::escape($offset);
+
+            # Generate the &#34;Prev&#34; link.
+            if ( $current_page &#62; 1 ) {
+                my $new_offset = ( $current_page - 2 ) * $page_size;
+                $href =~ s/(?&#60;=offset=)\d+/$new_offset/;
+                $paging_info .= qq|&#60;a href=&#34;$href&#34;&#62;&#38;lt;= 
Prev&#60;/a&#62;\n|;
+            }
+
+            # Generate paging links.
+            for my $page_num ( $first_page .. $last_page ) {
+                if ( $page_num == $current_page ) {
+                    $paging_info .= qq|$page_num \n|;
+                }
+                else {
+                    my $new_offset = ( $page_num - 1 ) * $page_size;
+                    $href =~ s/(?&#60;=offset=)\d+/$new_offset/;
+                    $paging_info .= qq|&#60;a 
href=&#34;$href&#34;&#62;$page_num&#60;/a&#62;\n|;
+                }
+            }
+
+            # Generate the &#34;Next&#34; link.
+            if ( $current_page != $last_page ) {
+                my $new_offset = $current_page * $page_size;
+                $href =~ s/(?&#60;=offset=)\d+/$new_offset/;
+                $paging_info .= qq|&#60;a href=&#34;$href&#34;&#62;Next 
=&#38;gt;&#60;/a&#62;\n|;
+            }
+
+            # Close tag.
+            $paging_info .= &#34;&#60;/p&#62;\n&#34;;
+        }
+
+        return $paging_info;
+    }
+
+    # Print content to output.
+    sub blast_out_content {
+        my ( $query_string, $hit_list, $paging_info ) = @_;
+        my $escaped_q = CGI::escapeHTML($query_string);
+        binmode( STDOUT, &#34;:encoding(UTF-8)&#34; );
+        print qq|Content-type: text/html; charset=UTF-8\n\n|;
+        print qq|
+    &#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD HTML 4.01 Transitional//EN&#34;
+        &#34;http://www.w3.org/TR/html4/loose.dtd&#34;&#62;
+    &#60;html&#62;
+    &#60;head&#62;
+      &#60;meta http-equiv=&#34;Content-type&#34; 
+        content=&#34;text/html;charset=UTF-8&#34;&#62;
+      &#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; 
+        href=&#34;/us_constitution/uscon.css&#34;&#62;
+      &#60;title&#62;Lucy: $escaped_q&#60;/title&#62;
+    &#60;/head&#62;
+
+    &#60;body&#62;
+
+      &#60;div id=&#34;navigation&#34;&#62;
+        &#60;form id=&#34;usconSearch&#34; action=&#34;&#34;&#62;
+          &#60;strong&#62;
+            Search the 
+            &#60;a href=&#34;/us_constitution/index.html&#34;&#62;US 
Constitution&#60;/a&#62;:
+          &#60;/strong&#62;
+          &#60;input type=&#34;text&#34; name=&#34;q&#34; id=&#34;q&#34; 
value=&#34;$escaped_q&#34;&#62;
+          &#60;input type=&#34;submit&#34; value=&#34;=&#38;gt;&#34;&#62;
+        &#60;/form&#62;
+      &#60;/div&#62;&#60;!--navigation--&#62;
+
+      &#60;div id=&#34;bodytext&#34;&#62;
+
+      $hit_list
+
+      $paging_info
+
+        &#60;p style=&#34;font-size: smaller; color: #666&#34;&#62;
+          &#60;em&#62;
+            Powered by &#60;a href=&#34;http://lucy.apache.org/&#34;
+            &#62;Apache 
Lucy&#60;small&#62;&#60;sup&#62;TM&#60;/sup&#62;&#60;/small&#62;&#60;/a&#62;
+          &#60;/em&#62;
+        &#60;/p&#62;
+      &#60;/div&#62;&#60;!--bodytext--&#62;
+
+    &#60;/body&#62;
+
+    &#60;/html&#62;
+    |;
+    }</pre>
+
+<h3><a class='u'
+name="OK(8230)_now_what?"
+>OK&#8230; now what?</a></h3>
+
+<p>Lucy::Simple is perfectly adequate for some tasks, but it&#8217;s not very 
flexible. Many people find that it doesn&#8217;t do at least one or two things 
they can&#8217;t live without.</p>
+
+<p>In our next tutorial chapter, <a 
href="../../../Lucy/Docs/Tutorial/BeyondSimpleTutorial.html" class="podlinkpod"
+>BeyondSimpleTutorial</a>, we&#8217;ll rewrite our indexing and search scripts 
using the classes that Lucy::Simple hides from view, opening up the 
possibilities for expansion; then, we&#8217;ll spend the rest of the tutorial 
chapters exploring these possibilities.</p>
+
+</div>
+
+        </div> <!-- lucy-main_content_box --> 
+        <div class="clear"></div>
+
+      </div> <!-- lucy-main_content -->
+
+      <div id="lucy-copyright" class="container_16">
+        <p>Copyright &#169; 2010-2015 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>

Modified: websites/staging/lucy/trunk/content/docs/test/Lucy/Document/Doc.html
==============================================================================
--- websites/staging/lucy/trunk/content/docs/test/Lucy/Document/Doc.html 
(original)
+++ websites/staging/lucy/trunk/content/docs/test/Lucy/Document/Doc.html Fri 
Feb 26 12:52:42 2016
@@ -71,15 +71,15 @@
           <div>
 <a name='___top' class='dummyTopAnchor' ></a>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="NAME"
->NAME</a></h1>
+>NAME</a></h2>
 
 <p>Lucy::Document::Doc - A document.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="SYNOPSIS"
->SYNOPSIS</a></h1>
+>SYNOPSIS</a></h2>
 
 <pre>    my $doc = Lucy::Document::Doc-&#62;new(
         fields =&#62; { foo =&#62; &#39;foo foo&#39;, bar =&#62; &#39;bar 
bar&#39; },
@@ -91,55 +91,101 @@ name="SYNOPSIS"
 <pre>    $doc-&#62;{foo} = &#39;new value for field &#34;foo&#34;&#39;;
     print &#34;foo: $doc-&#62;{foo}\n&#34;;</pre>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="DESCRIPTION"
->DESCRIPTION</a></h1>
+>DESCRIPTION</a></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>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="CONSTRUCTORS"
->CONSTRUCTORS</a></h1>
+>CONSTRUCTORS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="new(_[labeled_params]_)"
->new( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="new"
+>new</a></h3>
 
 <pre>    my $doc = Lucy::Document::Doc-&#62;new(
         fields =&#62; { foo =&#62; &#39;foo foo&#39;, bar =&#62; &#39;bar 
bar&#39; },
     );</pre>
 
+<p>Create a new Document.</p>
+
 <ul>
 <li><b>fields</b> - Field-value pairs.</li>
 
 <li><b>doc_id</b> - Internal Lucy document id. Default of 0 (an invalid doc 
id).</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="METHODS"
->METHODS</a></h1>
+>METHODS</a></h2>
+
+<h3><a class='u'
+name="set_doc_id"
+>set_doc_id</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="set_doc_id(doc_id)"
->set_doc_id(doc_id)</a></h2>
+<pre>    $doc-&#62;set_doc_id($doc_id);</pre>
 
 <p>Set internal Lucy document id.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_doc_id()"
->get_doc_id()</a></h2>
+<h3><a class='u'
+name="get_doc_id"
+>get_doc_id</a></h3>
+
+<pre>    my $retval = $doc-&#62;get_doc_id();</pre>
 
 <p>Retrieve internal Lucy document id.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_fields()"
->get_fields()</a></h2>
+<h3><a class='u'
+name="store"
+>store</a></h3>
+
+<pre>    $doc-&#62;store($field, $value);</pre>
+
+<p>Store a field value in the Doc.</p>
+
+<ul>
+<li><b>field</b> - The field name.</li>
+
+<li><b>value</b> - The value.</li>
+</ul>
+
+<h3><a class='u'
+name="get_fields"
+>get_fields</a></h3>
+
+<pre>    my $retval = $doc-&#62;get_fields();</pre>
+
+<p>Return the Doc&#8217;s backing fields hash.</p>
+
+<h3><a class='u'
+name="get_size"
+>get_size</a></h3>
+
+<pre>    my $retval = $doc-&#62;get_size();</pre>
+
+<p>Return the number of fields in the Doc.</p>
+
+<h3><a class='u'
+name="extract"
+>extract</a></h3>
+
+<pre>    my $retval = $doc-&#62;extract($field);</pre>
+
+<p>Retrieve the field&#8217;s value, or NULL if the field is not present.</p>
+
+<h3><a class='u'
+name="field_names"
+>field_names</a></h3>
+
+<pre>    my $retval = $doc-&#62;field_names();</pre>
 
-<p>Return the Doc&#39;s backing fields hash.</p>
+<p>Return a list of names of all fields present.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="INHERITANCE"
->INHERITANCE</a></h1>
+>INHERITANCE</a></h2>
 
 <p>Lucy::Document::Doc isa Clownfish::Obj.</p>
 

Modified: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Document/HitDoc.html
==============================================================================
--- websites/staging/lucy/trunk/content/docs/test/Lucy/Document/HitDoc.html 
(original)
+++ websites/staging/lucy/trunk/content/docs/test/Lucy/Document/HitDoc.html Fri 
Feb 26 12:52:42 2016
@@ -71,15 +71,15 @@
           <div>
 <a name='___top' class='dummyTopAnchor' ></a>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="NAME"
->NAME</a></h1>
+>NAME</a></h2>
 
 <p>Lucy::Document::HitDoc - A document read from an index.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="SYNOPSIS"
->SYNOPSIS</a></h1>
+>SYNOPSIS</a></h2>
 
 <pre>    while ( my $hit_doc = $hits-&#62;next ) {
         print &#34;$hit_doc-&#62;{title}\n&#34;;
@@ -87,31 +87,35 @@ name="SYNOPSIS"
         ...
     }</pre>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="DESCRIPTION"
->DESCRIPTION</a></h1>
+>DESCRIPTION</a></h2>
 
-<p>HitDoc is the search-time relative of the index-time class Doc; it is 
augmented by a numeric score attribute that Doc doesn&#39;t have.</p>
+<p>HitDoc is the search-time relative of the index-time class Doc; it is 
augmented by a numeric score attribute that Doc doesn&#8217;t have.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="METHODS"
->METHODS</a></h1>
+>METHODS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="set_score(score)"
->set_score(score)</a></h2>
+<h3><a class='u'
+name="set_score"
+>set_score</a></h3>
+
+<pre>    $hit_doc-&#62;set_score($score);</pre>
 
 <p>Set score attribute.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_score()"
->get_score()</a></h2>
+<h3><a class='u'
+name="get_score"
+>get_score</a></h3>
+
+<pre>    my $retval = $hit_doc-&#62;get_score();</pre>
 
 <p>Get score attribute.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="INHERITANCE"
->INHERITANCE</a></h1>
+>INHERITANCE</a></h2>
 
 <p>Lucy::Document::HitDoc isa <a href="../../Lucy/Document/Doc.html" 
class="podlinkpod"
 >Lucy::Document::Doc</a> isa Clownfish::Obj.</p>

Modified: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Highlight/Highlighter.html
==============================================================================
--- 
websites/staging/lucy/trunk/content/docs/test/Lucy/Highlight/Highlighter.html 
(original)
+++ 
websites/staging/lucy/trunk/content/docs/test/Lucy/Highlight/Highlighter.html 
Fri Feb 26 12:52:42 2016
@@ -71,15 +71,15 @@
           <div>
 <a name='___top' class='dummyTopAnchor' ></a>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="NAME"
->NAME</a></h1>
+>NAME</a></h2>
 
 <p>Lucy::Highlight::Highlighter - Create and highlight excerpts.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="SYNOPSIS"
->SYNOPSIS</a></h1>
+>SYNOPSIS</a></h2>
 
 <pre>    my $highlighter = Lucy::Highlight::Highlighter-&#62;new(
         searcher =&#62; $searcher,
@@ -92,19 +92,19 @@ name="SYNOPSIS"
         ...
     }</pre>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="DESCRIPTION"
->DESCRIPTION</a></h1>
+>DESCRIPTION</a></h2>
 
 <p>The Highlighter can be used to select relevant snippets from a document, 
and to surround search terms with highlighting tags. It handles both stems and 
phrases correctly and efficiently, using special-purpose data generated at 
index-time.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="CONSTRUCTORS"
->CONSTRUCTORS</a></h1>
+>CONSTRUCTORS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="new(_[labeled_params]_)"
->new( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="new"
+>new</a></h3>
 
 <pre>    my $highlighter = Lucy::Highlight::Highlighter-&#62;new(
         searcher       =&#62; $searcher,    # required
@@ -113,6 +113,8 @@ name="new(_[labeled_params]_)"
         excerpt_length =&#62; 150,          # default: 200
     );</pre>
 
+<p>Create a new Highlighter.</p>
+
 <ul>
 <li><b>searcher</b> - An object which inherits from <a 
href="../../Lucy/Search/Searcher.html" class="podlinkpod"
 >Searcher</a>, such as an <a href="../../Lucy/Search/IndexSearcher.html" 
 >class="podlinkpod"
@@ -126,85 +128,111 @@ name="new(_[labeled_params]_)"
 <li><b>excerpt_length</b> - Maximum length of the excerpt, in characters.</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="METHODS"
->METHODS</a></h1>
+>METHODS</a></h2>
+
+<h3><a class='u'
+name="create_excerpt"
+>create_excerpt</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="create_excerpt(hit_doc)"
->create_excerpt(hit_doc)</a></h2>
+<pre>    my $retval = $highlighter-&#62;create_excerpt($hit_doc);</pre>
 
 <p>Take a HitDoc object and return a highlighted excerpt as a string if the 
HitDoc has a value for the specified <code>field</code>.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="highlight(text)"
->highlight(text)</a></h2>
+<h3><a class='u'
+name="encode"
+>encode</a></h3>
 
-<p>Highlight a small section of text. By default, prepends pre-tag and appends 
post-tag. This method is called internally by create_excerpt() when assembling 
an excerpt.</p>
+<pre>    my $retval = $highlighter-&#62;encode($text);</pre>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="encode(text)"
->encode(text)</a></h2>
+<p>Encode text with HTML entities. This method is called internally by <a 
href="#create_excerpt" class="podlinkpod"
+>create_excerpt()</a> for each text fragment when assembling an excerpt. A 
subclass can override this if the text should be encoded differently or not at 
all.</p>
 
-<p>Encode text with HTML entities. This method is called internally by 
create_excerpt() for each text fragment when assembling an excerpt. A subclass 
can override this if the text should be encoded differently or not at all.</p>
+<h3><a class='u'
+name="highlight"
+>highlight</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="set_pre_tag(pre_tag)"
->set_pre_tag(pre_tag)</a></h2>
+<pre>    my $retval = $highlighter-&#62;highlight($text);</pre>
 
-<p>Setter. The default value is &#34;&#60;strong&#62;&#34;.</p>
+<p>Highlight a small section of text. By default, prepends pre-tag and appends 
post-tag. This method is called internally by <a href="#create_excerpt" 
class="podlinkpod"
+>create_excerpt()</a> when assembling an excerpt.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_pre_tag()"
->get_pre_tag()</a></h2>
+<h3><a class='u'
+name="set_pre_tag"
+>set_pre_tag</a></h3>
 
-<p>Accessor.</p>
+<pre>    $highlighter-&#62;set_pre_tag($pre_tag);</pre>
+
+<p>Setter. The default value is &#8220;&#60;strong&#62;&#8221;.</p>
+
+<h3><a class='u'
+name="set_post_tag"
+>set_post_tag</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="set_post_tag(post_tag)"
->set_post_tag(post_tag)</a></h2>
+<pre>    $highlighter-&#62;set_post_tag($post_tag);</pre>
 
-<p>Setter. The default value is &#34;&#60;/strong&#62;&#34;.</p>
+<p>Setter. The default value is &#8220;&#60;/strong&#62;&#8221;.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_post_tag()"
->get_post_tag()</a></h2>
+<h3><a class='u'
+name="get_pre_tag"
+>get_pre_tag</a></h3>
+
+<pre>    my $retval = $highlighter-&#62;get_pre_tag();</pre>
 
 <p>Accessor.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_searcher()"
->get_searcher()</a></h2>
+<h3><a class='u'
+name="get_post_tag"
+>get_post_tag</a></h3>
+
+<pre>    my $retval = $highlighter-&#62;get_post_tag();</pre>
 
 <p>Accessor.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_query()"
->get_query()</a></h2>
+<h3><a class='u'
+name="get_field"
+>get_field</a></h3>
+
+<pre>    my $retval = $highlighter-&#62;get_field();</pre>
 
 <p>Accessor.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_compiler()"
->get_compiler()</a></h2>
+<h3><a class='u'
+name="get_excerpt_length"
+>get_excerpt_length</a></h3>
 
-<p>Accessor for the Lucy::Search::Compiler object derived from 
<code>query</code> and <code>searcher</code>.</p>
+<pre>    my $retval = $highlighter-&#62;get_excerpt_length();</pre>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_excerpt_length()"
->get_excerpt_length()</a></h2>
+<p>Accessor.</p>
+
+<h3><a class='u'
+name="get_searcher"
+>get_searcher</a></h3>
+
+<pre>    my $retval = $highlighter-&#62;get_searcher();</pre>
 
 <p>Accessor.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_field()"
->get_field()</a></h2>
+<h3><a class='u'
+name="get_query"
+>get_query</a></h3>
+
+<pre>    my $retval = $highlighter-&#62;get_query();</pre>
 
 <p>Accessor.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h3><a class='u'
+name="get_compiler"
+>get_compiler</a></h3>
+
+<pre>    my $retval = $highlighter-&#62;get_compiler();</pre>
+
+<p>Accessor for the Lucy::Search::Compiler object derived from 
<code>query</code> and <code>searcher</code>.</p>
+
+<h2><a class='u'
 name="INHERITANCE"
->INHERITANCE</a></h1>
+>INHERITANCE</a></h2>
 
 <p>Lucy::Highlight::Highlighter isa Clownfish::Obj.</p>
 

Modified: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/BackgroundMerger.html
==============================================================================
--- 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/BackgroundMerger.html 
(original)
+++ 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/BackgroundMerger.html 
Fri Feb 26 12:52:42 2016
@@ -71,39 +71,39 @@
           <div>
 <a name='___top' class='dummyTopAnchor' ></a>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="NAME"
->NAME</a></h1>
+>NAME</a></h2>
 
 <p>Lucy::Index::BackgroundMerger - Consolidate index segments in the 
background.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="SYNOPSIS"
->SYNOPSIS</a></h1>
+>SYNOPSIS</a></h2>
 
 <pre>    my $bg_merger = Lucy::Index::BackgroundMerger-&#62;new(
         index  =&#62; &#39;/path/to/index&#39;,
     );
     $bg_merger-&#62;commit;</pre>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="DESCRIPTION"
->DESCRIPTION</a></h1>
+>DESCRIPTION</a></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 <a href="../../Lucy/Docs/Cookbook/FastUpdates.html" class="podlinkpod"
->Lucy::Docs::Cookbook::FastUpdates</a> for how to use this class to control 
worst-case index update performance.</p>
+>FastUpdates</a> for how to use this class to control worst-case index update 
performance.</p>
 
 <p>As with <a href="../../Lucy/Index/Indexer.html" class="podlinkpod"
 >Indexer</a>, see <a href="../../Lucy/Docs/FileLocking.html" class="podlinkpod"
->Lucy::Docs::FileLocking</a> if your index is on a shared volume.</p>
+>FileLocking</a> if your index is on a shared volume.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="CONSTRUCTORS"
->CONSTRUCTORS</a></h1>
+>CONSTRUCTORS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="new(_[labeled_params]_)"
->new( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="new"
+>new</a></h3>
 
 <pre>    my $bg_merger = Lucy::Index::BackgroundMerger-&#62;new(
         index   =&#62; &#39;/path/to/index&#39;,    # required
@@ -118,35 +118,46 @@ name="new(_[labeled_params]_)"
 <li><b>manager</b> - An IndexManager. If not supplied, an IndexManager with a 
10-second write lock timeout will be created.</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="METHODS"
->METHODS</a></h1>
+>METHODS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="commit()"
->commit()</a></h2>
+<h3><a class='u'
+name="optimize"
+>optimize</a></h3>
 
-<p>Commit any changes made to the index. Until this is called, none of the 
changes made during an indexing session are permanent.</p>
+<pre>    $background_merger-&#62;optimize();</pre>
 
-<p>Calls prepare_commit() implicitly if it has not already been called.</p>
+<p>Optimize the index for search-time performance. This may take a while, as 
it can involve rewriting large amounts of data.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="prepare_commit()"
->prepare_commit()</a></h2>
+<h3><a class='u'
+name="commit"
+>commit</a></h3>
 
-<p>Perform the expensive setup for commit() in advance, so that commit() 
completes quickly.</p>
+<pre>    $background_merger-&#62;commit();</pre>
 
-<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>
+<p>Commit any changes made to the index. Until this is called, none of the 
changes made during an indexing session are permanent.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="optimize()"
->optimize()</a></h2>
+<p>Calls <a href="#prepare_commit" class="podlinkpod"
+>prepare_commit()</a> implicitly if it has not already been called.</p>
 
-<p>Optimize the index for search-time performance. This may take a while, as 
it can involve rewriting large amounts of data.</p>
+<h3><a class='u'
+name="prepare_commit"
+>prepare_commit</a></h3>
+
+<pre>    $background_merger-&#62;prepare_commit();</pre>
+
+<p>Perform the expensive setup for <a href="#commit" class="podlinkpod"
+>commit()</a> in advance, so that <a href="#commit" class="podlinkpod"
+>commit()</a> completes quickly.</p>
+
+<p>Towards the end of <a href="#prepare_commit" class="podlinkpod"
+>prepare_commit()</a>, the BackgroundMerger attempts to re-acquire the write 
lock, which is then held until <a href="#commit" class="podlinkpod"
+>commit()</a> finishes and releases it.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="INHERITANCE"
->INHERITANCE</a></h1>
+>INHERITANCE</a></h2>
 
 <p>Lucy::Index::BackgroundMerger isa Clownfish::Obj.</p>
 

Modified: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DataReader.html
==============================================================================
--- websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DataReader.html 
(original)
+++ websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DataReader.html 
Fri Feb 26 12:52:42 2016
@@ -71,32 +71,32 @@
           <div>
 <a name='___top' class='dummyTopAnchor' ></a>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="NAME"
->NAME</a></h1>
+>NAME</a></h2>
 
 <p>Lucy::Index::DataReader - Abstract base class for reading index data.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="SYNOPSIS"
->SYNOPSIS</a></h1>
+>SYNOPSIS</a></h2>
 
 <pre>    # Abstract base class.</pre>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="DESCRIPTION"
->DESCRIPTION</a></h1>
+>DESCRIPTION</a></h2>
 
 <p>DataReader is the companion class to <a 
href="../../Lucy/Index/DataWriter.html" class="podlinkpod"
 >DataWriter</a>. Every index component will implement one of each.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="CONSTRUCTORS"
->CONSTRUCTORS</a></h1>
+>CONSTRUCTORS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="new(_[labeled_params]_)"
->new( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="new"
+>new</a></h3>
 
 <pre>    my $reader = MyDataReader-&#62;new(
         schema   =&#62; $seg_reader-&#62;get_schema,      # default undef
@@ -106,6 +106,8 @@ name="new(_[labeled_params]_)"
         seg_tick =&#62; $seg_reader-&#62;get_seg_tick,    # default -1
     );</pre>
 
+<p>Abstract constructor.</p>
+
 <ul>
 <li><b>schema</b> - A Schema.</li>
 
@@ -118,13 +120,18 @@ name="new(_[labeled_params]_)"
 <li><b>seg_tick</b> - 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.</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="ABSTRACT_METHODS"
->ABSTRACT METHODS</a></h1>
+>ABSTRACT METHODS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="aggregator(_[labeled_params]_)"
->aggregator( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="aggregator"
+>aggregator</a></h3>
+
+<pre>    my $retval = $data_reader-&#62;aggregator(
+        readers =&#62; $readers  # required
+        offsets =&#62; $offsets  # required
+    );</pre>
 
 <p>Create a reader which aggregates the output of several lower level readers. 
Return undef if such a reader is not valid.</p>
 
@@ -134,49 +141,61 @@ name="aggregator(_[labeled_params]_)"
 <li><b>offsets</b> - Doc id start offsets for each reader.</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="METHODS"
->METHODS</a></h1>
+>METHODS</a></h2>
+
+<h3><a class='u'
+name="get_schema"
+>get_schema</a></h3>
+
+<pre>    my $retval = $data_reader-&#62;get_schema();</pre>
+
+<p>Accessor for &#8220;schema&#8221; member var.</p>
+
+<h3><a class='u'
+name="get_folder"
+>get_folder</a></h3>
+
+<pre>    my $retval = $data_reader-&#62;get_folder();</pre>
+
+<p>Accessor for &#8220;folder&#8221; member var.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_schema()"
->get_schema()</a></h2>
+<h3><a class='u'
+name="get_snapshot"
+>get_snapshot</a></h3>
 
-<p>Accessor for &#34;schema&#34; member var.</p>
+<pre>    my $retval = $data_reader-&#62;get_snapshot();</pre>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_folder()"
->get_folder()</a></h2>
+<p>Accessor for &#8220;snapshot&#8221; member var.</p>
 
-<p>Accessor for &#34;folder&#34; member var.</p>
+<h3><a class='u'
+name="get_segments"
+>get_segments</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_snapshot()"
->get_snapshot()</a></h2>
+<pre>    my $retval = $data_reader-&#62;get_segments();</pre>
 
-<p>Accessor for &#34;snapshot&#34; member var.</p>
+<p>Accessor for &#8220;segments&#8221; member var.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_segments()"
->get_segments()</a></h2>
+<h3><a class='u'
+name="get_segment"
+>get_segment</a></h3>
 
-<p>Accessor for &#34;segments&#34; member var.</p>
+<pre>    my $retval = $data_reader-&#62;get_segment();</pre>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_segment()"
->get_segment()</a></h2>
+<p>Accessor for &#8220;segment&#8221; member var.</p>
 
-<p>Accessor for &#34;segment&#34; member var.</p>
+<h3><a class='u'
+name="get_seg_tick"
+>get_seg_tick</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_seg_tick()"
->get_seg_tick()</a></h2>
+<pre>    my $retval = $data_reader-&#62;get_seg_tick();</pre>
 
-<p>Accessor for &#34;seg_tick&#34; member var.</p>
+<p>Accessor for &#8220;seg_tick&#8221; member var.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="INHERITANCE"
->INHERITANCE</a></h1>
+>INHERITANCE</a></h2>
 
 <p>Lucy::Index::DataReader isa Clownfish::Obj.</p>
 

Modified: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DataWriter.html
==============================================================================
--- websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DataWriter.html 
(original)
+++ websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DataWriter.html 
Fri Feb 26 12:52:42 2016
@@ -71,35 +71,35 @@
           <div>
 <a name='___top' class='dummyTopAnchor' ></a>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="NAME"
->NAME</a></h1>
+>NAME</a></h2>
 
 <p>Lucy::Index::DataWriter - Write data to an index.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="SYNOPSIS"
->SYNOPSIS</a></h1>
+>SYNOPSIS</a></h2>
 
 <pre>    # Abstract base class.</pre>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="DESCRIPTION"
->DESCRIPTION</a></h1>
+>DESCRIPTION</a></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/Index/DataReader.html" class="podlinkpod"
+<p>DataWriter is an abstract base class for writing index data, generally in 
segment-sized chunks. Each component of an index &#8211; e.g. stored fields, 
lexicon, postings, deletions &#8211; is represented by a DataWriter/<a 
href="../../Lucy/Index/DataReader.html" class="podlinkpod"
 >DataReader</a> pair.</p>
 
 <p>Components may be specified per index by subclassing <a 
href="../../Lucy/Plan/Architecture.html" class="podlinkpod"
 >Architecture</a>.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="CONSTRUCTORS"
->CONSTRUCTORS</a></h1>
+>CONSTRUCTORS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="new(_[labeled_params]_)"
->new( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="new"
+>new</a></h3>
 
 <pre>    my $writer = MyDataWriter-&#62;new(
         snapshot   =&#62; $snapshot,      # required
@@ -107,6 +107,8 @@ name="new(_[labeled_params]_)"
         polyreader =&#62; $polyreader,    # required
     );</pre>
 
+<p>Abstract constructor.</p>
+
 <ul>
 <li><b>snapshot</b> - The Snapshot that will be committed at the end of the 
indexing session.</li>
 
@@ -115,25 +117,18 @@ name="new(_[labeled_params]_)"
 <li><b>polyreader</b> - A PolyReader representing all existing data in the 
index. (If the index is brand new, the PolyReader will have no 
sub-readers).</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="ABSTRACT_METHODS"
->ABSTRACT METHODS</a></h1>
-
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="add_inverted_doc(_[labeled_params]_)"
->add_inverted_doc( <i>[labeled params]</i> )</a></h2>
-
-<p>Process a document, previously inverted by <code>inverter</code>.</p>
-
-<ul>
-<li><b>inverter</b> - An Inverter wrapping an inverted document.</li>
+>ABSTRACT METHODS</a></h2>
 
-<li><b>doc_id</b> - Internal number assigned to this document within the 
segment.</li>
-</ul>
-
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="add_segment(_[labeled_params]_)"
->add_segment( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="add_segment"
+>add_segment</a></h3>
+
+<pre>    $data_writer-&#62;add_segment(
+        reader  =&#62; $reader   # required
+        doc_map =&#62; $doc_map  # default: undef
+    );</pre>
 
 <p>Add content from an existing segment into the one currently being 
written.</p>
 
@@ -143,39 +138,52 @@ name="add_segment(_[labeled_params]_)"
 <li><b>doc_map</b> - An array of integers mapping old document ids to new. 
Deleted documents are mapped to 0, indicating that they should be skipped.</li>
 </ul>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="finish()"
->finish()</a></h2>
+<h3><a class='u'
+name="finish"
+>finish</a></h3>
+
+<pre>    $data_writer-&#62;finish();</pre>
 
 <p>Complete the segment: close all streams, store metadata, etc.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="format()"
->format()</a></h2>
+<h3><a class='u'
+name="format"
+>format</a></h3>
+
+<pre>    my $retval = $data_writer-&#62;format();</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>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="METHODS"
->METHODS</a></h1>
+>METHODS</a></h2>
+
+<h3><a class='u'
+name="delete_segment"
+>delete_segment</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="delete_segment(reader)"
->delete_segment(reader)</a></h2>
+<pre>    $data_writer-&#62;delete_segment($reader);</pre>
 
-<p>Remove a segment&#39;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>
+<p>Remove a segment&#8217;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>
 
 <ul>
 <li><b>reader</b> - The SegReader containing content to merge, which must 
represent a segment which is part of the the current snapshot.</li>
 </ul>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="merge_segment(_[labeled_params]_)"
->merge_segment( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="merge_segment"
+>merge_segment</a></h3>
+
+<pre>    $data_writer-&#62;merge_segment(
+        reader  =&#62; $reader   # required
+        doc_map =&#62; $doc_map  # default: undef
+    );</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>
+<p>The default implementation calls <a href="#add_segment" class="podlinkpod"
+>add_segment()</a> then <a href="#delete_segment" class="podlinkpod"
+>delete_segment()</a>.</p>
 
 <ul>
 <li><b>reader</b> - The SegReader containing content to merge, which must 
represent a segment which is part of the the current snapshot.</li>
@@ -183,45 +191,57 @@ name="merge_segment(_[labeled_params]_)"
 <li><b>doc_map</b> - An array of integers mapping old document ids to new. 
Deleted documents are mapped to 0, indicating that they should be skipped.</li>
 </ul>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="metadata()"
->metadata()</a></h2>
+<h3><a class='u'
+name="metadata"
+>metadata</a></h3>
+
+<pre>    my $retval = $data_writer-&#62;metadata();</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 
&#8220;format&#8221;.</p>
+
+<h3><a class='u'
+name="get_snapshot"
+>get_snapshot</a></h3>
+
+<pre>    my $retval = $data_writer-&#62;get_snapshot();</pre>
+
+<p>Accessor for &#8220;snapshot&#8221; member var.</p>
+
+<h3><a class='u'
+name="get_segment"
+>get_segment</a></h3>
 
-<p>Arbitrary metadata to be serialized and stored by the Segment. The default 
implementation supplies a Hash with a single key-value pair for 
&#34;format&#34;.</p>
+<pre>    my $retval = $data_writer-&#62;get_segment();</pre>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_snapshot()"
->get_snapshot()</a></h2>
+<p>Accessor for &#8220;segment&#8221; member var.</p>
 
-<p>Accessor for &#34;snapshot&#34; member var.</p>
+<h3><a class='u'
+name="get_polyreader"
+>get_polyreader</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_segment()"
->get_segment()</a></h2>
+<pre>    my $retval = $data_writer-&#62;get_polyreader();</pre>
 
-<p>Accessor for &#34;segment&#34; member var.</p>
+<p>Accessor for &#8220;polyreader&#8221; member var.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_polyreader()"
->get_polyreader()</a></h2>
+<h3><a class='u'
+name="get_schema"
+>get_schema</a></h3>
 
-<p>Accessor for &#34;polyreader&#34; member var.</p>
+<pre>    my $retval = $data_writer-&#62;get_schema();</pre>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_schema()"
->get_schema()</a></h2>
+<p>Accessor for &#8220;schema&#8221; member var.</p>
 
-<p>Accessor for &#34;schema&#34; member var.</p>
+<h3><a class='u'
+name="get_folder"
+>get_folder</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_folder()"
->get_folder()</a></h2>
+<pre>    my $retval = $data_writer-&#62;get_folder();</pre>
 
-<p>Accessor for &#34;folder&#34; member var.</p>
+<p>Accessor for &#8220;folder&#8221; member var.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="INHERITANCE"
->INHERITANCE</a></h1>
+>INHERITANCE</a></h2>
 
 <p>Lucy::Index::DataWriter isa Clownfish::Obj.</p>
 

Modified: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DeletionsWriter.html
==============================================================================
--- 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DeletionsWriter.html 
(original)
+++ 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DeletionsWriter.html 
Fri Feb 26 12:52:42 2016
@@ -71,15 +71,15 @@
           <div>
 <a name='___top' class='dummyTopAnchor' ></a>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="NAME"
->NAME</a></h1>
+>NAME</a></h2>
 
 <p>Lucy::Index::DeletionsWriter - Abstract base class for marking documents as 
deleted.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="SYNOPSIS"
->SYNOPSIS</a></h1>
+>SYNOPSIS</a></h2>
 
 <pre>    my $polyreader  = $del_writer-&#62;get_polyreader;
     my $seg_readers = $polyreader-&#62;seg_readers;
@@ -88,9 +88,9 @@ name="SYNOPSIS"
         ...
     }</pre>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="DESCRIPTION"
->DESCRIPTION</a></h1>
+>DESCRIPTION</a></h2>
 
 <p>Subclasses of DeletionsWriter provide a low-level mechanism for declaring a 
document deleted from an index.</p>
 
@@ -98,25 +98,32 @@ name="DESCRIPTION"
 
 <p>Documents are truly deleted only when the segments which contain them are 
merged into new ones.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="ABSTRACT_METHODS"
->ABSTRACT METHODS</a></h1>
+>ABSTRACT METHODS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="delete_by_term(_[labeled_params]_)"
->delete_by_term( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="delete_by_term"
+>delete_by_term</a></h3>
+
+<pre>    $deletions_writer-&#62;delete_by_term(
+        field =&#62; $field  # required
+        term  =&#62; $term   # required
+    );</pre>
 
 <p>Delete all documents in the index that index the supplied term.</p>
 
 <ul>
-<li><b>field</b> - The name of an indexed field. (If it is not spec&#39;d as 
<code>indexed</code>, an error will occur.)</li>
+<li><b>field</b> - The name of an indexed field. (If it is not spec&#8217;d as 
<code>indexed</code>, an error will occur.)</li>
 
-<li><b>term</b> - 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&#39;t pre-process it yourself).</li>
+<li><b>term</b> - 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&#8217;t pre-process it yourself).</li>
 </ul>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="delete_by_query(query)"
->delete_by_query(query)</a></h2>
+<h3><a class='u'
+name="delete_by_query"
+>delete_by_query</a></h3>
+
+<pre>    $deletions_writer-&#62;delete_by_query($query);</pre>
 
 <p>Delete all documents in the index that match <code>query</code>.</p>
 
@@ -125,15 +132,19 @@ name="delete_by_query(query)"
 >Query</a>.</li>
 </ul>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="updated()"
->updated()</a></h2>
+<h3><a class='u'
+name="updated"
+>updated</a></h3>
+
+<pre>    my $retval = $deletions_writer-&#62;updated();</pre>
 
 <p>Returns true if there are updates that need to be written.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="seg_del_count(seg_name)"
->seg_del_count(seg_name)</a></h2>
+<h3><a class='u'
+name="seg_del_count"
+>seg_del_count</a></h3>
+
+<pre>    my $retval = $deletions_writer-&#62;seg_del_count($seg_name);</pre>
 
 <p>Return the number of deletions for a given segment.</p>
 
@@ -141,9 +152,9 @@ name="seg_del_count(seg_name)"
 <li><b>seg_name</b> - The name of the segment.</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="INHERITANCE"
->INHERITANCE</a></h1>
+>INHERITANCE</a></h2>
 
 <p>Lucy::Index::DeletionsWriter isa <a href="../../Lucy/Index/DataWriter.html" 
class="podlinkpod"
 >Lucy::Index::DataWriter</a> isa Clownfish::Obj.</p>

Modified: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DocReader.html
==============================================================================
--- websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DocReader.html 
(original)
+++ websites/staging/lucy/trunk/content/docs/test/Lucy/Index/DocReader.html Fri 
Feb 26 12:52:42 2016
@@ -71,45 +71,52 @@
           <div>
 <a name='___top' class='dummyTopAnchor' ></a>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="NAME"
->NAME</a></h1>
+>NAME</a></h2>
 
 <p>Lucy::Index::DocReader - Retrieve stored documents.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="SYNOPSIS"
->SYNOPSIS</a></h1>
+>SYNOPSIS</a></h2>
 
 <pre>    my $doc_reader = 
$seg_reader-&#62;obtain(&#34;Lucy::Index::DocReader&#34;);
     my $doc        = $doc_reader-&#62;fetch_doc($doc_id);</pre>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="DESCRIPTION"
->DESCRIPTION</a></h1>
+>DESCRIPTION</a></h2>
 
 <p>DocReader defines the interface by which documents (with all stored fields) 
are retrieved from the index. The default implementation returns <a 
href="../../Lucy/Document/HitDoc.html" class="podlinkpod"
 >HitDoc</a> objects.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="ABSTRACT_METHODS"
->ABSTRACT METHODS</a></h1>
+>ABSTRACT METHODS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="fetch_doc(doc_id)"
->fetch_doc(doc_id)</a></h2>
+<h3><a class='u'
+name="fetch_doc"
+>fetch_doc</a></h3>
+
+<pre>    my $retval = $doc_reader-&#62;fetch_doc($doc_id);</pre>
 
 <p>Retrieve the document identified by <code>doc_id</code>.</p>
 
 <p>Returns: a HitDoc.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="METHODS"
->METHODS</a></h1>
+>METHODS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="aggregator(_[labeled_params]_)"
->aggregator( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="aggregator"
+>aggregator</a></h3>
+
+<pre>    my $retval = $doc_reader-&#62;aggregator(
+        readers =&#62; $readers  # required
+        offsets =&#62; $offsets  # required
+    );</pre>
 
 <p>Returns a DocReader which divvies up requests to its sub-readers according 
to the offset range.</p>
 
@@ -119,9 +126,9 @@ name="aggregator(_[labeled_params]_)"
 <li><b>offsets</b> - Doc id start offsets for each reader.</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="INHERITANCE"
->INHERITANCE</a></h1>
+>INHERITANCE</a></h2>
 
 <p>Lucy::Index::DocReader isa <a href="../../Lucy/Index/DataReader.html" 
class="podlinkpod"
 >Lucy::Index::DataReader</a> isa Clownfish::Obj.</p>

Modified: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/IndexManager.html
==============================================================================
--- websites/staging/lucy/trunk/content/docs/test/Lucy/Index/IndexManager.html 
(original)
+++ websites/staging/lucy/trunk/content/docs/test/Lucy/Index/IndexManager.html 
Fri Feb 26 12:52:42 2016
@@ -71,17 +71,17 @@
           <div>
 <a name='___top' class='dummyTopAnchor' ></a>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="NAME"
->NAME</a></h1>
+>NAME</a></h2>
 
 <p>Lucy::Index::IndexManager - Policies governing index updating,
 locking,
 and file deletion.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="SYNOPSIS"
->SYNOPSIS</a></h1>
+>SYNOPSIS</a></h2>
 
 <pre>    use Sys::Hostname qw( hostname );
     my $hostname = hostname() or die &#34;Can&#39;t get unique hostname&#34;;
@@ -102,46 +102,74 @@ name="SYNOPSIS"
     );
     my $searcher = Lucy::Search::IndexSearcher-&#62;new( index =&#62; $reader 
);</pre>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="DESCRIPTION"
->DESCRIPTION</a></h1>
+>DESCRIPTION</a></h2>
 
 <p>IndexManager is an advanced-use class for controlling index locking, 
updating, merging, and deletion behaviors.</p>
 
 <p>IndexManager and <a href="../../Lucy/Plan/Architecture.html" 
class="podlinkpod"
 >Architecture</a> are complementary classes: Architecture is used to define 
 >traits and behaviors which cannot change for the life of an index; 
 >IndexManager is used for defining rules which may change from process to 
 >process.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="CONSTRUCTORS"
->CONSTRUCTORS</a></h1>
+>CONSTRUCTORS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="new(_[labeled_params]_)"
->new( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="new"
+>new</a></h3>
 
 <pre>    my $manager = Lucy::Index::IndexManager-&#62;new(
         host =&#62; $hostname,    # default: &#34;&#34;
     );</pre>
 
+<p>Create a new IndexManager.</p>
+
 <ul>
 <li><b>host</b> - An identifier which should be unique per-machine.</li>
 
 <li><b>lock_factory</b> - A LockFactory.</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="METHODS"
->METHODS</a></h1>
+>METHODS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="make_write_lock()"
->make_write_lock()</a></h2>
+<h3><a class='u'
+name="set_folder"
+>set_folder</a></h3>
 
-<p>Create the Lock which controls access to modifying the logical content of 
the index.</p>
+<pre>    $index_manager-&#62;set_folder($folder);
+    $index_manager-&#62;set_folder();  # default: undef</pre>
+
+<p>Setter for <code>folder</code> member. Typical clients (Indexer, 
IndexReader) will use this method to install their own Folder instance.</p>
+
+<h3><a class='u'
+name="get_folder"
+>get_folder</a></h3>
+
+<pre>    my $retval = $index_manager-&#62;get_folder();</pre>
+
+<p>Getter for <code>folder</code> member.</p>
+
+<h3><a class='u'
+name="get_host"
+>get_host</a></h3>
+
+<pre>    my $retval = $index_manager-&#62;get_host();</pre>
+
+<p>Getter for <code>host</code> member.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="recycle(_[labeled_params]_)"
->recycle( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="recycle"
+>recycle</a></h3>
+
+<pre>    my $retval = $index_manager-&#62;recycle(
+        reader     =&#62; $reader      # required
+        del_writer =&#62; $del_writer  # required
+        cutoff     =&#62; $cutoff      # required
+        optimize   =&#62; $optimize    # default: false
+    );</pre>
 
 <p>Return an array of SegReaders representing segments that should be 
consolidated. Implementations must balance index-time churn against search-time 
degradation due to segment proliferation. The default implementation prefers 
small segments or segments with a high proportion of deletions.</p>
 
@@ -155,51 +183,49 @@ name="recycle(_[labeled_params]_)"
 <li><b>optimize</b> - A boolean indicating whether to spend extra time 
optimizing the index for search-time performance.</li>
 </ul>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="set_folder(folder)"
->set_folder(folder)</a></h2>
-
-<p>Setter for <code>folder</code> member. Typical clients (Indexer, 
IndexReader) will use this method to install their own Folder instance.</p>
-
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_folder()"
->get_folder()</a></h2>
+<h3><a class='u'
+name="make_write_lock"
+>make_write_lock</a></h3>
 
-<p>Getter for <code>folder</code> member.</p>
+<pre>    my $retval = $index_manager-&#62;make_write_lock();</pre>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_host()"
->get_host()</a></h2>
+<p>Create the Lock which controls access to modifying the logical content of 
the index.</p>
 
-<p>Getter for <code>host</code> member.</p>
+<h3><a class='u'
+name="set_write_lock_timeout"
+>set_write_lock_timeout</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="set_write_lock_timeout(timeout)"
->set_write_lock_timeout(timeout)</a></h2>
+<pre>    $index_manager-&#62;set_write_lock_timeout($timeout);</pre>
 
 <p>Setter for write lock timeout. Default: 1000 milliseconds.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_write_lock_timeout()"
->get_write_lock_timeout()</a></h2>
+<h3><a class='u'
+name="get_write_lock_timeout"
+>get_write_lock_timeout</a></h3>
+
+<pre>    my $retval = $index_manager-&#62;get_write_lock_timeout();</pre>
 
 <p>Getter for write lock timeout.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="set_write_lock_interval(timeout)"
->set_write_lock_interval(timeout)</a></h2>
+<h3><a class='u'
+name="set_write_lock_interval"
+>set_write_lock_interval</a></h3>
+
+<pre>    $index_manager-&#62;set_write_lock_interval($timeout);</pre>
 
 <p>Setter for write lock retry interval. Default: 100 milliseconds.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="get_write_lock_interval()"
->get_write_lock_interval()</a></h2>
+<h3><a class='u'
+name="get_write_lock_interval"
+>get_write_lock_interval</a></h3>
+
+<pre>    my $retval = $index_manager-&#62;get_write_lock_interval();</pre>
 
 <p>Getter for write lock retry interval.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="INHERITANCE"
->INHERITANCE</a></h1>
+>INHERITANCE</a></h2>
 
 <p>Lucy::Index::IndexManager isa Clownfish::Obj.</p>
 

Modified: 
websites/staging/lucy/trunk/content/docs/test/Lucy/Index/IndexReader.html
==============================================================================
--- websites/staging/lucy/trunk/content/docs/test/Lucy/Index/IndexReader.html 
(original)
+++ websites/staging/lucy/trunk/content/docs/test/Lucy/Index/IndexReader.html 
Fri Feb 26 12:52:42 2016
@@ -71,15 +71,15 @@
           <div>
 <a name='___top' class='dummyTopAnchor' ></a>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="NAME"
->NAME</a></h1>
+>NAME</a></h2>
 
 <p>Lucy::Index::IndexReader - Read from an inverted index.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="SYNOPSIS"
->SYNOPSIS</a></h1>
+>SYNOPSIS</a></h2>
 
 <pre>    my $reader = Lucy::Index::IndexReader-&#62;open(
         index =&#62; &#39;/path/to/index&#39;,
@@ -96,9 +96,9 @@ name="SYNOPSIS"
         }
     }</pre>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="DESCRIPTION"
->DESCRIPTION</a></h1>
+>DESCRIPTION</a></h2>
 
 <p>IndexReader is the interface through which <a 
href="../../Lucy/Search/IndexSearcher.html" class="podlinkpod"
 >IndexSearcher</a> objects access the content of an index.</p>
@@ -106,16 +106,18 @@ name="DESCRIPTION"
 <p>IndexReader objects always represent a point-in-time view of an index as it 
existed at the moment the reader was created. If you want search results to 
reflect modifications to an index, you must create a new IndexReader after the 
update process completes.</p>
 
 <p>IndexReaders are composites; most of the work is done by individual <a 
href="../../Lucy/Index/DataReader.html" class="podlinkpod"
->DataReader</a> sub-components, which may be accessed via fetch() and 
obtain(). The most efficient and powerful access to index data happens at the 
segment level via <a href="../../Lucy/Index/SegReader.html" class="podlinkpod"
->SegReader</a>&#39;s sub-components.</p>
+>DataReader</a> sub-components, which may be accessed via <a href="#fetch" 
class="podlinkpod"
+>fetch()</a> and <a href="#obtain" class="podlinkpod"
+>obtain()</a>. The most efficient and powerful access to index data happens at 
the segment level via <a href="../../Lucy/Index/SegReader.html" 
class="podlinkpod"
+>SegReader</a>&#8217;s sub-components.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="CONSTRUCTORS"
->CONSTRUCTORS</a></h1>
+>CONSTRUCTORS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="open(_[labeled_params]_)"
->open( <i>[labeled params]</i> )</a></h2>
+<h3><a class='u'
+name="open"
+>open</a></h3>
 
 <pre>    my $reader = Lucy::Index::IndexReader-&#62;open(
         index    =&#62; &#39;/path/to/index&#39;, # required
@@ -134,67 +136,81 @@ name="open(_[labeled_params]_)"
 >IndexManager</a>. Read-locking is off by default; supplying this argument 
 >turns it on.</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="ABSTRACT_METHODS"
->ABSTRACT METHODS</a></h1>
+>ABSTRACT METHODS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="doc_max()"
->doc_max()</a></h2>
+<h3><a class='u'
+name="doc_max"
+>doc_max</a></h3>
+
+<pre>    my $retval = $index_reader-&#62;doc_max();</pre>
 
 <p>Return the maximum number of documents available to the reader, which is 
also the highest possible internal document id. Documents which have been 
marked as deleted but not yet purged from the index are included in this 
count.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="doc_count()"
->doc_count()</a></h2>
+<h3><a class='u'
+name="doc_count"
+>doc_count</a></h3>
+
+<pre>    my $retval = $index_reader-&#62;doc_count();</pre>
 
 <p>Return the number of documents available to the reader, subtracting any 
that are marked as deleted.</p>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="del_count()"
->del_count()</a></h2>
+<h3><a class='u'
+name="del_count"
+>del_count</a></h3>
 
-<p>Return the number of documents which have been marked as deleted but not 
yet purged from the index.</p>
+<pre>    my $retval = $index_reader-&#62;del_count();</pre>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="seg_readers()"
->seg_readers()</a></h2>
+<p>Return the number of documents which have been marked as deleted but not 
yet purged from the index.</p>
 
-<p>Return an array of all the SegReaders represented within the 
IndexReader.</p>
+<h3><a class='u'
+name="offsets"
+>offsets</a></h3>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="offsets()"
->offsets()</a></h2>
+<pre>    my $retval = $index_reader-&#62;offsets();</pre>
 
 <p>Return an array with one entry for each segment, corresponding to segment 
doc_id start offset.</p>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h3><a class='u'
+name="seg_readers"
+>seg_readers</a></h3>
+
+<pre>    my $retval = $index_reader-&#62;seg_readers();</pre>
+
+<p>Return an array of all the SegReaders represented within the 
IndexReader.</p>
+
+<h2><a class='u'
 name="METHODS"
->METHODS</a></h1>
+>METHODS</a></h2>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="fetch(api)"
->fetch(api)</a></h2>
+<h3><a class='u'
+name="obtain"
+>obtain</a></h3>
 
-<p>Fetch a component, or return undef if the component can&#39;t be found.</p>
+<pre>    my $retval = $index_reader-&#62;obtain($api);</pre>
+
+<p>Fetch a component, or throw an error if the component can&#8217;t be 
found.</p>
 
 <ul>
 <li><b>api</b> - The name of the DataReader subclass that the desired 
component must implement.</li>
 </ul>
 
-<h2><a class='u' href='#___top' title='click to go to top of document'
-name="obtain(api)"
->obtain(api)</a></h2>
+<h3><a class='u'
+name="fetch"
+>fetch</a></h3>
+
+<pre>    my $retval = $index_reader-&#62;fetch($api);</pre>
 
-<p>Fetch a component, or throw an error if the component can&#39;t be 
found.</p>
+<p>Fetch a component, or return undef if the component can&#8217;t be 
found.</p>
 
 <ul>
 <li><b>api</b> - The name of the DataReader subclass that the desired 
component must implement.</li>
 </ul>
 
-<h1><a class='u' href='#___top' title='click to go to top of document'
+<h2><a class='u'
 name="INHERITANCE"
->INHERITANCE</a></h1>
+>INHERITANCE</a></h2>
 
 <p>Lucy::Index::IndexReader isa <a href="../../Lucy/Index/DataReader.html" 
class="podlinkpod"
 >Lucy::Index::DataReader</a> isa Clownfish::Obj.</p>


Reply via email to