2007年01月29日
[Senna]インデックスの再生成

SennaのMySQLバインディングの話。
ふと気がつくと、Senna の正規化の機能(大文字、小文字、全角、半角を同一視してインデックスしてくれる機能)が働いていないようだったので、SHOW INDEX で調べてみたら、Index_type のところで NORMALIZE が欠落していました。alter table を行うと Senna のインデックス作成時指定のフラグ内容が失われてしまう、とはSennaのサイトに書いてありましたが、そのような処理は行ってなかったんですが、レプリケーションの設定で、マスターとの同期の際に書き換わってしまったのかもしれません。
ということでインデックスの再生成を行ったのですが、Googleとかで調べても、あまり情報が見つからなかったので記しておきます。
まずはインデックスの内容の確認
mysql> SHOW INDEX FROM table_name;
インデックスの削除
mysql> DROP INDEX index_name ON table_name;
インデックスの(再)設定
mysql> alter table table_name add FULLTEXT INDEX index_name USING SENNA, NORMALIZE (column_name);
最後にMySQLサーバーを停止し、MySQLのデータディレクトリに移動
# myisamchk -r -q table_name.MYI
インデックス作成時に、alter table ではなく、create index 構文でも良さそうだったんですが、私の環境ではうまく行きませんでした。その後の myisamchk の処理を行った後に、空のインデックスしか生成されず、しばし悩みました。Mecab が見つからないと空のインデックスが出来るらしいのですが、パスは通っているので、ちょっと???です。で、試しにと、alter tableでインデックスを設定すると、うまく行きました。
ブログサーチシステムは、少しずつ進行中。
やはり、クローラーのパフォーマンスをあげるのが難しいところ。
現在、1日30万件超の更新情報を処理し、非日本語のエントリーや重複エントリー、不正なエントリー(日付がおかしすぎる等)を省いて、毎日20万件くらいの新着登録を行えていますが、初期段階としてこの倍のパフォーマンスはほしいところ。
現在、クローラーは1台なので、台数をもう1台増やせば倍近くにはなりそうなのだけれども、プログラムの処理側でもう少し追い詰めてみたいところで、思案中。
DBはマスタ、スレーブ共に、RAID1にしているけれども、スレーブ側のインデックスの再構築がさほど時間かからずに完了できることが分かったので、スレーブ側はRAID0にして、冗長性よりも速度を取ろうかと思っています。
あとは、ユーザーインターフェイスの部分にそろそろ取り掛かっていこう。
多少はAJAXを使おうと思ってます。
投稿者 田中@グリニッジ : 17:06 | コメント (0) | トラックバック
2007年01月19日
クリスマスプレゼントの木馬

クリスマスに息子に強化ダンボールで木馬を作ってあげました。
放っておくとだんだんと痛んでくるので、まともなうちに写真をアップ。
乗っているところも写真に撮ったんですが、乗馬する動きが早すぎて良い写真が撮れませんでした。
アドビのイラストレータを使って設計図を描いて、1.5cm厚の頑丈な強化ダンボールを電動糸ノコで切り抜いて貼り合わせました。大人が乗っても平気なくらい頑丈ですが、素材が紙なので、そのうちイタズラ書きとかされるんだろうなぁ。
カタコトの言葉で「パパが作ったのこれー」といって嬉しそうで、親ばかです。結構気に入ってくれて、先日、同じ誕生日くらいの友達が何人か遊びに来たときには取り合いになったようで、そういう話を聞くと、作った甲斐があったなぁと思います。製作に、休日一日つぶしました。
投稿者 田中@グリニッジ : 22:12 | コメント (0) | トラックバック
mixiで月収93万円の不労所得を得た男

だそうです。これはすごい。俺も不労所得だ!
本当に不労所得を手に出来るか、俺も実験してみるゾ!