Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
HyperEstraier の Perl Binding を使ってみた。
[go: Go Back, main page]

[Perl] プログラム言語 Perl についての覚え書き

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

この記事へのコメント

コメントはお気軽にどうぞ

Cookie に保存しますか?

※スパム対策のため、http:// を含むコメントの投稿は出来ません。

トラックバック

トラックバックURL: http://espion.just-size.jp/mt-tb.cgi/526


この記事のリンク元

 
Copyright (C) Kyosuke Takayama, All rights reserved.