You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2010/11/02 17:22:28 UTC

[lucy-commits] svn commit: r1030104 - in /incubator/lucy/trunk: core/KinoSearch/Docs/ perl/lib/KinoSearch/Docs/ perl/lib/KinoSearch/Docs/Cookbook/ perl/lib/KinoSearch/Docs/Tutorial/ perl/sample/

Author: marvin
Date: Tue Nov  2 16:22:27 2010
New Revision: 1030104

URL: http://svn.apache.org/viewvc?rev=1030104&view=rev
Log:
Adapt documentation within KinoSearch::Docs (including Tutorial and Cookbook
files) and sample code underneath perl/sample/ for Lucy.

Modified:
    incubator/lucy/trunk/core/KinoSearch/Docs/DevGuide.cfh
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/CustomQuery.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/CustomQueryParser.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/FastUpdates.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/DocIDs.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/FileFormat.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/FileLocking.pm
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/IRTheory.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Analysis.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/BeyondSimple.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/FieldType.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Highlighter.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/QueryObjects.pod
    incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Simple.pod
    incubator/lucy/trunk/perl/sample/FlatQueryParser.pm
    incubator/lucy/trunk/perl/sample/PrefixQuery.pm
    incubator/lucy/trunk/perl/sample/README.txt
    incubator/lucy/trunk/perl/sample/indexer.pl
    incubator/lucy/trunk/perl/sample/search.cgi

Modified: incubator/lucy/trunk/core/KinoSearch/Docs/DevGuide.cfh
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/KinoSearch/Docs/DevGuide.cfh?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/core/KinoSearch/Docs/DevGuide.cfh (original)
+++ incubator/lucy/trunk/core/KinoSearch/Docs/DevGuide.cfh Tue Nov  2 16:22:27 2010
@@ -16,9 +16,9 @@
 
 parcel KinoSearch cnick Kino;
 
-/** Quick-start guide to hacking on KinoSearch.
+/** Quick-start guide to hacking on Apache Lucy.
  *
- * The KinoSearch code base is organized into roughly four layers:
+ * The Apache Lucy code base is organized into roughly four layers:
  *
  *    * Charmonizer - compiler and OS configuration probing.
  *    * Clownfish - header files.
@@ -30,7 +30,7 @@ parcel KinoSearch cnick Kino;
  * cross-platform development.  It's similar to Autoconf or Metaconfig, but
  * written in pure C.
  *
- * The ".cfh" files within the KinoSearch core are Clownfish header files.
+ * The ".cfh" files within the Lucy core are Clownfish header files.
  * Clownfish is a purpose-built, declaration-only language which superimposes
  * a single-inheritance object model on top of C which is specifically
  * designed to co-exist happily with variety of "host" languages and to allow
@@ -42,7 +42,7 @@ parcel KinoSearch cnick Kino;
  *     Indexer_Add_Doc   <-- Method, typically uses dynamic dispatch.
  *     Indexer_add_doc   <-- Function, always a direct invocation.
  * 
- * The C files within the KinoSearch core are where most of KinoSearch's low-level
+ * The C files within the Lucy core are where most of Lucy's low-level
  * functionality lies.  They implement the interface defined by the Clownfish
  * header files.
  *

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook.pod Tue Nov  2 16:22:27 2010
@@ -15,13 +15,13 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Cookbook - KinoSearch recipes.
+Lucy::Docs::Cookbook - Apache Lucy recipes.
 
 =head1 DESCRIPTION
 
-The Cookbook provides thematic documentation covering some of KinoSearch's
-more sophisticated features.  For a step-by-step introduction to KinoSearch,
-see L<KinoSearch::Docs::Tutorial>.
+The Cookbook provides thematic documentation covering some of Apache Lucy's
+more sophisticated features.  For a step-by-step introduction to Lucy,
+see L<Lucy::Docs::Tutorial>.
 
 =head2 Chapters
 
@@ -29,21 +29,21 @@ see L<KinoSearch::Docs::Tutorial>.
 
 =item *
 
-L<KinoSearch::Docs::Cookbook::FastUpdates> - While index updates are fast on
+L<Lucy::Docs::Cookbook::FastUpdates> - While index updates are fast on
 average, worst-case update performance may be significantly slower. To make
 index updates consistently quick, we must manually intervene to control the
 process of index segment consolidation.
 
 =item *
 
-L<KinoSearch::Docs::Cookbook::CustomQuery> - Explore KinoSearch's support for
+L<Lucy::Docs::Cookbook::CustomQuery> - Explore Lucy's support for
 custom query types by creating a "PrefixQuery" class to handle trailing
 wildcards.
 
 =item *
 
-L<KinoSearch::Docs::Cookbook::CustomQueryParser> - Define your own custom
-search query syntax using KinoSearch::Search::QueryParser and
+L<Lucy::Docs::Cookbook::CustomQueryParser> - Define your own custom
+search query syntax using Lucy::Search::QueryParser and
 L<Parse::RecDescent>.
 
 =back
@@ -51,8 +51,8 @@ L<Parse::RecDescent>.
 =head2 Materials
 
 Some of the recipes in the Cookbook reference the completed
-L<Tutorial|KinoSearch::Docs::Tutorial> application.  These materials can be
-found in the C<sample> directory at the root of the KinoSearch distribution:
+L<Tutorial|Lucy::Docs::Tutorial> application.  These materials can be
+found in the C<sample> directory at the root of the Lucy distribution:
 
     sample/indexer.pl        # indexing app
     sample/search.cgi        # search app

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/CustomQuery.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/CustomQuery.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/CustomQuery.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/CustomQuery.pod Tue Nov  2 16:22:27 2010
@@ -15,11 +15,11 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Cookbook::CustomQuery - Sample subclass of Query.
+Lucy::Docs::Cookbook::CustomQuery - Sample subclass of Query.
 
 =head1 ABSTRACT
 
-Explore KinoSearch's support for custom query types by creating a
+Explore Apache Lucy's support for custom query types by creating a
 "PrefixQuery" class to handle trailing wildcards.
 
     my $prefix_query = PrefixQuery->new(
@@ -38,17 +38,17 @@ Compiler, and a Matcher.  
 
 =item *
 
-PrefixQuery - a subclass of L<KinoSearch::Search::Query>, and the only class
+PrefixQuery - a subclass of L<Lucy::Search::Query>, and the only class
 that client code will deal with directly.
 
 =item *
 
-PrefixCompiler - a subclass of L<KinoSearch::Search::Compiler>, whose primary 
+PrefixCompiler - a subclass of L<Lucy::Search::Compiler>, whose primary 
 role is to compile a PrefixQuery to a PrefixScorer.
 
 =item *
 
-PrefixScorer - a subclass of L<KinoSearch::Search::Matcher>, which does the
+PrefixScorer - a subclass of L<Lucy::Search::Matcher>, which does the
 heavy lifting: it applies the query to individual documents and assigns a
 score to each match.
 
@@ -79,7 +79,7 @@ Our PrefixQuery class will have two attr
 name.
 
     package PrefixQuery;
-    use base qw( KinoSearch::Search::Query );
+    use base qw( Lucy::Search::Query );
     use Carp;
     use Scalar::Util qw( blessed );
     
@@ -128,7 +128,7 @@ The equals() method determines whether t
     }
 
 The last thing we'll need is a make_compiler() factory method which kicks out
-a subclass of L<Compiler|KinoSearch::Search::Compiler>.
+a subclass of L<Compiler|Lucy::Search::Compiler>.
 
     sub make_compiler {
         my $self = shift;
@@ -138,13 +138,13 @@ a subclass of L<Compiler|KinoSearch::Sea
 =head2 PrefixCompiler
 
 PrefixQuery's make_compiler() method will be called internally at search-time
-by objects which subclass L<KinoSearch::Search::Searcher> -- such as
-L<IndexSearchers|KinoSearch::Search::IndexSearcher>.
+by objects which subclass L<Lucy::Search::Searcher> -- such as
+L<IndexSearchers|Lucy::Search::IndexSearcher>.
 
 A Searcher is associated with a particular collection of documents.   These
 documents may all reside in one index, as with IndexSearcher, or they may be
 spread out across multiple indexes on one or more machines, as with
-L<KinoSearch::Search::PolySearcher>.  
+L<Lucy::Search::PolySearcher>.  
 
 Searcher objects have access to certain statistical information about the
 collections they represent; for instance, a Searcher can tell you how many
@@ -165,11 +165,11 @@ not going to bother with weighting for t
 score of 1.0 to each matching document.
 
 We don't need to write a constructor, as it will suffice to inherit new() from
-KinoSearch::Search::Compiler.  The only method we need to implement for
+Lucy::Search::Compiler.  The only method we need to implement for
 PrefixCompiler is make_matcher().
 
     package PrefixCompiler;
-    use base qw( KinoSearch::Search::Compiler );
+    use base qw( Lucy::Search::Compiler );
 
     sub make_matcher {
         my ( $self, %args ) = @_;
@@ -177,9 +177,9 @@ PrefixCompiler is make_matcher().
 
         # Retrieve low-level components LexiconReader and PostingListReader.
         my $lex_reader
-            = $seg_reader->obtain("KinoSearch::Index::LexiconReader");
+            = $seg_reader->obtain("Lucy::Index::LexiconReader");
         my $plist_reader
-            = $seg_reader->obtain("KinoSearch::Index::PostingListReader");
+            = $seg_reader->obtain("Lucy::Index::PostingListReader");
         
         # Acquire a Lexicon and seek it to our query string.
         my $substring = $self->get_parent->get_query_string;
@@ -207,12 +207,12 @@ PrefixCompiler is make_matcher().
         return PrefixScorer->new( posting_lists => \@posting_lists );
     }
 
-PrefixCompiler gets access to a L<SegReader|KinoSearch::Index::SegReader>
+PrefixCompiler gets access to a L<SegReader|Lucy::Index::SegReader>
 object when make_matcher() gets called.  From the SegReader and its
-sub-components L<LexiconReader|KinoSearch::Index::LexiconReader> and
-L<PostingListReader|KinoSearch::Index::PostingListReader>, we acquire a
-L<Lexicon|KinoSearch::Index::Lexicon>, scan through the Lexicon's unique
-terms, and acquire a L<PostingList|KinoSearch::Index::PostingList> for each
+sub-components L<LexiconReader|Lucy::Index::LexiconReader> and
+L<PostingListReader|Lucy::Index::PostingListReader>, we acquire a
+L<Lexicon|Lucy::Index::Lexicon>, scan through the Lexicon's unique
+terms, and acquire a L<PostingList|Lucy::Index::PostingList> for each
 term that matches our prefix.
 
 Each of these PostingList objects represents a set of documents which match
@@ -223,7 +223,7 @@ the query.
 The Matcher subclass is the most involved.  
 
     package PrefixScorer;
-    use base qw( KinoSearch::Search::Matcher );
+    use base qw( Lucy::Search::Matcher );
     
     # Inside-out member vars.
     my %doc_ids;
@@ -274,7 +274,7 @@ next() advances the Matcher to the next 
     }
 
 get_doc_id() returns the current document id, or 0 if the Matcher is
-exhausted.  (L<Document numbers|KinoSearch::Docs::DocIDs> start at 1, so 0 is
+exhausted.  (L<Document numbers|Lucy::Docs::DocIDs> start at 1, so 0 is
 a sentinel.)
 
     sub get_doc_id {
@@ -292,7 +292,7 @@ fixed score of 1.0:
 =head1 Usage 
 
 To get a basic feel for PrefixQuery, insert the FlatQueryParser module
-described in L<KinoSearch::Docs::Cookbook::CustomQueryParser> (which supports
+described in L<Lucy::Docs::Cookbook::CustomQueryParser> (which supports
 PrefixQuery) into the search.cgi sample app.
 
     my $parser = FlatQueryParser->new( schema => $searcher->get_schema );
@@ -303,10 +303,10 @@ change up analyzers to avoid stemming, b
 prefix conflation -- is not perfectly compatible with prefix searches.
 
     # Polyanalyzer with no Stemmer.
-    my $analyzer = KinoSearch::Analysis::PolyAnalyzer->new(
+    my $analyzer = Lucy::Analysis::PolyAnalyzer->new(
         analyzers => [
-            KinoSearch::Analysis::Tokenizer->new,
-            KinoSearch::Analysis::CaseFolder->new,
+            Lucy::Analysis::Tokenizer->new,
+            Lucy::Analysis::CaseFolder->new,
         ],
     );
 

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/CustomQueryParser.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/CustomQueryParser.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/CustomQueryParser.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/CustomQueryParser.pod Tue Nov  2 16:22:27 2010
@@ -15,13 +15,12 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Cookbook::CustomQueryParser - Sample subclass of
-QueryParser.
+Lucy::Docs::Cookbook::CustomQueryParser - Sample subclass of QueryParser.
 
 =head1 ABSTRACT
 
 Implement a custom search query language using
-L<KinoSearch::Search::QueryParser> and L<Parse::RecDescent>.
+L<Lucy::Search::QueryParser> and L<Parse::RecDescent>.
 
 =head1 Grammar-based vs. hand-rolled
 
@@ -64,13 +63,13 @@ We'll use a fixed field name of "content
 PolyAnalyzer.
 
     package FlatQueryParser;
-    use KinoSearch::Search::TermQuery;
-    use KinoSearch::Search::PhraseQuery;
-    use KinoSearch::Search::ORQuery;
+    use Lucy::Search::TermQuery;
+    use Lucy::Search::PhraseQuery;
+    use Lucy::Search::ORQuery;
     use Carp;
     
     sub new { 
-        my $analyzer = KinoSearch::Analysis::PolyAnalyzer->new(
+        my $analyzer = Lucy::Analysis::PolyAnalyzer->new(
             language => 'en',
         );
         return bless { 
@@ -84,7 +83,7 @@ help keep the size of our main parse() s
 
     sub _make_term_query {
         my ( $self, $term ) = @_;
-        return KinoSearch::Search::TermQuery->new(
+        return Lucy::Search::TermQuery->new(
             field => $self->{field},
             term  => $term,
         );
@@ -92,7 +91,7 @@ help keep the size of our main parse() s
     
     sub _make_phrase_query {
         my ( $self, $terms ) = @_;
-        return KinoSearch::Search::PhraseQuery->new(
+        return Lucy::Search::PhraseQuery->new(
             field => $self->{field},
             terms => $terms,
         );
@@ -129,7 +128,7 @@ ORQuery.
         my ( $self, $query_string ) = @_;
         my $tokens   = $self->_tokenize($query_string);
         my $analyzer = $self->{analyzer};
-        my $or_query = KinoSearch::Search::ORQuery->new;
+        my $or_query = Lucy::Search::ORQuery->new;
     
         for my $token (@$tokens) {
             if ( $token =~ s/^"// ) {
@@ -180,7 +179,7 @@ Parse::RecDescent.
     END_GRAMMAR
     
     sub new { 
-        my $analyzer = KinoSearch::Analysis::PolyAnalyzer->new(
+        my $analyzer = Lucy::Analysis::PolyAnalyzer->new(
             language => 'en',
         );
         my $rd_parser = Parse::RecDescent->new($grammar);
@@ -222,11 +221,11 @@ this time -- QueryParser's constructor r
 and Analyzer information, so we can just defer to that.
 
     package FlatQueryParser;
-    use base qw( KinoSearch::Search::QueryParser );
-    use KinoSearch::Search::TermQuery;
-    use KinoSearch::Search::PhraseQuery;
-    use KinoSearch::Search::ORQuery;
-    use KinoSearch::Search::NoMatchQuery;
+    use base qw( Lucy::Search::QueryParser );
+    use Lucy::Search::TermQuery;
+    use Lucy::Search::PhraseQuery;
+    use Lucy::Search::ORQuery;
+    use Lucy::Search::NoMatchQuery;
     use PrefixQuery;
     use Parse::RecDescent;
     use Carp;
@@ -257,7 +256,7 @@ production which joins the leaves togeth
     tree:
         leaf_queries
         { 
-            $return = KinoSearch::Search::ORQuery->new;
+            $return = Lucy::Search::ORQuery->new;
             $return->add_child($_) for @{ $item[1] };
         }
     
@@ -271,11 +270,11 @@ production which joins the leaves togeth
     
     term_query:
         /(\S+)/
-        { KinoSearch::Search::LeafQuery->new( text => $1 ) }
+        { Lucy::Search::LeafQuery->new( text => $1 ) }
     
     phrase_query:
         /("[^"]*(?:"|$))/   # terminated by either quote or end of string
-        { KinoSearch::Search::LeafQuery->new( text => $1 ) }
+        { Lucy::Search::LeafQuery->new( text => $1 ) }
     
     END_GRAMMAR
     
@@ -285,7 +284,7 @@ production which joins the leaves togeth
         my ( $self, $query_string ) = @_; 
         my $tree = $self->tree($query_string);
         return $tree ? $self->expand($tree) :
-        KinoSearch::Search::NoMatchQuery->new;
+        Lucy::Search::NoMatchQuery->new;
     }
     
     sub tree {
@@ -314,7 +313,7 @@ C<leaf_query> production to accommodate 
     
     prefix_query:
         /(\w+\*)/
-        { KinoSearch::Search::LeafQuery->new( text => $1 ) }
+        { Lucy::Search::LeafQuery->new( text => $1 ) }
 
 Second, we need to override expand_leaf() to accommodate PrefixQuery,
 while deferring to its original implementation on TermQuery and
@@ -324,7 +323,7 @@ PhraseQuery.
         my ( $self, $leaf_query ) = @_;
         my $text = $leaf_query->get_text;
         if ( $text =~ /\*$/ ) {
-            my $or_query = KinoSearch::Search::ORQuery->new;
+            my $or_query = Lucy::Search::ORQuery->new;
             for my $field ( @{ $self->get_fields } ) {
                 my $prefix_query = PrefixQuery->new(
                     field        => $field,

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/FastUpdates.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/FastUpdates.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/FastUpdates.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Cookbook/FastUpdates.pod Tue Nov  2 16:22:27 2010
@@ -15,7 +15,7 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Cookbook::FastUpdates - Near real-time index updates.
+Lucy::Docs::Cookbook::FastUpdates - Near real-time index updates.
 
 =head1 ABSTRACT
 
@@ -46,17 +46,17 @@ rewritten.
 
 The simplest way to force fast index updates is to avoid rewriting anything.
 
-Indexer relies upon L<IndexManager|KinoSearch::Index::IndexManager>'s
+Indexer relies upon L<IndexManager|Lucy::Index::IndexManager>'s
 recycle() method to tell it which segments should be consolidated.  If we
 subclass IndexManager and override recycle() so that it always returns an
 empty array, we get consistently quick performance:
 
     package NoMergeManager;
-    use base qw( KinoSearch::Index::IndexManager );
+    use base qw( Lucy::Index::IndexManager );
     sub recycle { [] }
     
     package main;
-    my $indexer = KinoSearch::Index::Indexer->new(
+    my $indexer = Lucy::Index::Indexer->new(
         index => '/path/to/index',
         manager => NoMergeManager->new,
     );
@@ -67,7 +67,7 @@ However, we can't procrastinate forever.
 ordinary, uncontrolled indexing session, potentially triggering a large
 rewrite of lots of small and/or degraded segments:
 
-    my $indexer = KinoSearch::Index::Indexer->new( 
+    my $indexer = Lucy::Index::Indexer->new( 
         index => '/path/to/index', 
         # manager => NoMergeManager->new,
     );
@@ -85,7 +85,7 @@ allows us to avoid a mass proliferation 
 while still offering decent worst-case update speed:
 
     package LightMergeManager;
-    use base qw( KinoSearch::Index::IndexManager );
+    use base qw( Lucy::Index::IndexManager );
     
     sub recycle {
         my $self = shift;
@@ -101,7 +101,7 @@ happens content updates will be locked o
 
 If it's not acceptable to lock out updates while the index consolidation
 process runs, the alternative is to move the consolidation process out of
-band, using KinoSearch::Index::BackgroundMerger.  
+band, using Lucy::Index::BackgroundMerger.  
 
 It's never safe to have more than one Indexer attempting to modify the content
 of an index at the same time, but a BackgroundMerger and an Indexer can
@@ -112,7 +112,7 @@ operate simultaneously:
     my $retries = 0;
     while (1) {
         eval {
-            my $indexer = KinoSearch::Index::Indexer->new(
+            my $indexer = Lucy::Index::Indexer->new(
                     index => '/path/to/index',
                     manager => LightMergeManager->new,
                 );
@@ -120,7 +120,7 @@ operate simultaneously:
             $indexer->commit;
         };
         last unless $@;
-        if ( blessed($@) and $@->isa("KinoSearch::Store::LockErr") ) {
+        if ( blessed($@) and $@->isa("Lucy::Store::LockErr") ) {
             # Catch LockErr.
             warn "Couldn't get lock ($retries retries)";
             $retries++;
@@ -131,9 +131,9 @@ operate simultaneously:
     }
 
     # Background merge process.
-    my $manager = KinoSearch::Index::IndexManager->new;
+    my $manager = Lucy::Index::IndexManager->new;
     $index_manager->set_write_lock_timeout(60_000);
-    my $bg_merger = KinoSearch::Index::BackgroundMerger->new(
+    my $bg_merger = Lucy::Index::BackgroundMerger->new(
         index   => '/path/to/index',
         manager => $manager,
     );

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/DocIDs.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/DocIDs.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/DocIDs.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/DocIDs.pod Tue Nov  2 16:22:27 2010
@@ -15,13 +15,13 @@
 
 =head1 NAME
 
-KinoSearch::Docs::DocIDs - Characteristics of KinoSearch document ids.
+Lucy::Docs::DocIDs - Characteristics of Apache Lucy document ids.
 
 =head1 DESCRIPTION
 
 =head2 Document ids are signed 32-bit integers
 
-Document ids in KinoSearch start at 1.  Because 0 is never a valid doc id, we
+Document ids in Apache Lucy start at 1.  Because 0 is never a valid doc id, we
 can use it as a sentinel value:
 
     while ( my $doc_id = $posting_list->next ) {
@@ -30,13 +30,13 @@ can use it as a sentinel value:
 
 =head2 Document ids are ephemeral
 
-The document ids used by KinoSearch are associated with a single index
+The document ids used by Lucy are associated with a single index
 snapshot.  The moment an index is updated, the mapping of document ids to
 documents is subject to change.
 
 Since IndexReader objects represent a point-in-time view of an index, document
 ids are guaranteed to remain static for the life of the reader.  However,
-because they are not permanent, KinoSearch document ids cannot be used as
+because they are not permanent, Lucy document ids cannot be used as
 foreign keys to locate records in external data sources.  If you truly need a
 primary key field, you must define it and populate it yourself.
 

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/FileFormat.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/FileFormat.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/FileFormat.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/FileFormat.pod Tue Nov  2 16:22:27 2010
@@ -15,12 +15,12 @@
 
 =head1 NAME
 
-KinoSearch::Docs::FileFormat - Overview of index file format.
+Lucy::Docs::FileFormat - Overview of index file format.
 
 =head1 OVERVIEW
 
 It is not necessary to understand the current implementation details of the
-index file format in order to use KinoSearch effectively, but it may be
+index file format in order to use Apache Lucy effectively, but it may be
 helpful if you are interested in tweaking for high performance, exotic usage,
 or debugging and development.  
 
@@ -124,7 +124,7 @@ facilitate fast lookups.
 =head2 Postings
 
 "Posting" is a technical term from the field of 
-L<information retrieval|KinoSearch::Docs::IRTheory>, defined as a single
+L<information retrieval|Lucy::Docs::IRTheory>, defined as a single
 instance of a one term indexing one document.  If you are looking at the index
 in the back of a book, and you see that "freedom" is referenced on pages 8,
 86, and 240, that would be three postings, which taken together form a

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/FileLocking.pm
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/FileLocking.pm?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/FileLocking.pm (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/FileLocking.pm Tue Nov  2 16:22:27 2010
@@ -24,20 +24,20 @@ __BINDING__
 my $synopsis = <<'END_SYNOPSIS';
     use Sys::Hostname qw( hostname );
     my $hostname = hostname() or die "Can't get unique hostname";
-    my $manager = KinoSearch::Index::IndexManager->new( host => $hostname );
+    my $manager = Lucy::Index::IndexManager->new( host => $hostname );
 
     # Index time:
-    my $indexer = KinoSearch::Index::Indexer->new(
+    my $indexer = Lucy::Index::Indexer->new(
         index   => '/path/to/index',
         manager => $manager,
     );
 
     # Search time:
-    my $reader = KinoSearch::Index::IndexReader->open(
+    my $reader = Lucy::Index::IndexReader->open(
         index   => '/path/to/index',
         manager => $manager,
     );
-    my $searcher = KinoSearch::Search::IndexSearcher->new( index => $reader );
+    my $searcher = Lucy::Search::IndexSearcher->new( index => $reader );
 END_SYNOPSIS
 
 Clownfish::Binding::Perl::Class->register(

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/IRTheory.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/IRTheory.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/IRTheory.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/IRTheory.pod Tue Nov  2 16:22:27 2010
@@ -15,15 +15,15 @@
 
 =head1 NAME
 
-KinoSearch::Docs::IRTheory - Crash course in information retrieval.
+Lucy::Docs::IRTheory - Crash course in information retrieval.
 
 =head1 ABSTRACT
 
-Just enough Information Retrieval theory to find your way around KinoSearch.
+Just enough Information Retrieval theory to find your way around Apache Lucy.
 
 =head1 Terminology
 
-KinoSearch uses some terminology from the field of information retrieval which
+Lucy uses some terminology from the field of information retrieval which
 may be unfamiliar to many users.  "Document" and "term" mean pretty much what
 you'd expect them to, but others such as "posting" and "inverted index" need a
 formal introduction:
@@ -56,19 +56,19 @@ I<inverted index> - A data structure whi
 
 =back
 
-Since KinoSearch is a practical implementation of IR theory, it loads these
+Since Lucy is a practical implementation of IR theory, it loads these
 abstract, distilled definitions down with useful traits.  For instance, a
 "posting" in its most rarefied form is simply a term-document pairing; in
-KinoSearch, the class L<KinoSearch::Index::Posting::MatchPosting> fills this
+Lucy, the class L<Lucy::Index::Posting::MatchPosting> fills this
 role.  However, by associating additional information with a posting like the
 number of times the term occurs in the document, we can turn it into a
-L<ScorePosting|KinoSearch::Index::Posting::ScorePosting>, making it possible
+L<ScorePosting|Lucy::Index::Posting::ScorePosting>, making it possible
 to rank documents by relevance rather than just list documents which happen to
 match in no particular order.
 
 =head1 TF/IDF ranking algorithm
 
-KinoSearch uses a variant of the well-established "Term Frequency / Inverse
+Lucy uses a variant of the well-established "Term Frequency / Inverse
 Document Frequency" weighting scheme.  A thorough treatment of TF/IDF is too
 ambitious for our present purposes, but in a nutshell, it means that...
 

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial.pod Tue Nov  2 16:22:27 2010
@@ -15,14 +15,14 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Tutorial - Step-by-step introduction to KinoSearch toolset.
+Lucy::Docs::Tutorial - Step-by-step introduction to Apache Lucy.
 
 =head1 ABSTRACT 
 
-Explore KinoSearch's basic functionality by starting with a minimalist CGI
-search app based on L<KSx::Simple> and transforming it, step by step, into an
+Explore Apache Lucy's basic functionality by starting with a minimalist CGI
+search app based on L<LucyX::Simple> and transforming it, step by step, into an
 "advanced search" interface utilizing more flexible core modules like
-L<KinoSearch::Index::Indexer> and L<KinoSearch::Search::IndexSearcher>.
+L<Lucy::Index::Indexer> and L<Lucy::Search::IndexSearcher>.
 
 =head1 DESCRIPTION
 
@@ -32,33 +32,33 @@ L<KinoSearch::Index::Indexer> and L<Kino
 
 =item *
 
-L<KinoSearch::Docs::Tutorial::Simple> - Build a bare-bones search app using
-L<KSx::Simple>.
+L<Lucy::Docs::Tutorial::Simple> - Build a bare-bones search app using
+L<LucyX::Simple>.
 
 =item *
 
-L<KinoSearch::Docs::Tutorial::BeyondSimple> - Rebuild the app using core
-classes like L<Indexer|KinoSearch::Index::Indexer> and
-L<IndexSearcher|KinoSearch::Search::IndexSearcher> in place of KSx::Simple.
+L<Lucy::Docs::Tutorial::BeyondSimple> - Rebuild the app using core
+classes like L<Indexer|Lucy::Index::Indexer> and
+L<IndexSearcher|Lucy::Search::IndexSearcher> in place of LucyX::Simple.
 
 =item *
 
-L<KinoSearch::Docs::Tutorial::FieldType> - Experiment with different field
-characteristics using subclasses of L<KinoSearch::Plan::FieldType>.
+L<Lucy::Docs::Tutorial::FieldType> - Experiment with different field
+characteristics using subclasses of L<Lucy::Plan::FieldType>.
 
 =item *
 
-L<KinoSearch::Docs::Tutorial::Analysis> - Examine how the choice of
-L<KinoSearch::Analysis::Analyzer> subclass affects search results.
+L<Lucy::Docs::Tutorial::Analysis> - Examine how the choice of
+L<Lucy::Analysis::Analyzer> subclass affects search results.
 
 =item *
 
-L<KinoSearch::Docs::Tutorial::Highlighter> - Augment search results with
+L<Lucy::Docs::Tutorial::Highlighter> - Augment search results with
 highlighted excerpts.
 
 =item *
 
-L<KinoSearch::Docs::Tutorial::QueryObjects> - Unlock advanced search features
+L<Lucy::Docs::Tutorial::QueryObjects> - Unlock advanced search features
 by using Query objects instead of query strings.
 
 =back
@@ -67,7 +67,7 @@ by using Query objects instead of query 
 
 The source material used by the tutorial app -- an html presentation of the
 United States constitution -- can be found in the C<sample>
-directory at the root of the KinoSearch distribution, along with finished
+directory at the root of the Lucy distribution, along with finished
 indexing and search apps.
 
     sample/indexer.pl        # indexing app
@@ -84,6 +84,6 @@ Apache webserver, but will work with min
 =head1 SEE ALSO
 
 More advanced and esoteric subjects are covered in
-L<KinoSearch::Docs::Cookbook>.
+L<Lucy::Docs::Cookbook>.
 
 

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Analysis.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Analysis.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Analysis.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Analysis.pod Tue Nov  2 16:22:27 2010
@@ -15,14 +15,14 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Tutorial::Analysis - How to choose and use Analyzers.
+Lucy::Docs::Tutorial::Analysis - How to choose and use Analyzers.
 
 =head1 DESCRIPTION
 
 Try swapping out the PolyAnalyzer in our Schema for a Tokenizer:
 
-    my $tokenizer = KinoSearch::Analysis::Tokenizer->new;
-    my $type = KinoSearch::Plan::FullTextType->new(
+    my $tokenizer = Lucy::Analysis::Tokenizer->new;
+    my $type = Lucy::Plan::FullTextType->new(
         analyzer => $tokenizer,
     );
 
@@ -44,10 +44,10 @@ PolyAnalyzer is actually multiple Analyz
 In this case, it's three-in-one, since specifying a PolyAnalyzer with 
 C<< language => 'en' >> is equivalent to this snippet:
 
-    my $case_folder  = KinoSearch::Analysis::CaseFolder->new;
-    my $tokenizer    = KinoSearch::Analysis::Tokenizer->new;
-    my $stemmer      = KinoSearch::Analysis::Stemmer->new( language => 'en' );
-    my $polyanalyzer = KinoSearch::Analysis::PolyAnalyzer->new(
+    my $case_folder  = Lucy::Analysis::CaseFolder->new;
+    my $tokenizer    = Lucy::Analysis::Tokenizer->new;
+    my $stemmer      = Lucy::Analysis::Stemmer->new( language => 'en' );
+    my $polyanalyzer = Lucy::Analysis::PolyAnalyzer->new(
         analyzers => [ $case_folder, $tokenizer, $stemmer ], 
     );
 
@@ -55,16 +55,16 @@ You can add or subtract Analyzers from t
 Analyzer, a Stopalizer for suppressing "stopwords" like "the", "if",
 and "maybe".
 
-    my $stopalizer = KinoSearch::Analysis::Stopalizer->new( 
+    my $stopalizer = Lucy::Analysis::Stopalizer->new( 
         language => 'en',
     );
-    my $polyanalyzer = KinoSearch::Analysis::PolyAnalyzer->new(
+    my $polyanalyzer = Lucy::Analysis::PolyAnalyzer->new(
         analyzers => [ $case_folder, $tokenizer, $stopalizer, $stemmer ], 
     );
 
 Also, try removing the Stemmer.
 
-    my $polyanalyzer = KinoSearch::Analysis::PolyAnalyzer->new(
+    my $polyanalyzer = Lucy::Analysis::PolyAnalyzer->new(
         analyzers => [ $case_folder, $tokenizer ], 
     );
 
@@ -82,12 +82,12 @@ you may not want to conflate results for
 
 To specify that there should be no analysis performed at all, use StringType:
 
-    my $type = KinoSearch::Plan::StringType->new;
+    my $type = Lucy::Plan::StringType->new;
     $schema->spec_field( name => 'category', type => $type );
 
 =head2 Highlighting up next
 
-In our next tutorial chapter, L<KinoSearch::Docs::Tutorial::Highlighter>,
+In our next tutorial chapter, L<Lucy::Docs::Tutorial::Highlighter>,
 we'll add highlighted excerpts from the "content" field to our search results.
 
 

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/BeyondSimple.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/BeyondSimple.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/BeyondSimple.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/BeyondSimple.pod Tue Nov  2 16:22:27 2010
@@ -15,45 +15,45 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Tutorial::BeyondSimple - A more flexible app structure.
+Lucy::Docs::Tutorial::BeyondSimple - A more flexible app structure.
 
 =head1 DESCRIPTION
 
 =head2 Goal
 
 In this tutorial chapter, we'll refactor the apps we built in
-L<KinoSearch::Docs::Tutorial::Simple> so that they look exactly the same from
+L<Lucy::Docs::Tutorial::Simple> so that they look exactly the same from
 the end user's point of view, but offer the developer greater possibilites for
 expansion.  
 
-To achieve this, we'll ditch KSx::Simple and replace it with the
+To achieve this, we'll ditch LucyX::Simple and replace it with the
 classes that it uses internally:
 
 =over
 
 =item *
 
-L<KinoSearch::Plan::Schema> - Plan out your index.
+L<Lucy::Plan::Schema> - Plan out your index.
 
 =item *
 
-L<KinoSearch::Plan::FullTextType> - Field type for full text search.
+L<Lucy::Plan::FullTextType> - Field type for full text search.
 
 =item *
 
-L<KinoSearch::Analysis::PolyAnalyzer> - A one-size-fits-all parser/tokenizer.
+L<Lucy::Analysis::PolyAnalyzer> - A one-size-fits-all parser/tokenizer.
 
 =item *
 
-L<KinoSearch::Index::Indexer> - Manipulate index content.
+L<Lucy::Index::Indexer> - Manipulate index content.
 
 =item *
 
-L<KinoSearch::Search::IndexSearcher> - Search an index.
+L<Lucy::Search::IndexSearcher> - Search an index.
 
 =item *
 
-L<KinoSearch::Search::Hits> - Iterate over hits returned by a Searcher.
+L<Lucy::Search::Hits> - Iterate over hits returned by a Searcher.
 
 =back
 
@@ -61,22 +61,22 @@ L<KinoSearch::Search::Hits> - Iterate ov
 
 After we load our modules...
 
-    use KinoSearch::Plan::Schema;
-    use KinoSearch::Plan::FullTextType;
-    use KinoSearch::Analysis::PolyAnalyzer;
-    use KinoSearch::Index::Indexer;
+    use Lucy::Plan::Schema;
+    use Lucy::Plan::FullTextType;
+    use Lucy::Analysis::PolyAnalyzer;
+    use Lucy::Index::Indexer;
 
-... the first item we're going need is a L<Schema|KinoSearch::Plan::Schema>. 
+... the first item we're going need is a L<Schema|Lucy::Plan::Schema>. 
 
 The primary job of a Schema is to specify what fields are available and how
 they're defined.  We'll start off with three fields: title, content and url.
 
     # Create Schema.
-    my $schema = KinoSearch::Plan::Schema->new;
-    my $polyanalyzer = KinoSearch::Analysis::PolyAnalyzer->new(
+    my $schema = Lucy::Plan::Schema->new;
+    my $polyanalyzer = Lucy::Analysis::PolyAnalyzer->new(
         language => 'en',
     );
-    my $type = KinoSearch::Plan::FullTextType->new(
+    my $type = Lucy::Plan::FullTextType->new(
         analyzer => $polyanalyzer,
     );
     $schema->spec_field( name => 'title',   type => $type );
@@ -88,7 +88,7 @@ indicating that they will be searchable 
 they can be searched for individual words.  The "analyzer", which is unique to
 FullTextType fields, is what breaks up the text into searchable tokens.
 
-Next, we'll swap our KSx::Simple object out for a KinoSearch::Index::Indexer.
+Next, we'll swap our LucyX::Simple object out for a Lucy::Index::Indexer.
 The substitution will be straightforward because Simple has merely been
 serving as a thin wrapper around an inner Indexer, and we'll just be peeling
 away the wrapper.
@@ -96,7 +96,7 @@ away the wrapper.
 First, replace the constructor:
 
     # Create Indexer.
-    my $indexer = KinoSearch::Index::Indexer->new(
+    my $indexer = Lucy::Index::Indexer->new(
         index    => $path_to_index,
         schema   => $schema,
         create   => 1,
@@ -113,20 +113,20 @@ C<$simple> object C<add_doc> before:
 
 There's only one extra step required: at the end of the app, you must call
 commit() explicitly to close the indexing session and commit your changes.
-(KSx::Simple hides this detail, calling commit() implicitly when it needs to).
+(LucyX::Simple hides this detail, calling commit() implicitly when it needs to).
 
     $indexer->commit;
 
 =head2 Adaptations to search.cgi
 
-In our search app as in our indexing app, KSx::Simple has served as a
-thin wrapper -- this time around L<KinoSearch::Search::IndexSearcher> and
-L<KinoSearch::Search::Hits>.  Swapping out Simple for these two classes is
+In our search app as in our indexing app, LucyX::Simple has served as a
+thin wrapper -- this time around L<Lucy::Search::IndexSearcher> and
+L<Lucy::Search::Hits>.  Swapping out Simple for these two classes is
 also straightforward:
 
-    use KinoSearch::Search::IndexSearcher;
+    use Lucy::Search::IndexSearcher;
     
-    my $searcher = KinoSearch::Search::IndexSearcher->new( 
+    my $searcher = Lucy::Search::IndexSearcher->new( 
         index => $path_to_index,
     );
     my $hits = $searcher->hits(    # returns a Hits object, not a hit count
@@ -147,7 +147,7 @@ also straightforward:
 Congratulations!  Your apps do the same thing as before... but now they'll be
 easier to customize.  
 
-In our next chapter, L<KinoSearch::Docs::Tutorial::FieldType>, we'll explore
+In our next chapter, L<Lucy::Docs::Tutorial::FieldType>, we'll explore
 how to assign different behaviors to different fields.
 
 

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/FieldType.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/FieldType.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/FieldType.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/FieldType.pod Tue Nov  2 16:22:27 2010
@@ -15,14 +15,14 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Tutorial::FieldType - Specify per-field properties and
+Lucy::Docs::Tutorial::FieldType - Specify per-field properties and
 behaviors.
 
 =head1 DESCRIPTION
 
 The Schema we used in the last chapter specifies three fields: 
 
-    my $type = KinoSearch::Plan::FullTextType->new(
+    my $type = Lucy::Plan::FullTextType->new(
         analyzer => $polyanalyzer,
     );
     $schema->spec_field( name => 'title',   type => $type );
@@ -41,11 +41,11 @@ to assign the C<url> field to a differen
 =head2 StringType
 
 Instead of FullTextType, we'll use a
-L<StringType|KinoSearch::Plan::StringType>, which doesn't use an
+L<StringType|Lucy::Plan::StringType>, which doesn't use an
 Analyzer to break up text into individual fields.  Furthermore, we'll mark
 this StringType as unindexed, so that its content won't be searchable at all.
 
-    my $url_type = KinoSearch::Plan::StringType( indexed => 0 );
+    my $url_type = Lucy::Plan::StringType( indexed => 0 );
     $schema->spec_field( name => 'url', type => $url_type );
 
 To observe the change in behavior, try searching for C<us_constitution> both
@@ -56,7 +56,7 @@ before and after changing the Schema and
 For a taste of other FieldType possibilities, try turning off C<stored> for
 one or more fields.
 
-    my $content_type = KinoSearch::Plan::FullTextType->new(
+    my $content_type = Lucy::Plan::FullTextType->new(
         analyzer => $polyanalyzer,
         stored   => 0,
     );
@@ -68,7 +68,7 @@ no effect -- except on index size.
 =head2 Analyzers up next
 
 Analyzers play a crucial role in the behavior of FullTextType fields.  In our
-next tutorial chapter, L<KinoSearch::Docs::Tutorial::Analysis>, we'll see how
+next tutorial chapter, L<Lucy::Docs::Tutorial::Analysis>, we'll see how
 changing up the Analyzer changes search results.
 
 

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Highlighter.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Highlighter.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Highlighter.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Highlighter.pod Tue Nov  2 16:22:27 2010
@@ -15,7 +15,7 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Tutorial::Highlighter - Augment search results with
+Lucy::Docs::Tutorial::Highlighter - Augment search results with
 highlighted excerpts.
 
 =head1 DESCRIPTION
@@ -26,11 +26,11 @@ hits look promising, dramatically improv
 
 =head2 Adaptations to indexer.pl
 
-L<KinoSearch::Highlight::Highlighter> uses information generated at index
+L<Lucy::Highlight::Highlighter> uses information generated at index
 time.  To save resources, highlighting is disabled by default and must be
 turned on for individual fields.
 
-    my $highlightable = KinoSearch::Plan::FullTextType->new(
+    my $highlightable = Lucy::Plan::FullTextType->new(
         analyzer      => $polyanalyzer,
         highlightable => 1,
     );
@@ -41,7 +41,7 @@ turned on for individual fields.
 To add highlighting and excerpting to the search.cgi sample app, create a
 C<$highlighter> object outside the hits iterating loop...
 
-    my $highlighter = KinoSearch::Highlight::Highlighter->new(
+    my $highlighter = Lucy::Highlight::Highlighter->new(
         searcher => $searcher,
         query    => $q,
         field    => 'content'
@@ -70,8 +70,8 @@ excerpt.
 
 =head2 Next chapter: Query objects
 
-Our next tutorial chapter, L<KinoSearch::Docs::Tutorial::QueryObjects>,
+Our next tutorial chapter, L<Lucy::Docs::Tutorial::QueryObjects>,
 illustrates how to build an "advanced search" interface using
-L<Query|KinoSearch::Search::Query> objects instead of query strings.
+L<Query|Lucy::Search::Query> objects instead of query strings.
 
 

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/QueryObjects.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/QueryObjects.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/QueryObjects.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/QueryObjects.pod Tue Nov  2 16:22:27 2010
@@ -15,7 +15,7 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Tutorial::QueryObjects - Use Query objects instead of query
+Lucy::Docs::Tutorial::QueryObjects - Use Query objects instead of query
 strings.
 
 =head1 DESCRIPTION
@@ -28,17 +28,17 @@ chapter, we'll move towards an "advanced
 
 =item *
 
-L<QueryParser|KinoSearch::Search::QueryParser> - Turn a query string into a
-L<Query|KinoSearch::Search::Query> object.
+L<QueryParser|Lucy::Search::QueryParser> - Turn a query string into a
+L<Query|Lucy::Search::Query> object.
 
 =item *
 
-L<TermQuery|KinoSearch::Search::TermQuery> - Query for a specific term within
+L<TermQuery|Lucy::Search::TermQuery> - Query for a specific term within
 a specific field.
 
 =item *
 
-L<ANDQuery|KinoSearch::Search::ANDQuery> - "AND" together multiple Query
+L<ANDQuery|Lucy::Search::ANDQuery> - "AND" together multiple Query
 objects to produce an intersected result set.
 
 =back
@@ -49,7 +49,7 @@ Our new "category" field will be a Strin
 field, because we will only be looking for exact matches.  It needs to be
 indexed, but since we won't display its value, it doesn't need to be stored.
 
-    my $cat_type = KinoSearch::Plan::StringType->new( stored => 0 );
+    my $cat_type = Lucy::Plan::StringType->new( stored => 0 );
     $schema->spec_field( name => 'category', type => $cat_type );
 
 There will be three possible values: "article", "amendment", and "preamble",
@@ -91,9 +91,9 @@ The "category" constraint will be added 
 We'll start off by loading our new modules and extracting our new CGI
 parameter.
 
-    use KinoSearch::Search::QueryParser;
-    use KinoSearch::Search::TermQuery;
-    use KinoSearch::Search::ANDQuery;
+    use Lucy::Search::QueryParser;
+    use Lucy::Search::TermQuery;
+    use Lucy::Search::ANDQuery;
     
     ... 
     
@@ -103,10 +103,10 @@ QueryParser's constructor requires a "sc
 our IndexSearcher:
 
     # Create an IndexSearcher and a QueryParser.
-    my $searcher = KinoSearch::Search::IndexSearcher->new( 
+    my $searcher = Lucy::Search::IndexSearcher->new( 
         index => $path_to_index, 
     );
-    my $qparser  = KinoSearch::Search::QueryParser->new( 
+    my $qparser  = Lucy::Search::QueryParser->new( 
         schema => $searcher->get_schema,
     );
 
@@ -121,11 +121,11 @@ If the user has specified a category, we
 query together with a TermQuery representing the category.
 
     if ($category) {
-        my $category_query = KinoSearch::Search::TermQuery->new(
+        my $category_query = Lucy::Search::TermQuery->new(
             field => 'category', 
             term  => $category,
         );
-        $query = KinoSearch::Search::ANDQuery->new(
+        $query = Lucy::Search::ANDQuery->new(
             children => [ $query, $category_query ]
         );
     }
@@ -148,11 +148,11 @@ You've made it to the end of the tutoria
 
 =head1 SEE ALSO
 
-For additional thematic documentation, see the KinoSearch
-L<Cookbook|KinoSearch::Docs::Cookbook>.
+For additional thematic documentation, see the Apache Lucy
+L<Cookbook|Lucy::Docs::Cookbook>.
 
-ANDQuery has a companion class, L<ORQuery|KinoSearch::Search::ORQuery>, and a
+ANDQuery has a companion class, L<ORQuery|Lucy::Search::ORQuery>, and a
 close relative,
-L<RequiredOptionalQuery|KinoSearch::Search::RequiredOptionalQuery>.
+L<RequiredOptionalQuery|Lucy::Search::RequiredOptionalQuery>.
 
 

Modified: incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Simple.pod
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Simple.pod?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Simple.pod (original)
+++ incubator/lucy/trunk/perl/lib/KinoSearch/Docs/Tutorial/Simple.pod Tue Nov  2 16:22:27 2010
@@ -15,12 +15,12 @@
 
 =head1 NAME
 
-KinoSearch::Docs::Tutorial::Simple - Bare-bones search app.
+Lucy::Docs::Tutorial::Simple - Bare-bones search app.
 
 =head2 Setup
 
 Copy the html presentation of the US Constitution from the C<sample> directory
-of the KinoSearch distribution to the base level of your web server's
+of the Apache Lucy distribution to the base level of your web server's
 C<htdocs> directory.
 
     $ cp -R sample/us_constitution /usr/local/apache2/htdocs/
@@ -41,14 +41,14 @@ modules...
     my $path_to_index = '/path/to/index';
     my $uscon_source  = '/usr/local/apache2/htdocs/us_constitution';
 
-    use KSx::Simple;
+    use LucyX::Simple;
     use File::Spec::Functions qw( catfile );
     use HTML::TreeBuilder;
 
-... we'll start by creating a KSx::Simple object, telling it where we'd
+... we'll start by creating a LucyX::Simple object, telling it where we'd
 like the index to be located and the language of the source material.
 
-    my $simple = KSx::Simple->new(
+    my $simple = LucyX::Simple->new(
         path     => $path_to_index,
         language => 'en',
     );
@@ -56,9 +56,9 @@ like the index to be located and the lan
 Next, we'll add a subroutine which extracts plain text from an HTML source
 file.  
 
-KSx::Simple won't be of any help with the task of text extraction, because
+LucyX::Simple won't be of any help with the task of text extraction, because
 it's not equipped to deal with source files directly.  As a matter of
-principle, KinoSearch remains deliberately ignorant on the vast subject of
+principle, Lucy remains deliberately ignorant on the vast subject of
 file formats, preferring to focus instead on its core competencies of indexing
 and search.  There are many excellent dedicated parsing modules available on
 CPAN; we'll use HTML::TreeBuilder.
@@ -99,7 +99,7 @@ one line of code.
 =head2 Search: search.cgi
 
 As with our indexing app, the bulk of the code in our search script won't be
-KinoSearch-specific.  
+Lucy-specific.  
 
 The beginning is dedicated to CGI processing and configuration.
 
@@ -113,17 +113,17 @@ The beginning is dedicated to CGI proces
     use CGI;
     use Data::Pageset;
     use HTML::Entities qw( encode_entities );
-    use KSx::Simple;
+    use LucyX::Simple;
     
     my $cgi           = CGI->new;
     my $q             = $cgi->param('q') || '';
     my $offset        = $cgi->param('offset') || 0;
     my $hits_per_page = 10;
 
-Once that's out of the way, we create our KSx::Simple object and feed
+Once that's out of the way, we create our LucyX::Simple object and feed
 it a query string.
 
-    my $simple = KSx::Simple->new(
+    my $simple = LucyX::Simple->new(
         path     => $path_to_index,
         language => 'en',
     );
@@ -139,7 +139,7 @@ and also use it in conjunction with the 
 to break up results into "pages" of manageable size.
 
 Calling search() on our Simple object turns it into an iterator. Invoking
-next() now returns hits one at a time as L<KinoSearch::Document::HitDoc>
+next() now returns hits one at a time as L<Lucy::Document::HitDoc>
 objects, starting with the most relevant.
 
     # Create result list.
@@ -258,7 +258,7 @@ function from L<HTML::Entities> to guard
         content="text/html;charset=ISO-8859-1">
       <link rel="stylesheet" type="text/css" 
         href="/us_constitution/uscon.css">
-      <title>KinoSearch: $query_string</title>
+      <title>Lucy: $query_string</title>
     </head>
     
     <body>
@@ -282,8 +282,8 @@ function from L<HTML::Entities> to guard
     
         <p style="font-size: smaller; color: #666">
           <em>
-            Powered by 
-            <a href="http://www.rectangular.com/kinosearch/">KinoSearch</a>
+            Powered by <a href="http://incubator.apache.org/lucy/"
+            >Apache Lucy<small><sup>TM</sup></small></a>
           </em>
         </p>
       </div><!--bodytext-->
@@ -296,13 +296,13 @@ function from L<HTML::Entities> to guard
 
 =head2 OK... now what?
 
-KSx::Simple is perfectly adequate for some tasks, but it's not very flexible.
+LucyX::Simple is perfectly adequate for some tasks, but it's not very flexible.
 Many people find that it doesn't do at least one or two things they can't live
 without.
 
 In our next tutorial chapter,
-L<BeyondSimple|KinoSearch::Docs::Tutorial::BeyondSimple>, we'll rewrite our
-indexing and search scripts using the classes that KSx::Simple hides
+L<BeyondSimple|Lucy::Docs::Tutorial::BeyondSimple>, we'll rewrite our
+indexing and search scripts using the classes that LucyX::Simple hides
 from view, opening up the possibilities for expansion; then, we'll spend the
 rest of the tutorial chapters exploring these possibilities.
 

Modified: incubator/lucy/trunk/perl/sample/FlatQueryParser.pm
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/sample/FlatQueryParser.pm?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/sample/FlatQueryParser.pm (original)
+++ incubator/lucy/trunk/perl/sample/FlatQueryParser.pm Tue Nov  2 16:22:27 2010
@@ -17,11 +17,11 @@ use strict;
 use warnings;
 
 package FlatQueryParser;
-use base qw( KinoSearch::Search::QueryParser );
-use KinoSearch::Search::TermQuery;
-use KinoSearch::Search::PhraseQuery;
-use KinoSearch::Search::ORQuery;
-use KinoSearch::Search::NoMatchQuery;
+use base qw( Lucy::Search::QueryParser );
+use Lucy::Search::TermQuery;
+use Lucy::Search::PhraseQuery;
+use Lucy::Search::ORQuery;
+use Lucy::Search::NoMatchQuery;
 use PrefixQuery;
 use Parse::RecDescent;
 use Carp;
@@ -33,7 +33,7 @@ my $grammar = <<'END_GRAMMAR';
 tree:
     leaf_queries
     { 
-        $return = KinoSearch::Search::ORQuery->new;
+        $return = Lucy::Search::ORQuery->new;
         $return->add_child($_) for @{ $item[1] };
     }
 
@@ -48,15 +48,15 @@ leaf_query:
     
 term_query:
     /(\S+)/
-    { KinoSearch::Search::LeafQuery->new( text => $1 ) }
+    { Lucy::Search::LeafQuery->new( text => $1 ) }
 
 phrase_query:
     /("[^"]*(?:"|$))/   # terminated by either quote or end of string
-    { KinoSearch::Search::LeafQuery->new( text => $1 ) }
+    { Lucy::Search::LeafQuery->new( text => $1 ) }
     
 prefix_query:
     /(\w+\*)/
-    { KinoSearch::Search::LeafQuery->new( text => $1 ) }
+    { Lucy::Search::LeafQuery->new( text => $1 ) }
 
 END_GRAMMAR
 
@@ -78,7 +78,7 @@ sub parse {
     my $tree = $self->tree($query_string);
     return $tree
         ? $self->expand($tree)
-        : KinoSearch::Search::NoMatchQuery->new;
+        : Lucy::Search::NoMatchQuery->new;
 }
 
 sub tree {
@@ -90,7 +90,7 @@ sub expand_leaf {
     my ( $self, $leaf_query ) = @_;
     my $text = $leaf_query->get_text;
     if ( $text =~ /\*$/ ) {
-        my $or_query = KinoSearch::Search::ORQuery->new;
+        my $or_query = Lucy::Search::ORQuery->new;
         for my $field ( @{ $self->get_fields } ) {
             my $prefix_query = PrefixQuery->new(
                 field        => $field,
@@ -115,7 +115,7 @@ FlatQueryParser - Simple query parser, w
 
 =head1 SYNOPSIS
 
-    my $searcher = KinoSearch::Search::IndexSearcher->new( 
+    my $searcher = Lucy::Search::IndexSearcher->new( 
         index => '/path/to/index' 
     );
     my $parser = FlatQueryParser->new( $searcher->get_schema );
@@ -125,7 +125,7 @@ FlatQueryParser - Simple query parser, w
 
 =head1 DESCRIPTION
 
-See L<KinoSearch::Docs::Cookbook::CustomQueryParser>.
+See L<Lucy::Docs::Cookbook::CustomQueryParser>.
 
 =cut
 

Modified: incubator/lucy/trunk/perl/sample/PrefixQuery.pm
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/sample/PrefixQuery.pm?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/sample/PrefixQuery.pm (original)
+++ incubator/lucy/trunk/perl/sample/PrefixQuery.pm Tue Nov  2 16:22:27 2010
@@ -17,7 +17,7 @@ use strict;
 use warnings;
 
 package PrefixQuery;
-use base qw( KinoSearch::Search::Query );
+use base qw( Lucy::Search::Query );
 use Carp;
 use Scalar::Util qw( blessed );
 
@@ -70,7 +70,7 @@ sub make_compiler {
 }
 
 package PrefixCompiler;
-use base qw( KinoSearch::Search::Compiler );
+use base qw( Lucy::Search::Compiler );
 
 sub make_matcher {
     my ( $self, %args ) = @_;
@@ -78,9 +78,9 @@ sub make_matcher {
 
     # Retrieve low-level components LexiconReader and PostingListReader.
     my $lex_reader
-        = $seg_reader->obtain("KinoSearch::Index::LexiconReader");
+        = $seg_reader->obtain("Lucy::Index::LexiconReader");
     my $plist_reader
-        = $seg_reader->obtain("KinoSearch::Index::PostingListReader");
+        = $seg_reader->obtain("Lucy::Index::PostingListReader");
     
     # Acquire a Lexicon and seek it to our query string.
     my $substring = $self->get_parent->get_query_string;
@@ -109,7 +109,7 @@ sub make_matcher {
 }
 
 package PrefixScorer;
-use base qw( KinoSearch::Search::Matcher );
+use base qw( Lucy::Search::Matcher );
 
 # Inside-out member vars.
 my %doc_ids;
@@ -132,7 +132,7 @@ sub new {
     $doc_ids{$$self} = \@doc_ids;
 
     $tick{$$self}  = -1;
-    $tally{$$self} = KinoSearch::Search::Tally->new;
+    $tally{$$self} = Lucy::Search::Tally->new;
     $tally{$$self}->set_score(1.0);    # fixed score of 1.0
 
     return $self;
@@ -174,7 +174,7 @@ __POD__
 
 =head1 SAMPLE CLASS
 
-PrefixQuery - Sample subclass of KinoSearch::Query, supporting trailing
+PrefixQuery - Sample subclass of Lucy::Query, supporting trailing
 wildcards.
 
 =head1 SYNOPSIS
@@ -187,7 +187,7 @@ wildcards.
 
 =head1 DESCRIPTION
 
-See L<KinoSearch::Docs::Cookbook::CustomQuery>.
+See L<Lucy::Docs::Cookbook::CustomQuery>.
 
 =cut
 

Modified: incubator/lucy/trunk/perl/sample/README.txt
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/sample/README.txt?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/sample/README.txt (original)
+++ incubator/lucy/trunk/perl/sample/README.txt Tue Nov  2 16:22:27 2010
@@ -1,2 +1,2 @@
 For more information on the sample code in this directory, see
-KinoSearch::Docs::Tutorial and KinoSearch::Docs::Cookbook.
\ No newline at end of file
+Lucy::Docs::Tutorial and Lucy::Docs::Cookbook.

Modified: incubator/lucy/trunk/perl/sample/indexer.pl
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/sample/indexer.pl?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/sample/indexer.pl (original)
+++ incubator/lucy/trunk/perl/sample/indexer.pl Tue Nov  2 16:22:27 2010
@@ -24,32 +24,32 @@ my $uscon_source  = '/usr/local/apache2/
 
 use File::Spec::Functions qw( catfile );
 use HTML::TreeBuilder;
-use KinoSearch::Plan::Schema;
-use KinoSearch::Plan::FullTextType;
-use KinoSearch::Analysis::PolyAnalyzer;
-use KinoSearch::Index::Indexer;
+use Lucy::Plan::Schema;
+use Lucy::Plan::FullTextType;
+use Lucy::Analysis::PolyAnalyzer;
+use Lucy::Index::Indexer;
 
 # Create Schema.
-my $schema = KinoSearch::Plan::Schema->new;
-my $polyanalyzer = KinoSearch::Analysis::PolyAnalyzer->new(
+my $schema = Lucy::Plan::Schema->new;
+my $polyanalyzer = Lucy::Analysis::PolyAnalyzer->new(
     language => 'en',
 );
-my $title_type = KinoSearch::Plan::FullTextType->new( 
+my $title_type = Lucy::Plan::FullTextType->new( 
     analyzer => $polyanalyzer, 
 );
-my $content_type = KinoSearch::Plan::FullTextType->new(
+my $content_type = Lucy::Plan::FullTextType->new(
     analyzer      => $polyanalyzer,
     highlightable => 1,
 );
-my $url_type = KinoSearch::Plan::StringType->new( indexed => 0, );
-my $cat_type = KinoSearch::Plan::StringType->new( stored => 0, );
+my $url_type = Lucy::Plan::StringType->new( indexed => 0, );
+my $cat_type = Lucy::Plan::StringType->new( stored => 0, );
 $schema->spec_field( name => 'title',    type => $title_type );
 $schema->spec_field( name => 'content',  type => $content_type );
 $schema->spec_field( name => 'url',      type => $url_type );
 $schema->spec_field( name => 'category', type => $cat_type );
 
 # Create an Indexer object.
-my $indexer = KinoSearch::Index::Indexer->new(
+my $indexer = Lucy::Index::Indexer->new(
     index    => $path_to_index,
     schema   => $schema,
     create   => 1,

Modified: incubator/lucy/trunk/perl/sample/search.cgi
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/sample/search.cgi?rev=1030104&r1=1030103&r2=1030104&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/sample/search.cgi (original)
+++ incubator/lucy/trunk/perl/sample/search.cgi Tue Nov  2 16:22:27 2010
@@ -24,11 +24,11 @@ my $path_to_index = '/path/to/index';
 use CGI;
 use Data::Pageset;
 use HTML::Entities qw( encode_entities );
-use KinoSearch::Search::IndexSearcher;
-use KinoSearch::Highlight::Highlighter;
-use KinoSearch::Search::QueryParser;
-use KinoSearch::Search::TermQuery;
-use KinoSearch::Search::ANDQuery;
+use Lucy::Search::IndexSearcher;
+use Lucy::Highlight::Highlighter;
+use Lucy::Search::QueryParser;
+use Lucy::Search::TermQuery;
+use Lucy::Search::ANDQuery;
 
 my $cgi           = CGI->new;
 my $q             = $cgi->param('q') || '';
@@ -37,21 +37,21 @@ my $category      = $cgi->param('categor
 my $hits_per_page = 10;
 
 # Create an IndexSearcher and a QueryParser.
-my $searcher = KinoSearch::Search::IndexSearcher->new( 
+my $searcher = Lucy::Search::IndexSearcher->new( 
     index => $path_to_index,
 );
-my $qparser = KinoSearch::Search::QueryParser->new( 
+my $qparser = Lucy::Search::QueryParser->new( 
     schema => $searcher->get_schema,
 );
 
 # Build up a Query.
 my $query = $qparser->parse($q);
 if ($category) {
-    my $category_query = KinoSearch::Search::TermQuery->new(
+    my $category_query = Lucy::Search::TermQuery->new(
         field => 'category', 
         term  => $category,
     );
-    $query = KinoSearch::Search::ANDQuery->new(
+    $query = Lucy::Search::ANDQuery->new(
         children => [ $query, $category_query ]
     );
 }
@@ -65,7 +65,7 @@ my $hits = $searcher->hits(
 my $hit_count = $hits->total_hits;
 
 # Arrange for highlighted excerpts to be created.
-my $highlighter = KinoSearch::Highlight::Highlighter->new(
+my $highlighter = Lucy::Highlight::Highlighter->new(
     searcher => $searcher,
     query    => $q,
     field    => 'content'
@@ -89,9 +89,9 @@ while ( my $hit = $hits->next ) {
     |;
 }
 
-#--------------------------------------------------------------------------#
-# No KinoSearch tutorial material below this point - just html generation. #
-#--------------------------------------------------------------------------#
+#--------------------------------------------------------------------#
+# No Lucy tutorial material below this point - just html generation. #
+#--------------------------------------------------------------------#
 
 # Generate html, print and exit.
 my $paging_links = generate_paging_info( $q, $hit_count );
@@ -202,7 +202,7 @@ sub blast_out_content {
     content="text/html;charset=ISO-8859-1">
   <link rel="stylesheet" type="text/css" 
     href="/us_constitution/uscon.css">
-  <title>KinoSearch: $query_string</title>
+  <title>Lucy: $query_string</title>
 </head>
 
 <body>
@@ -225,10 +225,11 @@ sub blast_out_content {
 
   $paging_info
 
+  </div><!--bodytext-->
     <p style="font-size: smaller; color: #666">
       <em>
-        Powered by 
-        <a href="http://www.rectangular.com/kinosearch/">KinoSearch</a>
+        Powered by <a href="http://incubator.apache.org/lucy/"
+        >Apache Lucy<small><sup>TM</sup></small></a>
       </em>
     </p>
   </div><!--bodytext-->