PostgreSQL Tsearch2日本語化パッチによる日本語全文検索システム
このページでは、PostgreSQLの全文検索モジュール“Tsearch2”と、形態素解析による分かち書きを行う関数“pgkakasiw()”を使って、日本語全文検索システムを構築する方法についてご紹介します。
pgkakasiw() は PostgreSQL に日本語全文検索機能を追加する関数です。正確には PostgreSQL 向け全文検索機能を提供するモジュール Tsearch2 で KAKASI によるわかち書き機能を利用することで日本語の全文検索を可能にするものです。
さて意気揚々と pgkakasiw を導入してみたのですが…
手順にしたがって以下のとおり導入。
Debian(Sarge)環境なので、Tsearch2 は postgresql-contrib パッケージで導入済み。KAKASI のヘッダーファイルなどはないのでソース入手後ビルド。pgkakasiw ビルドのために PostgreSQL ソースが必要ということでソース入手、configure & make。
その後、利用するデータベースに Tsearch2 と pgkakasiw を登録して、全文検索したいテーブルにカラム追加、トリガー追加、インデックス追加。全文検索用インデックスを作成するためにすべてのデータを UPDATE。
やっとの思いで SELECT 実行も結果は 0。いろいろやってたら “ignoring unconvertible UTF-8 character 0xe38120” だと。あれ?
マニュアルを読み直すと、な、なんと!
なお、データベースで使用できる文字コードはEUC_JP です。
がっくし。すでに構築済みのデータベースは UNICODE(=UTF8)でした。もう 2万件入っているデータを変換する気が起きず、もーほったらかし。
つづく…かも。