■ HyperEstraier の Perl Binding を使ってみた。
Last Update: 2005-10-04 (Tue) 18:46
Hyper Estraier になって、色々外部のプログラムからも扱いやすくなっているようなので、いまさらながら試してみました。
プログラミングガイド だけでは良くわからなかったのと、Perl でやってる人が見付からなかったので、ここにサンプルを載せておきます。
単純にデータベースを開いて、検索を実行し、パスの一覧を表示するだけのスクリプトです。
以下のスクリプトを作成するにあたって、HyperEstraier の Python Binding できた が参考になりました。
#!/usr/bin/perl -w
use strict;
use HyperEstraier;
my $word = shift||die "$0 [keyword]\n";
# データベースを開く
my $db = new HyperEstraier::Database;
$db->open('casket', $HyperEstraier::Database::DBREADER);
# 検索語の決定
my $cond = new HyperEstraier::Condition;
$cond->set_phrase($word);
# 結果取得
my $result = $db->search($cond, 0);
# 結果表示
my $num = $result->size;
$num--;
foreach (0..$num) {
my $doc = $db->get_doc($result->get($_), 0);
my $uri = $doc->attr('@uri');
my $text = $doc->dump_draft;
print $uri;
print "\n";
}
それにしても、自分の好きな言語で検索システムが簡単に構築出来るのですごい便利。
また今度時間がある時に、データベースの更新や登録についても調べてみようと思います。
Posted by Kyosuke Takayama at 2005-10-04 (Tue) 18:40 printable version