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.