LudiaはSennaを使ったPostgresSQL用の組み込み型全文検索インデックスエンジンです。
ダウンロード
下記サイトからダウンロード。
http://sourceforge.jp/projects/ludia/
Mecab、MeCab辞書、Sennaが含まれているludia-withdepsのパッケージをDLします。
インストール
解凍
$tar -zxvf ludia-withdeps-1.5.1.tar.gz
$cd ludia-1.51/deps
MeCabのインストール
分かち書き方式に形態素解析を利用しない場合は、 MeCab(と辞書)をインストールする必要はありません。その場合はSennaのインストールに進んでください。 (MeCabをインストールしない場合はSennaのインストールの際に、 --without-mecabオプションを指定する必要あり)
MeCabをインストールする場合は、アーカイブを展開し、以下の要領でビルドとインストールを行います。:
$ tar -zxvf mecab-0.97.tar.gz
$ cd mecab-0.97
$ ./configure --with-charset=utf8
$ make
$ su
# make install
MeCab辞書のインストール
アーカイブを展開し、以下の要領でビルドとインストールを行います。:
$ tar -zxvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make
$ su
# make install
Sennaのインストール
アーカイブを展開し、以下の要領でビルドとインストールを行います。:
$ tar -zxvf senna-1.13.tar.gz
$ cd senna-1.13
$ ./configure
$ make
$ su
# make install
MeCabをインストールしていない場合には、以下のように --without-mecab オプションの指定が必要
$ ./configure --without-mecab
Ludiaのインストール
アーカイブを展開し、以下の要領でビルドとインストールを行います。:
$ ./../../
$ ./configure
$ make
$ su
# make install
pg_configコマンド、senna-cfgコマンドのインストール先にPATHが設定されていない場合、以下のようにそれぞれのpathをconfigureオプションで指定してください。:
$ ./configure --with-pg-config=/usr/local/pgsql/bin/pg_config --with-senna-cfg=/usr/local/bin/senna-cfg
インデックスアクセスメソッドの登録
$ psql -f /usr/share/pgsql/pgsenna2.sql testdb -u
postgreSQLの設定ファイル編集
postgresql.confに下記の設定を追加
custom_variable_classes = 'ludia'
ludia.max_n_sort_result = 10000
ludia.enable_seqscan = on
ludia.seqscan_flags = 1
ludia.sen_index_flags = 31
ludia.max_n_index_cache = 16
ludia.initial_n_segments = 512
インデックスの作成
インデックス作成例:
CREATE INDEX student_fulltext_index_name
ON student
USING fulltext(studentname);
検索クエリ
SELECT * FROM student WHERE studentname %% 'もも';
Tuesday, April 28, 2009
Monday, April 27, 2009
postgresql log setting postgresql ログ 設定
syslogにログをはく
vi /usr/local/pgsql/data/postgresql.conf
log_destination = 'syslog'
log_statement = 'all'
syslogの設定にも追加
vi /etc/syslog.conf
local0.* /var/log/postgresql.log
syslog再起動
/etc/init.d/syslog restart
Saturday, April 25, 2009
perl pdf encode utf8 and shift_jis(japanese font)
#!/usr/bin/perl -w
use strict;
use PDF::API2;
my $pdf = PDF::API2->new;
$pdf = PDF::API2->open('/tmp/old.pdf');
my $page = $pdf->openpage(1);
my $gfx = $page->gfx;
#my $jfs = $pdf->cjkfont( 'KozGo', -encode=>'utf8' );
my $jfs = $pdf->cjkfont( 'KozGo', -encode=>'shiftjis' );
my $text = "T03 2007/1/23 どんなかんじでしょうかね";
$gfx->textlabel(30, 800, $jfs, 20, $text, -color=>'red');
$pdf->saveas("new_file.pdf");
Friday, April 24, 2009
add more package for apache httpd アパッシュは、モジュール追加
add more package for apache httpd アパッシュは、モジュール追加
インストーラされてるモジュールの確認
# /usr/local/apache2/bin/httpd -l
これでモジュールの一覧が見える。ここに mod_so.c が無いともう駄目らしい。
コンパイル
ソースがあるディレクトリを探して移動する。
rewrite module は httpd-2.0.59/modules/mappers にあった。
# /usr/local/apache-2.0/bin/apxs -c mod_rewrite.c
インストール
そしてインストール
# /usr/local/apache-2.0/bin/apxs -ian rewrite mod_rewrite.la
設定を確認して apache をリロード
httpd.conf には勝手に追加されるらしい。
LoadModule rewrite_module modules/mod_rewrite.so
なので後は再ロードする。
# /etc/init.d/httpd reload
インストーラされてるモジュールの確認
# /usr/local/apache2/bin/httpd -l
これでモジュールの一覧が見える。ここに mod_so.c が無いともう駄目らしい。
コンパイル
ソースがあるディレクトリを探して移動する。
rewrite module は httpd-2.0.59/modules/mappers にあった。
# /usr/local/apache-2.0/bin/apxs -c mod_rewrite.c
インストール
そしてインストール
# /usr/local/apache-2.0/bin/apxs -ian rewrite mod_rewrite.la
設定を確認して apache をリロード
httpd.conf には勝手に追加されるらしい。
LoadModule rewrite_module modules/mod_rewrite.so
なので後は再ロードする。
# /etc/init.d/httpd reload
Thursday, April 23, 2009
perl pdf table and image
#!usr/bin/perl -w
use PDF::API2;
use PDF::Table;
# PDFつくる
my $pdf = PDF::API2->new;
my $pdftable = new PDF::Table;
# ページつくる
my $page = $pdf->page(0); # 0 は最後に追加
#ページのサイズ決める
$page->mediabox( 'A4');
#ピクセルでサイズ指定
#$page->mediabox( 512, 512 );
# mm で指定。PDF::API2 は 72dpiらしいので
#$page->mediabox( 210 / 25.4 * 72 , 297 / 25.4 * 72 );
# 画像を入れる
my $image = $pdf->image_jpeg('bill.jpg');
my $gfx = $page->gfx;
# 左下スミが原点
my $xpos = 100 ; my $ypos = 500;
my $image_resolution = 350 ;
my $scale = 400 / $image_resolution ;
$gfx->image( $image, $xpos, $ypos, $scale );
my $some_data =[
["1 Lorem ipsum dolor",
"Donec odio neque, faucibus vel",
"consequat quis, tincidunt vel, felis."],
["Nulla euismod sem eget neque.",
"Donec odio neque",
"Sed eu velit."],
#... and so on
];
$left_edge_of_table = 50;
# build the table layout
$pdftable->table(
# required params
$pdf,
$page,
$some_data,
x => $left_edge_of_table,
w => 495,
start_y => 750,
next_y => 700,
start_h => 300,
next_h => 500,
# some optional params
padding => 5,
padding_right => 10,
background_color_odd => "gray",
background_color_even => "lightblue", #cell background color for even rows
);
# 既存のPDFのページを1ページ追加する
# 既存のPDFを開く
my $mypdf = PDF::API2->open('aaa.pdf');
# 16ページ目を追加する
$pdf->importpage( $mypdf, 16);
# 保存する
$pdf->saveas('ddd.pdf');
use PDF::API2;
use PDF::Table;
# PDFつくる
my $pdf = PDF::API2->new;
my $pdftable = new PDF::Table;
# ページつくる
my $page = $pdf->page(0); # 0 は最後に追加
#ページのサイズ決める
$page->mediabox( 'A4');
#ピクセルでサイズ指定
#$page->mediabox( 512, 512 );
# mm で指定。PDF::API2 は 72dpiらしいので
#$page->mediabox( 210 / 25.4 * 72 , 297 / 25.4 * 72 );
# 画像を入れる
my $image = $pdf->image_jpeg('bill.jpg');
my $gfx = $page->gfx;
# 左下スミが原点
my $xpos = 100 ; my $ypos = 500;
my $image_resolution = 350 ;
my $scale = 400 / $image_resolution ;
$gfx->image( $image, $xpos, $ypos, $scale );
my $some_data =[
["1 Lorem ipsum dolor",
"Donec odio neque, faucibus vel",
"consequat quis, tincidunt vel, felis."],
["Nulla euismod sem eget neque.",
"Donec odio neque",
"Sed eu velit."],
#... and so on
];
$left_edge_of_table = 50;
# build the table layout
$pdftable->table(
# required params
$pdf,
$page,
$some_data,
x => $left_edge_of_table,
w => 495,
start_y => 750,
next_y => 700,
start_h => 300,
next_h => 500,
# some optional params
padding => 5,
padding_right => 10,
background_color_odd => "gray",
background_color_even => "lightblue", #cell background color for even rows
);
# 既存のPDFのページを1ページ追加する
# 既存のPDFを開く
my $mypdf = PDF::API2->open('aaa.pdf');
# 16ページ目を追加する
$pdf->importpage( $mypdf, 16);
# 保存する
$pdf->saveas('ddd.pdf');
Monday, April 20, 2009
LINUXスワッピングを追加(add extra swap)
SWAP space under RHEL/CentOS
Adding a 250 MB swap file to the system
Create an empty 250M file :
dd if=/dev/zero of=/swapfile bs=1024 count=2097152
Create the swap on the newly created file :
mkswap /swapfile
Enable the new swap file :
swapon /swapfile
Edit fstab and add :
/swapfile swap swap defaults 0 0
Verify if the new swap space is enabled :
cat /proc/swaps
free -m
分からないから、質問して下さい。
PHP GD インストールと設定
PHP 公式サイト から PHP のソースファイルをダウンロードしてインストールを行う。
PHP
'./configure' '--with-apxs2=/usr/sbin/apxs' '--with-pgsql' '--with-iconv' '--enable-mbstring' '--enable-ftp' --with-zlib --enable-mbstring --with-curl --with-curlwrappers --with-pdo-pgsql --with-gd --with-freetype-dir --with-jpeg-dir
make
make install
どこか分からないから、質問下さい!
PHP のインストールと実行には flex と libxml2 が必要。
また PostgreSQL や MySQL といったデーターベースサーバーとの連携を有効にするためには PostgreSQL、MySQL が必要。
PHP を使った CMS や BLOG システムでよく利用される GD ライブラリ(画像を動的に生成する機能)を有効にする。
このためには zlib と libpng が必要。
また PostgreSQL や MySQL といったデーターベースサーバーとの連携を有効にするためには PostgreSQL、MySQL が必要。
PHP を使った CMS や BLOG システムでよく利用される GD ライブラリ(画像を動的に生成する機能)を有効にする。
このためには zlib と libpng が必要。
# yum -y install flex libxml2-devel
MySQL との連携を有効にするためには MySQL のインストールが完了している必要がある。
GD ライブラリを有効にするためには zlib と libpng が必要。
GD ライブラリを有効にするためには zlib と libpng が必要。
yum を使って zlib と libpng をインストールする場合は以下のように実行する。
yum を使って libxml2 をインストールした場合 zlib はすでにインストールされている。
yum を使って libxml2 をインストールした場合 zlib はすでにインストールされている。
# yum -y install zlib-devel libpng-devel
また GD で JPEG を扱う場合は JPEG 画像ライブラリである libjpeg が必要。
# yum -y install libjpeg-devel
PHP のソースファイルを PHP 公式サイト から/usr/local/srcへダウンロードしてコンパイル、インストールを行う。
但し、そのままPHP5をソースからインストールすると/(Apacheインストールディレクトリ)/modules/----に作成されるべきモジュールである
但し、そのままPHP5をソースからインストールすると/(Apacheインストールディレクトリ)/modules/----に作成されるべきモジュールである
libphp5.so
が作成されない。これは、バグらしいので、以下バグに対応させたインストール方法を記載する。
<バグ対策済みインストール方法>
# mkdir /usr/local/php-5.2.6
# cd /usr/loca/src
# tar zxf php-5.2.6.tar.gz
# cd php-5.2.6
# ./configure --prefix=/usr/local/php-5.2.6
# make
# make install
# make clean
# make distclean
# ./configure --prefix=/usr/local/php-5.2.6 --enable-mbstring --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-zlib --with-jpeg-dir
# make
# make install
<-- configure オプションの解説>
① インストール先のディレクトリを設定。
① インストール先のディレクトリを設定。
--prefix=/usr/local/php-5.2.1
② マルチバイト文字を有効(マルチバイト文字列関数である mbstring 関数を有効にする)。
--enable-mbstring
③ Apache の動的モジュールとして組み込む設定。
--with-apxs2=/usr/local/httpd/bin/apxs
④ MySQL データーベース、PostgreSQL データーベースとの連携を有効にする。
--with-pgsql=/usr/local/pgsql
--with-mysql=/usr/local/mysql
⑤ GDライブラリを有効にする。
--with-gd
--with-zlib
⑥ JPEG 画像ライブラリを有効にする。
--with-jpeg-dir
PHP のディレクトリを /usr/local/php としてアクセスできるようにシンボリックリンクを作成。
# ln -sfn /usr/local/php-5.2.6 /usr/local/php5
httpd.confにPHPファイルタイプ情報追加
AddType application/x-httpd-php.php ← 追記
PHP とMySQLとphpMyAdmin間の通信はソケット(ファイル)で行われるためソケットファイルのパスは3者の各設定ファイルで統一したものを指定し ておく必要がある。以下、PHPの設定のファイルである/etc/php.iniにソケットのパスを指定する方法を記載する。
/etc/php.ini
[MySQl]セクション内
[MySQl]セクション内
mysql.default_socket = /var/lib/mysql/mysql.sock ← 追記
PHP
'./configure' '--with-apxs2=/usr/sbin/apxs' '--with-pgsql' '--with-iconv' '--enable-mbstring' '--enable-ftp' --with-zlib --enable-mbstring --with-curl --with-curlwrappers --with-pdo-pgsql --with-gd --with-freetype-dir --with-jpeg-dir
make
make install
どこか分からないから、質問下さい!
Subscribe to:
Posts (Atom)