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.