NAME

Search::InvertedIndex::DB::Pg - A Postgres backend for Search::InvertedIndex.

SYNOPSIS

use Search::InvertedIndex;
use Search::InvertedIndex::DB::Pg;

my $db = Search::InvertedIndex::DB::Pg->new(
      -db_name    => "testdb",
      -hostname   => "test.example.com",
      -port       => 5432,
      -username   => "testuser",
      -password   => "testpass",
      -table_name => "siindex",
      -lock_mode  => "EX",
);

my $map = Search::InvertedIndex->new( -database => $db );

DESCRIPTION

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

METHODS

new
my $db = Search::InvertedIndex::DB::Pg->new(
      -db_name    => "testdb",
      -hostname   => "test.example.com",
      -port       => 5432,
      -username   => "testuser",
      -password   => "testpass",
      -table_name => "siindex",
      -lock_mode  => "EX",
);

-db_name and -table_name are mandatory. -lock_mode defaults to EX. -port is optional and defaults to not being specified..

open
$db->open;

Opens the database in the mode specified when new was called. Croaks on error, returns true otherwise. Trying to open a nonexistent database/table combination in SH mode is considered to be an error. Opening an already-open database/table combination isn't.

lock
$db->lock( -lock_mode => "EX" );

The -lock_mode parameter is required; allowed values are EX, SH and UN. Returns true on success; croaks on error.

status
my $opened = $db->status( "-open" );
my $lock_mode = $db->status( "-lock_mode" );

Allowed requests are -open and -lock_mode. -lock_mode can only be called on an open database. -lock is a synonym for -lock_mode. Croaks if sent an invalid request, or on error.

put
$db->put( -key => "foo", -value => "bar" );

Both parameters are mandatory. Any others will be silently ignored. Returns true on success and false on error.

get
my $value = $db->get( -key => "foo" );

Croaks if no -key supplied.

delete
$db->delete( -key => "foo" );
close
$db->close;
clear
$db->clear;

Clears out all indexing data.

AUTHOR

Kate L Pugh <kake@earth.li>, based on Search::InvertedIndex::DB::Mysql by Michael Cramer and Search::InvertedIndex::DB::DB_File_SplitHash by Benjamin Franz.

COPYRIGHT

Copyright (C) 2003-4 Kake Pugh.  All Rights Reserved.

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

CREDITS

Module based on work by Michael Cramer and Benjamin Franz. Patch from Cees Hek.

SEE ALSO

Search::InvertedIndex