blob: 7ec7467af6b0ff1b0e6dabd70e4b7fcbac4dcfde [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
=head1 NAME
Lucy::Docs::Tutorial - Step-by-step introduction to Apache Lucy.
=head1 ABSTRACT
Explore Apache Lucy's basic functionality by starting with a minimalist CGI
search app based on L<Lucy::Simple> and transforming it, step by step, into an
"advanced search" interface utilizing more flexible core modules like
L<Lucy::Index::Indexer> and L<Lucy::Search::IndexSearcher>.
=head1 DESCRIPTION
=head2 Chapters
=over
=item *
L<Lucy::Docs::Tutorial::Simple> - Build a bare-bones search app using
L<Lucy::Simple>.
=item *
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 Lucy::Simple.
=item *
L<Lucy::Docs::Tutorial::FieldType> - Experiment with different field
characteristics using subclasses of L<Lucy::Plan::FieldType>.
=item *
L<Lucy::Docs::Tutorial::Analysis> - Examine how the choice of
L<Lucy::Analysis::Analyzer> subclass affects search results.
=item *
L<Lucy::Docs::Tutorial::Highlighter> - Augment search results with
highlighted excerpts.
=item *
L<Lucy::Docs::Tutorial::QueryObjects> - Unlock advanced search features
by using Query objects instead of query strings.
=back
=head2 Source materials
The source material used by the tutorial app -- a multi-text-file presentation
of the United States constitution -- can be found in the C<sample> directory
at the root of the Lucy distribution, along with finished indexing and search
apps.
sample/indexer.pl # indexing app
sample/search.cgi # search app
sample/us_constitution # corpus
=head2 Conventions
The user is expected to be familiar with OO Perl and basic CGI programming.
The code in this tutorial assumes a Unix-flavored operating system and the
Apache webserver, but will work with minor modifications on other setups.
=head1 SEE ALSO
More advanced and esoteric subjects are covered in
L<Lucy::Docs::Cookbook>.