DB検索プロジェクト

Check このエントリーをはてなブックマークに追加 Tweet

1 :伊吹萃香 ◆SUICAthVuI [sage]:2008/07/15(火) 11:21:12.59 ID:nbUQSmQo
現状の検索が重すぎるため、書き込みをDB登録して
そっちで検索かけようというプロジェクトです
夏休み前に運用開始できたらいいなぁ・・・

このへんとかも参照のこと
■ 【祝】 サーバー購入のお知らせ
http://ex14.vip2ch.com/test/read.cgi/operate/1204870752/


◆仕様とか
・運用開始からのデータのみ検索対象
・検索サーバは別立て。ex14とは切り離す

◆現状
・プロトタイプ一応完成。個人板にて運用中。
・出来杉さんのほうでも作成中

◆課題
・意識すり合わせ
・Sennaの組み込み
・携帯からの検索に対応
・スレッドタイトルを検索できるようにする
・本文、名前等簡単な検索対象を絞ることができる
・板ごと、もしくは全ての板を対象とした検査ができる
・Ajax等からの検索リクエストに対応する(read.cgiのレスポップアップとの連動等)
・最終的にモバイルユーザーを全てDB経由のソースで済ませる

※携帯対応したらあとは運用しつつの対応になるかも
2 :以下、名無しにかわりましてVIPサービスがお送りします [sage]:2008/07/15(火) 11:26:36.58 ID:XcvJPfco
乙です
3 :伊吹萃香 ◆SUICAthVuI [sage]:2008/07/15(火) 11:29:38.59 ID:nbUQSmQo
あとはテーブル関連として
・板ごとにテーブルを分けるか
・過去ログをそのままテーブルに残すのか(過去ログの検索もDBでやるのか)

他に問題点とか考慮すべき点があったらよろしくお願いします
4 : [sage]:2008/07/15(火) 11:52:30.96 ID:???
とりあえず出来過ぎさん待とうか
5 :萃香@飲酒係 :2008/07/15(火) 13:48:23.07 ID:???
MySQL+Sennaのプロジェクトtritonnのページです
http://qwik.jp/tritonn/

MySQLの入れ直しとか必要になるわけですが
現在のDB鯖だとそういう権限ってないような・・・
6 : [sage]:2008/07/15(火) 18:19:28.23 ID:???
今なにやってるか産業でww
7 : [sage]:2008/07/15(火) 18:20:28.02 ID:???
まずは動作環境作ってるのかなぁ
8 : [sage]:2008/07/16(水) 04:08:33.99 ID:???
今日やったこと

MySQLの動作確認テスト
HTMLの仮組み

次の課題はphp関連かなぁ
9 :出来杉3.0 :2008/07/16(水) 16:01:19.89 ID:???
どもども、乙です乙です出来杉です

こちらではroot権限付きサーバで使うことを前提に、まだ妄想設計段階だったりしますw

妄想設計の仕様(適当)
・掲示板サーバ(ex14)ローカルでも、別サーバでも
・検索対象はライブスレッド、過去ログはどんどん削除
・Senna、常駐スクリプト(インデックス作成用)などを使うのでroot権限付きが前提
・DBはほとんどor全く使わない(使うかもしれないのは検索結果に表示するdatの一部)

とりあえず特に気になる課題へのツッコミを
・Sennaの組み込み
 さくらプレミアムは共用ホスティングなので厳しい
 まずは代替検索エンジンを用意するか、専用サーバやVPSなどに移行する必要があるかと
10 : [sage]:2008/07/16(水) 23:38:13.78 ID:2enUouMo
DB使わないんですか?
11 :萃香@飲酒係 [sage]:2008/07/17(木) 15:14:12.69 ID:???
>>検索対象
スレ番入れて、レコードごっそり削除するような画面でも作りますかね
まぁこれは後ででいいでしょうけど
バックアップとかはどうしますかねぇ
何もなしでバッサリ削除するのも怖い気が

>>サーバ
荒巻になんとかしてもらわないとダメですね
一応他の検索エンジンも探してみますか
12 :出来杉3.0 :2008/07/17(木) 15:45:05.25 ID:???
>>10
まあ個人的な考えではねw

DATあるいはDBが無くても、Sennaのインデックスがあれば検索できるし、スレッドのURLくらいはわかるわけですよ
スレタイが欲しいならsubjectをメモリにキャッシュしておけばいいし、Sennaは検索でヒットしたレス番まではわからないので、スレ内容は>>1の一部だけをキャッシュすればおkだったりとかで

それと方法の問題&要確認は…

phpを使う場合
 eAcceleratorには変数をキャッシュしておく機能が付いてるらしい
 しかし使いにくいと言う話が…
 (ただし詳しいことはまだ調べてませんので)

Perlを使う場合
 SpeedyCGI(=PersistentPerl)はグローバル変数が保持される
 しかしプロセス間で共有されるかはわからない(要実験)
13 :出来杉3.0 :2008/07/17(木) 15:52:19.68 ID:???
あ、リロード><;

> サーバ
まあ、とりあえずスレタイくらいでいいなら、さくらプレミアムでも何とかなるでしょう
とりあえずはね^^;
14 :萃香@飲酒係 [sage]:2008/07/17(木) 15:57:54.86 ID:???
Sennaって単体では使えませんよねぇ
DBにレコード登録して、その項目に対してインデックスを張る認識だったんですけど違うのかな
15 :P [sage]:2008/07/17(木) 17:18:22.91 ID:rflf6R6o
私もDBにデータ突っ込んで、ミラーみたいにして
そこから検索するんだと思ってたwwww

あーなるほどー
16 :出来杉3.0 :2008/07/17(木) 17:18:53.59 ID:???
>>12の訂正
×Sennaは検索でヒットしたレス番まではわからないので
○Sennaは検索でヒットした部分の抜粋を作成できる
(これって"KeyWord In Content"と言うのか)

↑この機能を使うならDBの方がパフォーマンス的に優位かも??(しかしサーバが…)


>>14-15
Sennaは単体では使えませんが、DBは無くても使えますよ
DBを使うかどうかは前述のKWICを使うかどうかと言うところでしょう
そしてDBを使えるかどうかはサーバ次第ですかねw(VPSの安いプランとか)
17 :P [sage]:2008/07/17(木) 17:37:47.19 ID:rflf6R6o
Sennaが抜粋してくれるなら、KWICでいいと思います
18 :P [sage]:2008/07/17(木) 17:57:05.98 ID:rflf6R6o
DBとdatの代わりになるものが何かわかんないけど・・・
その方がいい予感がする
19 :出来杉3.0 [sage]:2008/07/17(木) 18:13:50.13 ID:???
>>17-18
KWICを使うなら、ファイルorDBからヒットしたスレのDATの中身全部持ってきて、再検索する必要がありますw

もっと小容量のスレタイ&抜粋リストを使えば、そこに書かれてるものに関しては処理は早いはず

後者は専用プログラムを常駐させておいて、余裕のある時or検索CGIにくれくれされた時にDATを読み込んでキャッシュするといいんじゃないかなーと思ってる
それで検索CGIがそのリストを使うときは、名前付きパイプを通して送ると言う感じで

前者はとても抜粋内容のキャッシュなんかしてられないw
こっちにするならキャッシュ機能のあるDBを使うのがいいかと
20 :荒巻@中の人 :2008/07/17(木) 18:19:26.07 ID:???
ちょっと今病気で倒れているのでおおざっぱにしかレスできないですが、

さくらプレミアムに検索クライアントを設置(表向きにクライアントに見えるIPはこいつっていうこと)
DBや検索などの実際の処理はあまり見せたくないIPのサーバーによって処理

っていうのは可能です。

つまりさくらに検索リクエストを整形してクライアントに送信するプログラムをおいて、実際のデータの蓄積とか、検索は実際には見えない後ろのサーバーでやると。

それならとある施設のグローバルIPと電源が使えるのでかなり性能の高いサーバーが設置できると思います。
21 :荒巻@中の人 :2008/07/17(木) 18:20:16.69 ID:???
あ、もちろんrootつきで。

22 :出来杉3.0 :2008/07/17(木) 18:42:03.35 ID:???
>>20-21
病気で倒れてるって、大丈夫ですか?

個人的にはその方法で問題ないです
23 :P [sage]:2008/07/17(木) 19:49:55.92 ID:rflf6R6o
荒巻の人大丈夫?多忙だろうけど体壊してるときはゆっくり休んでください

>>19
どっちのほうがいいのかなぁ・・・
DB使えればその方がパフォーマンスはいいんでしたっけ
24 :以下、名無しにかわりましてVIPサービスがお送りします [sage]:2008/07/17(木) 22:03:56.85 ID:rflf6R6o
実際、Sennaの機能とかよく分かってないので
出来杉案が無難だとは思うんですよね・・・

抜粋リストっていうのが良くわかんないですけど、テンプレートみたいなものですか?
25 :出来杉3.0 [sage]:2008/07/18(金) 19:03:54.60 ID:???
> 抜粋リストっていうのが良くわかんないですけど
http://find.2ch.net/?STR=%A5%D6%A5%E9%A5%B8%A5%EB&COUNT=10&TYPE=TITLE&BBS=2ch
↑の検索結果にはスレ内容の抜粋が載ってますよね

・スレの>>1から抜粋してメモリにキャッシュしておく
・検索結果を表示する時はいちいちDATを開かなくても、スレ内容の抜粋を取得できる
これが>>19の(スレタイ&)抜粋リスト方式です

ちなみにKWICと言うのは、前述の2ch検索みたいに
「ヒットしたスレ内から、検索キーワードを含む部分を探して抜粋する」
と言うものです
Sennaのインデックスからは元のスレ内容が取得できないので、ヒットしたスレの内容を全部を取得して、Sennaに投げる必要があります
これをメモリキャッシュを使い高速に行うには、DBを使うのがスマートでしょう
(ただし独自にキャッシュ管理スクリプトでも組めば、DB使うより早いかも)

> どっちのほうがいいのかなぁ・・・
・スレタイ&抜粋リスト方式 = 作るの楽、動作は速くて軽い、でもちょっとスレ見つけづらいかも?
・KWIC = 作るの面倒、動作は遅くて重い、でもちょっとスレを見つけやすいかも?
まあこんなとこでしょう
(スレタイ検索の場合は「スレタイ&抜粋リスト方式」の方が便利だったりしてw)
26 : [sage]:2008/07/18(金) 19:14:58.31 ID:???
実物見てようやくどんなのか分かりましたww

スレタイ検索に関しては、私は文句なしで抜粋方式でいいと思います
ただ本文検索やID検索もしたいってことらしいので・・・KWICをどれだけ軽量化出来るのかですかねww
27 : [sage]:2008/07/19(土) 00:38:15.65 ID:USq16Zoo
まずは荒巻の人のサーバ次第ですか・・・?
28 :出来杉3.0 :2008/07/19(土) 18:48:20.20 ID:???
ええ、サーバ次第ですかねぇ

KWICを使うならメモリはともかく、CPUにも再検索分の負荷がかかるので、それも考えないと
(CPUについては将来mreadもこっちに投げるとか言うならの話かも)


さっき全板(ごみ箱の5スレ含む)のsubjectを落として行数足したら、6559スレあるとか

〜以下はかなり適当な検証なので参考までに〜

メモリが512MBだとしたら、全スレメモリキャッシュできるかもしれないけど、できないかもと言うところなのかな…??
まあ、できればメモリは1GBはあった方が良さげ?と言うところかもしれない
29 :荒巻@中の人 :2008/07/19(土) 19:23:34.41 ID:???
一応ML115ベースでメモリは4G積んで、OSは64bitのFreeBSD7.0RE ってとこでどうでしょうか?
30 : [sage]:2008/07/19(土) 21:00:05.64 ID:8TrEwoAP
4G・・・
スペック的な知識無いですが、なんかすごいのは分かりました
31 : [sage]:2008/07/20(日) 02:52:11.50 ID:???
えっと、そのサーバのスペックなら
やりたかったことなんか出来そうな感じなんですか
32 :出来杉3.0 [sage]:2008/07/20(日) 15:34:45.96 ID:???
まあRAMが4GBあれば十分すぎるでしょうw

いろいろ考えてたらKWICとmreadはそれぞれ別のキャッシュの方が良さそうな気もしてきました(抜粋リストはともかく)

CPUが仮にAthlonだったら効率のいいキャッシュじゃないと厳しくなる か も しれない
でもRAMが4GBあれば2種類のキャッシュでも問題ないでしょう
167.80 KB Speed:0   VIP Service VIPサービス運用情報 更新 専用ブラウザ 検索 全部 前100 次100 最新50 続きを読む
名前: E-mail(省略可)

256ビットSSL暗号化送信っぽいです 最大8000バイト 最大95行
画像アップロードに対応中!(http://fsmから始まるひらめアップローダからの画像URLがサムネイルで表示されるようになります)


スポンサードリンク


Check このエントリーをはてなブックマークに追加 Tweet

荒巻@中の人 ★ VIP(Powered By VIP Service) read.cgi ver 2013/10/12 prev 2011/01/08 (Base By http://www.toshinari.net/ @Thanks!)
respop.js ver 01.0.4.0 2010/02/10 (by fla@Thanks!)