Search::Odeum - Perl interface to the Odeum inverted index API.
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;
Search::Odeum is an interface to the Odeum API. Odeum is the inverted index API
which is a part of qdbm database library.
- 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.
http://qdbm.sourceforge.net/
Tomohiro IKEBE, <ikebe@shebang.jp>
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.