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


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

  my $db = Search::InvertedIndex::DB::Mysql->new({
              -db_name => 'searchdb',
             -hostname => '',
             -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 });



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.


Mysql database name. Required.


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.


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


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 for the User. Default: none.


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.


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


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.


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