NAME

SWISH::Prog::InvIndex - base class for Swish-e inverted indexes

SYNOPSIS

use SWISH::Prog::InvIndex;
my $index = SWISH::Prog::InvIndex->new(path => 'path/to/index');
print $index;  # prints $index->path
my $meta = $index->meta;  # $meta isa SWISH::Prog::InvIndex::Meta object

DESCRIPTION

A SWISH::Prog::InvIndex is a base class for defining different Swish-e inverted index formats.

METHODS

init

Implements the base SWISH::Prog::Class method.

path

Returns a Path::Class::Dir object representing the directory path to the index. The path is a directory which contains the various files that comprise the index.

meta

Returns a SWISH::Prog::InvIndex::Meta object with which you can query information about the index.

meta_file

Returns Path::Class::File object pointing at the swish_header_file.

open

Open the invindex for reading/writing. Subclasses should implement this per their IR library specifics.

This base open() method will rmtree( path() ) if clobber() is true, and will mkpath() if path() does not exist. So SUPER::open() should do something sane at minimum.

open_ro

Open the invindex in read-only mode. This is typical when searching the invindex.

The default open_ro() method will simply call through to open().

close

Close the index. Subclasses should implement this per their IR library specifics.

clobber

Get/set the boolean indicating whether the index should overwrite any existing index with the same name. The default is true.

new_from_meta

Returns a new instance like new() does, blessed into the appropriate class indicated by the swish.xml meta header file.

AUTHOR

Peter Karman, <perl@peknet.com>

BUGS

Please report any bugs or feature requests to bug-swish-prog at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SWISH-Prog. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc SWISH::Prog

You can also look for information at:

COPYRIGHT AND LICENSE

Copyright 2008-2009 by Peter Karman

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

http://swish-e.org/