[Fswiki-dev] Re: 公式サイトキーワード検索速度高速化の提案

アーカイブの一覧に戻る

Naoki Takezoe takez****@gmail*****
2006年 1月 22日 (日) 14:35:00 JST


竹添です。

06/01/22 に あき<attin****@kk*****> さんは書きました:
> あきです。
>
> > > > > キーワード検索結果を色分け表示させるプラグイン
> > > > > http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F235
> > > > >
> > > > > 上記は、私がちょっと以前に作成したプラグイン(パッチ)ですが、本体への
> > > > > 取り込みに関してはいかがでしょう? >竹添殿
> > > >
> > > > 取り込みましょうか。もう一度パッチを見てみます。
> > >
> > > ありがとうございます。
> > > ソースを見られるのはとても恥ずかしいかぎりです。
> > > 凝っている部分もあれば、力業の部分もあったりして温度差が激しいです。A^_^;
> > > コミットするのでしたら、きちんと見直した方が良いかもしれません。
> >
> > ソースを眺めてみたのですが、なぜこれで速くなるのかが理解できませんでした。
> >
> > index関数で検索してから詳細マッチを行っているからでしょうか?でもオリジナル
> > ではindex関数での検索しか行っていないので、それ以上速くなるとは思えないの
> > ですが…
> >
> > よろしければ解説をお願いできないでしょうか?
>
> あまり難しく考えないで下さい。
> 何だか過度な期待を持たれているようで恐縮です。
> 高速に動作するのは、検索キーワード内に半角英字が含まれていない場合だけ
> です。予めご承知おき下さい。
> 高速化に貢献しているのは下記の部分です。
>
> ----------------------------------------------------------------------
>                         my $page2 = "";
>                         if($word =~ /[A-Za-z]/){
>                                 $page2 = Jcode->new($page)->tr('a-z','A-Z');
>                         }
> ----------------------------------------------------------------------
>
> ----------------------------------------------------------------------
>                                         my $index = 0;
>                                         if($page2){
>                                                 $index = index($page2,Jcode->new($_)->tr('a-z','A-Z'));
>                                         }else{
>                                                 $index = index($page,$_);
>                                         }
> ----------------------------------------------------------------------
>
> オリジナルのソースでは、半角大小文字を同一視するために、一度、検索キー
> ワードも全ページの内容も半角大文字に変換しています。
> この変換(コピー)が遅くなっている原因です。
> index関数で検索を高速化しても、その前に全文コピーを行うなら、その効果は
> 全く活きてきません。

なるほど、了解です。解説ありがとうございました。

--
Naoki Takezoe <takez****@gmail*****>



Fswiki-dev メーリングリストの案内
アーカイブの一覧に戻る