PostgreSQLのデータとHTMLデータを対象に全文検索したいという要求
すんごい独り言モードな記事でごめんなさい。
PostgreSQLのデータとHTMLデータを対象に複数キーワードで全文検索したいという要求があって、
ネット上でいろいろ調べてるんです。
とりあえず、PostgreSQLを対象とした日本語の利用が可能である全文検索は
・tsearch2+kakasi の pgkakasiw [モトネタ&置き場所]
・Rast利用の pg_rast [モトネタ] [置き場所]
・Senna利用のpg_senna [モトネタ] [置き場所]
あたりが使えそう…なのかな?
で、HTMLも検索対象にした場合、
・tsearch2+kakasi の pgkakasiw [モトネタ&置き場所]
・Rast利用の pg_rast [モトネタ] [置き場所]
どちらか、って感じかな?
一応、文字コードはUTF-8を想定していて、kakasi も Rast も UTF-8 はOKッポイので、どちらかを選択…という感じかな?
どちらを選択したにしても、
「PostgreSQL+HTMLどちらも検索対象」
というインターフェースにするには…やっぱり作りこみが必要だなということで。orz
うーん、kakasiを入れるとなるとnamazuもいるよね…?
それ考えると、単品でインストールできるRastのほうが面倒じゃないかも知れない…。
でも、インストールする先がSolarisなんだよな。(^^;)
Rastの動作環境は
動作環境
OS
・動作が確認されているのは今のところ Linux と Mac OS X、FreeBSD です。
・Unix ライクな OS では動作するかもしれません。
って書いてあるから…ちょっと不安。(^^;)
さらに、RastのAPIのリファレンスがC言語とRuby。
kakasiも似たようなもんだなぁ…PerlとRubyの拡張モジュールはある。
全文検索したいアプリケーションの言語はPHPなんだけど、どうしようコレ。(^^;)
んー…PHPの中からEXEをキックする方法もとれるけど、
HTMLの内容をDBに格納してやる方式をとるのが賢いような気もしてきた。
ちょっとパターンをいろいろ考えてみよう。 orz
■追記
PGNamazuっていうものもあるらしい。
namazuのインデックスをPostgreSQLのクエリから引けるというユーザ定義関数を公開。プロジェクトPの副産物。
テキストファイルのキーの部分だけをDBに登録しておいて、 namazuを利用した全文検索を行うクエリを発行したりなんかできる。
逆にDBのテーブルを一時的にダンプしておいて、namazuのインデックスを生成して、全文検索を実現するというのも可能。
これが一番イメージに近いかも。
インストールなど、こまごましたものはココが参考になるかな?
そふてくちゃんvのデータベース PostgreSQLにTB。
忘れてた(爆)