[pgsql-jp: 38829] 全文検索関連ソフトウェアの公開

Tatsuo Ishii ishii @ sraoss.co.jp
2007年 9月 29日 (土) 23:09:49 JST


石井@SRA OSSです.

PostgreSQL用の全文検索関連ソフトウェアを公開しました.これは,独立行政
法人情報処理推進機構(IPA)の2006年度「自治体におけるオープンソースソフ
トウェア活用に向けての導入実証」プロジェクトの中で開発されたものです.
以下のものが含まれます(PostgreSQL 8.2で動作検証).

すべてBSDライセンスで公開されるオープンソースソフトウェアです.自由に
利用できます.

1) ユーザ定義関数 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)

2) ユーザ定義関数wakachi

wakachiは,mecab(http://mecab.sourceforge.jp/)を使って形態素解析を行い,
入力テキストをスペースで単語に区切る形,いわゆる「わかち書き」に変換す
るPostgreSQLのユーザ定義C関数です.実行例を示します.

test=# SELECT wakachi('wakachiはPostgreSQLのユーザ定義C関数です');
                     wakachi                      
--------------------------------------------------
 wakachi は PostgreSQL の ユーザ 定義 C 関数 です

3) このほか,以下のようなものがあります

- functions

  Tsearch2,wakachiやnormalizeを使った全文検索データベースの例

- utf8_and_euc_jp_jis

  PostgreSQL 8.2のMS932ベースのUnicode<-->EUC_JP変換マップ
  (conversion)の一部を変更したものです.「〜」(WAVE DASH)や,「−」
  (MINUS SIGN)の変換を,MS932ではなく,Shift JISに合わせたものです.
--
Tatsuo Ishii
SRA OSS, Inc. Japan



pgsql-jp メーリングリストの案内