21:16検索システムをNamazuからmsearchへこのサイトに用いるHTMLファイルの全文検索システムを、Namazuから、Unicode版msearchに変更しました。それに伴って、検索のページを変更し、複数の検索手法を取れるようにしました。Search今回の変更を行った理由は二つ。Namazuはメンテナンスが面倒くさいこと。Namazuにもmsearchも、インデックス作成型の検索システムなので、新しいページを作成した場合インデックスを更新する必要がある。これは、cronで定期的にインデックスを更新させる事で対応できるのだけど、Namazuの場合、たまにインデックスの更新に失敗する事がある。これは、Namazuのインデックス更新はサーバにかかる負荷が大きいので、現在使用しているXREAサーバ側で止められてしまう事が原因。毎日1、2ページ追加・更新されたぐらいでは、大した負荷はかからない。Typeを使っている場合、ページを一括で更新する事がたまにある。ページの仕様を変更したい場合や、大量のコメントスパムを食らった場合。なると、大規模なインデックスの更新が行われてしまう事になり、その結果インデックスの更新がサーバで止められてしまう。Namazuの場合、一度これが止められてしまうと、もう一度実行しても同じような所で止まってしまうので、再度インデックスを更新させるために面倒な手続きを踏まなくてはいけなくなる(このサイトのインデックス更新手法)。これは、メンテナンスの上で非常に効率が悪い。msearchの場合、このサイトの全てのHTMLファイルを対象にインデックスを作成しても、全く問題がなかった。二つ目は、Namazuの検索が、自分のようなサイトではあまり役に立たない事。Namazuの検索システムは形態素解析(要するに、文章を解析する技術)によってインデックスを作成し、それを用いる事で高速な検索を行う。これが結構くせ者で、恐らく一般的な文章ならそれなりに上手く解析されのだと思うのだけど、固有名詞が含まれてくるとそうもいかなくなる。連続するカタカナ文字を一つの言葉として認識したりする。いう事かというと、「ローゼンメイデン」と書くと、Namazuからは「ローゼンメイデン」という言葉として認識され、「ローゼン」「メイデン」とは認識されない。するとどうなるのかと言うと、検索時に「ローゼン」と入れても、「ローゼンメイデン」という単語が検索の対象にならないという事態が発生してしまう。アニメやゲーム等の固有名詞などが飛び交うこのサイトにおいて、これは非常に都合がよろしくない。msearchでは問題なく検索する事ができる。これは解析プログラムの変更である程度対応できる事なのかもしれないけど...。上記の二つの理由により、検索システムをNamazuからmsearchに変更した次第。このサイトぐらいの規模なら、msearchは全く問題なく使う事ができる。ちなみに、このサイトは文字コードにUTF-8を用いているため、本家msearchの使用ができず、Unicord版msearchを使用している。ちなみに、検索システムを変えた事による副作用として、検索画面のカスタマイズがかなり自由に行えるなった点も良かった。書いてると、Namazuってあまり役に立たないように見えるけど、こういうくだけた文章やどんどん新しい固有名詞が出てくるようなサイトでは使いにくいという話で、学術とか技術解説とか、そういったしっかりした文章のサイトであればその威力を発揮するような物なのだと思います。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。キャンセル投稿を送信できませんでした。メールアドレスを確認してください。メール送信チェックに失敗しました。このブログではメールでの投稿共有はできません。