人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

DBでの高速な全文検索についての質問です。現在、PHPとPostgreSQLを使用しています。データベースのレコード内のテキストを、一般的な検索エンジンのように高速に全文検索可能とするには、どのような方法があるでしょうか?(もし実現不可能であるなら代替手段を教えて下さい)

●質問者: yokoyama_ken
●カテゴリ:ウェブ制作
✍キーワード:dB PHP postgreSQL テキスト データベース
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● livings
●18ポイント

http://www.hatena.ne.jp/

はてな

最初のURLはダミーです。

全文検索の場合、そのデータをフルスキャンするわけですから、全データにアクセスすることを考慮した場合、テーブルデータがすべてメモリに載り、極力ハードディスクアクセスが押さえられる方法を考えた方がよろしいかと思います。

高速アクセスはテーブルの設計にもよります。

検索内容からハッシュ値を計算し計算するのであれば、場合によってはRDBではなく、高速XMLエンジンを利用するという手もあるかと思います。

http://www.neocore.jp/

XMLDB / XMLデータベース NeoCore 国内シェアNo.1


2 ● samejima
●18ポイント

http://namazu.org/~satoru/sary/

sary: a suffix array library and tools

suffix array

http://nais.to/~yto/tools/sufary/

SUFARY 臨時復旧ページ

http://member.nifty.ne.jp/DO/suffix_array.htm


3 ● tohoku
●18ポイント

http://suwako.plala.jp/pukiwiki/index.php?%5B%5BPHP%a4%c7Namazu%...

NAMAZUのPHP版をいじってみてはどうでしょうか。


4 ● GoooooooFan
●18ポイント

http://namazu.org/~satoru/pub/sd-2000-11/

使ってみよう Namazu 2.0

テキストファイルだったらNAMAZUが使えるんですけどね。

お役にたてなくてすみません


5 ● Ganba
●18ポイント

http://www.postgresql.jp/document/pg742doc/html/app-pgdump.html

以下のような手順ではどうでしょうか?

1.バッチ(1回/日とか)でテーブルデータをpg_dumpの”-a -o”オプションでOID付きでファイル出力

2.grep(egrep or fgrep)のような文字列検索で先頭のOIDのみ抽出(手作りのPHPスクリプト)

3.抽出したレコードのOIDでPostgreSQLを検索

安直過ぎますか?

◎質問者からの返答

いえいえ、ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ