textsearch-ja: Project Home Page

# textsearch-ja ホームページへようこそ

形態素解析 または N-gram を使用した、組み込み型の日本語全文検索です。

この textsearch-ja プロジェクトは PostgreSQL コミュニティによる pgFoundry の中のプロジェクトです。

- ダウンロード : ソースコードのほか、Windows 用バイナリもダウンロードできます。
- バグレポート
- メーリングリスト への参加

Here is an English page.

このプロジェクトでは「textsearch_ja」と「textsearch_senna」の2種類の全文検索インデックスがあります。 それぞれ特徴があるため、用途に応じて使い分けてください。 一般的には、文法的に整った文書を検索する場合には textsearch_ja (形態素解析) 、LIKE 演算子に近い結果を得たい場合には textsearch_senna (N-gram) が適しています。

## textsearch_ja : 形態素解析

textsearch_ja は形態素解析を用いた全文検索機能です。 PostgreSQL 8.3 で追加された組み込みテキスト検索を拡張するため、 英語文書の検索と同様の方法で、日本語文書を検索することができます。 検索は形態素解析を利用した単語単位で行われます。 形態素解析には MeCab を使用しています。

利点として、GIN または GiST インデックスをベースにしているため、全文検索用のインデックスがリカバリ可能であることが挙げられます。 また、既に tsearch2 に対応している欧米言語を対象とした製品を大きく改変することなく、日本語対応できる強みがあります。

## textsearch_senna : N-gram

textsearch_senna では N-gram ベースの全文検索を行います。 検索には、全文検索エンジン Senna を使用しています。

利点として、文字すべてをインデックス化するため LIKE 中間一致検索に近い結果を得ることができます。 また、既に tsearch2 互換のインタフェースを備えるため、少々の設定変更で textsearch-ja と textsearch_senna を切り替えて使用することができます。 ただし、クラッシュ・リカバリやアーカイブ・リカバリに対応していないことに注意してください。リカバリ後にインデックスの再作成を行う必要があります。

## 関連リンク

- tsearch に対応したソフトウェア製品
  - MediaWiki : Wiki
  - Sylph-Searcher : メーラ Sylpheed 内の全文検索
- カンファレンスや勉強会での紹介
  - textsearch_jaで全文検索 (石田朗雄 氏, オープンソースカンファレンス 2009 Hokkaido)
  - PostgreSQL の全文検索 (佐藤友章 氏, PostgreSQL Conference 2008)
  - PostgreSQLで日本語全文検索 [PDF] (わたなべかずひろ 氏, 第34回PHP勉強会)
- 他の PostgreSQL 組み込み型の全文検索システム
  - Ludia : Senna をエンジンとする全文検索システム
  - pgestraier : Hyper Estraier をエンジンとする全文検索システム
  - pgRast : Rast をエンジンとする全文検索システム

Copyright (c) 2008-2009, NIPPON TELEGRAPH AND TELEPHONE CORPORATION