読者です 読者をやめる 読者になる 読者になる

pgestraier インストール

pgestraierのインストールについて記載する。
pgestraierは
PostgreSQLからノードサーバを操作するインターフェイスである。
ようは、postgresの文字列検索にHyper Estraierを使えるようにするというもの(たぶん)。

本家
http://pgestraier.projects.postgresql.org/

本記載はDebian4、DBはPostgresql8.2.5上で行った。

PostgreSQL8インストール

http://d.hatena.ne.jp/shohu33/20071015

pgestraierインストール

HyperEstrierのサービスを開始しておく。
HyperEstraierのindexや対応Trigerを作成するために、pgestraierのPerlが使用。

# estmaster init /usr/local/hyperestraier
# estmaster start -bg /usr/local/hyperestraier
* -bg バックグラウンド起動
sudoをpostgresユーザーで使うため使えるよう設定する
>||
# visudo
-----
postgres	ALL=(ALL) ALL
-----

Perl用Estraierのソースをダウンロード

# su - postgres
$ apt-get install pkg-config ← 必要??
$ cpan Search::Estraier

tarボールが発見できなかったため、cvsから直接ダウンロードする

$ apt-get install cvs
$ cvs -d :pserver:anonymous@cvs.pgfoundry.org:/cvsroot/pgestraier checkout pgestraier
$ cd pgestraier
$ sudo make install

postgres用にplファイル修正(初期はMySQL用になっているため)

vi bin/pgest-index.pl
-----
$c->{dbi} = 'Pg:dbname=' . $dbname;
-----

DB、テーブルを用意する

$ createdb content -E UTF8
$ psql content
create table geoaddr(
   id             serial primary key,
   addr_name      varchar(256) UNIQUE
);

INDEX作成

$ ./bin/pgest-index.pl content --create geoaddr \
   --sql="select id,addr_name from geoaddr"
there are 0 triggers instead of just 3, dropping all
using primary key id
indexing existing 17996 rows
created consistency triggers

-- example SQL search query:

SELECT id, addr_name
FROM pgest(
        -- node, login, passwd, depth
        'http://localhost:1978/node/geoaddr', 'admin', 'admin', 0,
        -- full text search
        '1',
        -- attribute filter, order, limit, offset
        null, null, null, null,
        -- return columns
        array['id', 'addr_name']
) as (id text, addr_name text);