NAME

Search::InvertedIndex::DB::Mysql - A MySQL database interface object for Search::InvertedIndex

SYNOPSIS

use Search::InvertedIndex::DB::Mysql;

my $db = Search::InvertedIndex::DB::Mysql->new({
            -db_name => 'searchdb',
           -hostname => 'db.domain.com',
           -username => 'dbuser',
           -password => 'dbuserpw',
         -table_name => 'indextablename',
          -lock_mode => 'EX' });

my $inv_map = Search::InvertedIndex->new({ -database => $db });

my $query = Search::InvertedIndex::Query->new(...);
my $result = $inv_map->search({ -query => $query });

my $update = Search::InvertedIndex::Update->new(...);
my $result = $inv_map->update({ -update => $update });

$inv_map->close;

DESCRIPTION

An interface allowing Search::InvertedIndex to store and retrieve data from Mysql database tables. All of the data is stored in a single table, which will be created automatically if it does not exist when the new method is called.

The new method takes up to six parameters, two of which are required.

-db_name

Mysql database name. Required.

-table_name

Table within the database to use. *CAUTION* If this table exists, the clear method will erase the contents WITHOUT verifying that the table contains data the module understands. If you point the module to an existing table you do so at your own risk! Required.

-hostname

Mysql database host. Default: database server is on the local machine.

-username

User for connecting to the Mysql server. The user must have appropriate authority for the operations you are performing or Mysql may complain. Default: none.

-password

Password for the User. Default: none.

-lock_mode

Locking status for the database table. EX, SH, or UN. EX will attempt to obtain a WRITE lock on the table, SH a READ lock, and UN will not request one at all. Tables may be created and modified in any mode, but EX is obviously recommended.

AUTHOR

Michael Cramer <cramer@webkist.com>, based on Search::InvertedIndex::DB::DB_File_SplitHash by Jerilyn Franz.

NOTES

This module is not tested during installation due to its need for MySQL support in Perl and associated access permissions and so on.

You *MUST* have the DBI and DBD::mysql modules installed to be able to use this module.

Theoretically, someone could use this module as a starting point for creating support for all kinds of DBI supported databases.

SEE ALSO

Search::InvertedIndex Search::InvertedIndex::DB::DB_File_SplitHash DBI DBD::mysql