2005年06月17日

YappoLabsはRastですが、本番環境にSennaという検索エンジンの種を使いました。

負荷的な問題が顕著になって考えた末、本運用系のiYappoのキーワード検索MySQL+Sennaを使うことにしました。
当然のことながらSennaはN-gramを使うように書き換えてます。
理由はLCの時に話したとおり、携帯系は特に分かち書きに適さないから。
また、my.cnfで認識可能な最小キーワードサイズを2バイトに変更。
ギャル語でもなんでもおkっす。

基本的にiYappoの検索対象データは、一日に数回全部作り直す仕様なので
DBサーバの障害時でのSenna特有のリスクは最小限になっているかと思われます。

検索速度とマシン負荷が劇的に向上しました。
さすがlike '%key%'な検索とは違う。

検索速度に余裕が出たので、iYappoを本格的な全文検索エンジンに仕様変更しました。
登録サイトのトップページを含む数件のページの文章をiYappoの検索対象に含めています。
Yahoo!mobileともgoogle mobileとも区別できない独自路線です。
他にも新ネタ仕込み中ですよん。

indexスピードは
旧世代のサーバ上で
平均1.5kbの11万件強のテーブルのindex速度が約12分。
デフォルトのmecab利用時はもっと早くなるでしょう。

あと、mysqldでの最短検索キーワードを2バイトに設定した影響で
Sennaは全角一文字だけの検索キーワードは完全にヒットしない仕様を発見した。
2-gramだから、文字境界の端でしか引っかからないという感じですかな。
まぁ、完全にしようとするとコストかかるからなぁ。

ついでにindexの張り方やらqueryの投げ方やらcrontabの微調整を行って
積み重ねでパフォーマンスあっぷん


とにかく、道具を有効活用するのは使う側の判断しだいですよと。
最適な道具を選びましょうね。

Posted by Yappo at 2005年06月17日 04:10 | TrackBack | Yappoな事
Comments
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。