NAME

PurpleWiki::Search::Engine - Wiki search engine.

SYNOPSIS

This module provides the engine that runs a search query through one or more pluggable PurpleWiki search modules and aggregates the results for presentation.

DESCRIPTION

Initially searching was provided as a function in the PurpleWiki core. When plugins were created for MovableType and bloxsom a PurpleWiki user noted that those weblogs contain content and BackLinks that should be reachable from PurpleWiki.

PurpleWiki::Search::Engine was written to address this need. It allows a search query entered in the wiki to be passed through any number of configurable search modules, collecting a list of results with a small amount of metadata, and presenting the results.

The collection of modules used is controlled by the PurpleWiki configuration file item 'SearchModule'. There is one 'SearchModule' entry for each module used. Modules are searched in the order in which they appear in the configuration file.

Each SearchModule is a subclass of PurpleWiki::Search::Interface. These classes return their results to PurpleWiki::Search::Engine as a list of PurpleWiki::Search::Result objects.

PurpleWiki::Search::Engine and the associated modules may be used independently of wiki.cgi if desired. A PurpleWiki::Config object is required.

METHODS

new()

Creates a new PurpleWiki::Search::Engine.

search($query)

Passes the query to each of the configured search modules, requiring their code as necessary. Nothing is returned.

asHTML()

Returns an HTML string of the results, ordered by search module. Results within each module are ordered according to the module. Generally results are in reverse chronological order according to last modified time.

config()

Provides access to the PurpleWiki::Config object passed in with new().

AUTHOR

Chris Dent, <cdent@blueoxen.org>

SEE ALSO

PurpleWiki::Search::Result. PurpleWiki::Search::Interface. http://www.eekim.com/blog/2004/01/06/blogbacklinks

PROPS TO

David Fannin

1 POD Error

The following errors were encountered while parsing the POD:

Around line 146:

You forgot a '=back' before '=head1'