NAME

Search::Odeum - Perl interface to the Odeum inverted index API.

SYNOPSIS

Create inverted index and put your document.

use Search::Odeum;

my $od = Search::Odeum->new('index', OD_OWRITER|OD_OCREAT);
my $doc = Search::Odeum::Document->new('http://www.example.com/');
$doc->attr('title' => 'example.com');
# ... break text into words.
$doc->addword($normal, $asis);
$od->put($doc);
$od->close;

Search the inverted index to retrieve documents.

use Search::Odeum;

my $od = Search::Odeum->new('index', OD_OREADER);
my $res = $od->search($word); # $res is-a Search::Odeum::Result
while(my $doc = $res->next) {
    printf "%s\n", $doc->uri;
}
$od->close;

DESCRIPTION

Search::Odeum is an interface to the Odeum API. Odeum is the inverted index API which is a part of qdbm database library.

METHODS

Search::Odeum->new($name, $omode)

Create new Search::Odeum instance. $name specifies the databse directory. $omode specifies the open mode.

put($doc, $wmax, $over)

store a document into the database. $doc is a Search::Odeum::Document object. $wmax specifies the max number of words to be stored. the default is unlimited. $over specifies the duplicated document will be overwritten or not. the default behavior is true.

out($uri)

delete a document from database. $uri specifies the document URI string.

outbyid($id)

delete a document from database. $id specifies the document ID

get($uri)

retrieve a document from database. $uri specifies the document URI string.

getbyid($id)

retrieve a document from database. $id specifies the document ID

getidbyuri($uri)

retrieve a document ID by the document URI. $uri specifies the document URI string.

check($id)

check whether the specified document exists. $id specifies the document ID

search($word, $max)

search inverted index. $word specifies the searching word. $max specifies the max number of documents to be retrieved. return value is a Search::Odeum::Result object.

searchdnum($word)

get the number of documents including a word. this method is faster than search. $word specifies the searching word.

query($query)

query a database using a small boolean query language.

sync

synchronize updated contents to the device.

optimize

optimize a database.

name

get the name of database.

fsiz

get the total size of database files.

bnum

get the total number of the elements of the bucket arrays in the inverted index

busenum

get the total number of the used elements of the bucket arrays in the inverted index

dnum

get the number of documents in database.

wnum

get the number of words in database.

writable

check whether a database is writable or not.

fatalerror

check whether a database has a fatal error or not.

inode

get the inode number of a database directory.

mtime

get the last modified time of a database.

close

close a database handle.

SEE ALSO

http://qdbm.sourceforge.net/

AUTHOR

Tomohiro IKEBE, <ikebe@shebang.jp>

COPYRIGHT AND LICENSE

Copyright (C) 2007 by Tomohiro IKEBE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.