オープンソース活動
PostgreSQL 用全文検索関連ソフトウェア
PostgreSQL 用全文検索関連ソフトウェアは、独立行政法人情報処理推進機構 (IPA) の 2006 年度「自治体におけるオープンソースソフトウェア活用に向けての導入実証」プロジェクトの中で開発されたものです。 以下のものが含まれます (PostgreSQL 8.2 で動作検証)。
- PostgreSQL 用全文検索ソフトウェア (tar.gz 形式/148 KB)
すべて BSD ライセンスで公開されるオープンソースソフトウェアです。 自由に利用できます。
ユーザ定義関数 normalize
normalize は、入力テキストを一定のルールにしたがって「正規化」します。 以下の機能を持っています。
- 改行コードを削除
- JIS X 0208 の数字とアルファベット (いわゆる「全角」数字とアルファベット) を ASCII に変換
- JIS X 0201 カナ (いわゆる「半角カタカナ」) を JIS X 0208 カナ (いわゆる「全角」カタカナ) に変換。 このとき、濁点つきのカタカナ (JIS X 0201 では 濁点つきのカタカナは 2 文字で表します) は、1 文字の JIS X 0208 カナになります。
- ASCII の大文字を小文字に変換
これによって表記の「ゆれ」を吸収し、たとえば検索の際に表記のゆれによる検索洩れを防ぐことができます。
実行例を示します。
test=# SELECT normalize('01234567890123abcあいうえおABC'); normalize -------------------------------- 01234567890123abcあいうえおabc (1 row) test=# SELECT normalize('ガギグゲゴ'); normalize ------------ ガギグゲゴ (1 row)
ユーザ定義関数 wakachi
wakachi は、mecab を使って形態素解析を行い、入力テキストをスペースで単語に区切る形、いわゆる「わかち書き」に変換する PostgreSQL のユーザ定義 C 関数です。 実行例を示します。
test=# SELECT wakachi('wakachiはPostgreSQLのユーザ定義C関数です'); wakachi -------------------------------------------------- wakachi は PostgreSQL の ユーザ 定義 C 関数 です
その他
このほか、以下のようなものがあります。
- functions
- Tsearch2、wakachi や normalize を使った全文検索データベースの例
- utf8_and_euc_jp_jis
- PostgreSQL 8.2 の MS932 ベースの Unicode ⇔ EUC_JP 変換マップ (conversion) の一部を変更したものです。 「〜」(WAVE DASH) や、「−」(MINUS SIGN) の変換を、MS932 ではなく、Shift JIS に合わせたものです。