"コンピュータに、符号情報と関連付けて記憶部に記憶された文字情報が、入力された入力文字情報に含まれる場合に、制御情報を前記符号情報に関連付けて前記記憶部に記憶し、符号化されたデータに含まれるある符号情報が、前記制御情報と関連付けて前記記憶部に記憶されている場合に、前記符号化されたデータ内の前記ある符号情報を含むデータと前記入力文字情報との照合処理を実行する、処理を実行させることを特徴とする照合制御プログラム。前記コンピュータに、さらに、前記照合処理の結果に応じて前記ある符号情報を含む前記データを、前記記憶部に記憶された文字情報に変換し、変換された前記文字情報に強調表示させる旨を示す表示指定情報を関連付ける、処理を実行させることを特徴とする請求項1に記載の照合制御プログラム。前記コンピュータに、前記ある符号情報が前記制御情報と関連付けて前記記憶部に記憶されていない場合に、前記照合処理を実行しない、処理を実行させることを特徴とする請求項1又は2に記載の照合制御プログラム。コンピュータに、符号情報と関連付けて記憶部に記憶された文字情報が、入力された入力文字情報に含まれる場合に、制御情報を前記符号情報に関連付けて前記記憶部に記憶し、符号化されたデータに含まれるある符号情報が、前記制御情報と関連付けて前記記憶部に記憶されている場合に、前記符号化されたデータ内の前記ある符号情報を含むデータと前記入力文字情報との照合処理を実行する、処理を実行させることを特徴とする照合制御方法。符号情報と文字情報とを関連付けて記憶する記憶部と、前記記憶部に記憶された文字情報が、入力された入力文字情報に含まれる場合に、制御情報を前記符号情報に関連付けて前記記憶部に記憶する記憶制御部と、符号化されたデータに含まれるある符号情報が、前記制御情報と関連付けて前記記憶部に記憶されている場合に、前記符号化されたデータ内の前記ある符号情報を含むデータと前記入力文字情報との照合処理を実行する照合制御部と、を含むことを特徴とする照合制御装置。しかしながら、圧縮されたデジタルコンテンツなどのデータに対して検索処理を行なう場合には、伸張処理と検索処理とを行うことになり、処理時間が長くなるという問題がある。1つの側面では、本発明は、圧縮データに対する検索処理の処理時間を抑制することを目的とする。本願の開示する照合制御プログラムは、一つの態様において、コンピュータに符号情報と関連付けて記憶部に記憶された文字情報が、入力された入力文字情報に含まれる場合に、制御情報を符号情報に関連付けて記憶部に記憶する処理を実行させる。また、照合制御プログラムは、コンピュータに符号化されたデータに含まれるある符号情報が、制御情報と関連付けて記憶部に記憶されている場合に、符号化されたデータ内のある符号情報を含むデータと入力文字情報との照合処理を実行する処理を実行させる。1態様によれば、圧縮データに対する検索処理の処理時間を抑制することができる。以下に、本願の開示する検索プログラム、検索装置および検索方法の各実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。なお、検索プログラム、検索装置、検索方法のそれぞれは、照合制御プログラム、照合制御装置、照合制御方法の一例である。[システム1の構成例]実施例1に係るシステムについて説明する。図1は、実施例1に係るシステムの構成の一例を示す図である。本実施例に係るシステム1は、サーバ2と、利用者端末3とを有する。サーバ2と、利用者端末3とは、データの送受信が可能なように接続される。図1の例では、サーバ2と、利用者端末3とは、インターネット4を介して接続されている。なお、サーバ2と、利用者端末3とは、無線で接続されてもよい。サーバ2は、複数の辞書や電子書籍などのデジタルコンテンツのファイルのデータを圧縮する。サーバ2は、暗号化された複数のデジタルコンテンツのファイルのデータを、インターネット4を介して利用者端末3に送信する。利用者端末3は、受信した複数の電子書籍のファイルのデータを伸張しつつ、各ファイルに含まれる検索文字列を検索し、検索文字列の出現頻度、出現ファイル数を計数し、また、各ファイルの検索文字列が含まれる項目を表示する。サーバ2は、入力部5と、出力部6と、送受信部7と、記憶部8と、制御部9とを有する。入力部5は、各種の情報を制御部9に入力する。例えば、入力部5は、ユーザから、デジタルコンテンツを受け付けて、受け付けたデジタルコンテンツを制御部9に入力する。また、入力部5は、ユーザから、後述の圧縮処理を実行する指示を受け付けて、受け付けた指示を制御部9に入力する。入力部5のデバイスの一例としては、マウスやキーボードなどの操作受付デバイスが挙げられる。出力部6は、各種の情報を出力する。例えば、出力部6は、サーバ2の稼働状況を表示する。出力部6のデバイスの一例としては、LCDLiquidCrystalDisplayやCRTCathodeRayTubeなどの表示デバイスなどが挙げられる。送受信部7は、サーバ2と利用者端末3との通信を行うための通信インタフェースである。例えば、送受信部7は、利用者端末3からインターネット4を介して、コンテンツデータベースDataBaseに登録されたデジタルコンテンツのファイルの送信要求を受信すると、受信した送信要求を制御部9へ送信する。なお、以下では、データベースをDBと略記する。また、送受信部7は、制御部9から後述のコンテンツDB8aに登録されたデジタルコンテンツのファイルを受信すると、受信したデジタルコンテンツのファイルを、インターネット4を介して利用者端末3へ送信する。記憶部8は、各種情報を記憶する。例えば、記憶部8は、コンテンツDB8a、辞書8bを記憶する。コンテンツDB8aには、圧縮されたデジタルコンテンツのファイルが登録される。例えば、コンテンツDB8aには、後述の圧縮部9aにより圧縮されたデジタルコンテンツのファイルが登録される。図2は、コンテンツDBの一例を示す図である。図2の例では、コンテンツDB8aに、圧縮されたデジタルコンテンツA~Kの各ファイルが登録されている場合が示されている。コンテンツDB8aに登録されたデジタルコンテンツのファイルは、利用者端末3からの指示に応じて、利用者端末3へ送信される。辞書8bは、LZ78の圧縮方式で用いられる動的辞書である。LZ78の圧縮方式では、トライの木で表される動的辞書が用いられて、ファイルの圧縮および伸張が行われる。トライの木の葉および節点には、文字の文字コードと参照番号とが格納されている。図3は、トライの木の一例を示す図である。図3の例では、文字列bitの参照番号は、16進数で104である。図3の例では、文字列bitの圧縮符号列として参照番号104を用いることで、文字列bitの圧縮を行うことができる。また、図3の例では、圧縮されたファイルのデータ104を、文字列bitに置き換えることで、伸張を行うことができる。記憶部8は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部8は、上記の種類の記憶装置に限定されるものではなく、RAMRandomAccessMemory、ROMReadOnlyMemoryであってもよい。制御部9は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図1に示すように、制御部9は、圧縮部9aを有する。圧縮部9aは、入力部5から入力されたデジタルコンテンツのファイルを圧縮する。例えば、圧縮部9aは、LZ78の圧縮方式により、辞書8bを用いて複数のデジタルコンテンツのファイルのそれぞれを圧縮しつつ、辞書8bを更新し、圧縮したファイルをデジタルコンテンツごとに、コンテンツDB8aに登録する。利用者端末3は、入力部10と、出力部11と、送受信部12と、記憶部13と、制御部14とを有する。入力部10は、各種情報を制御部14に入力する。例えば、入力部10は、ユーザから検索文字列、および後述の伸張検索処理を実行する指示を受け付けて、受け付けた検索文字列および指示を制御部14に入力する。例えば、入力部10は、bitなどの文字列や、兎などの文字を検索文字列として受け付けることができる。入力部10のデバイスの一例としては、マウスやキーボードなどの操作受付デバイスが挙げられる。出力部11は、各種の情報を出力する。例えば、出力部11は、後述の表示制御部14eによって、置換文字列を含む項目、後述の頻度データ13dが示す文字ごとの出現回数および出現ファイル数を表示する。出力部11のデバイスの一例としては、LCDLiquidCrystalDisplayやCRTCathodeRayTubeなどの表示デバイスが挙げられる。送受信部12は、利用者端末3とサーバ2との通信を行うための通信インタフェースである。例えば、送受信部12は、制御部14から、コンテンツDBに登録されたデジタルコンテンツのファイルの送信要求を受信すると、受信した送信要求を、インターネット4を介してサーバ2へ送信する。また、送受信部12は、サーバ2からコンテンツDB8aに登録されたデジタルコンテンツのファイルを受信すると、受信したファイルを制御部14へ送信する。記憶部13は、各種情報を記憶する。例えば、記憶部13は、コンテンツDB13a、辞書13b、伸張領域13c、頻度データ13d、置換テーブル13eを記憶する。コンテンツDB13aには、後述の伸張部14aにより伸張されたデジタルコンテンツの各ファイルが登録される。辞書13bは、LZ78の圧縮方式で用いられる、トライの木で表される動的辞書である。辞書13bは、後述の伸張部14aにより更新される。ここで、本実施例のトライの木の葉の構造体の一例について説明する。図4は、トライの木の葉の構造体の一例を示す図である。図4の例では、トライの木の葉の構造体は、親の節点へのポインタ、子の葉または節点へのポインタ、同世代である兄弟の葉または節点へのポインタを有する。また、図4の例では、トライの木の葉の構造体は、文字コード、トライの木のルートから葉までの文字列の圧縮符号列、照合フラグ、置換フラグ、置換テーブルへのポインタの各項目を有する。このうち、照合フラグは、照合済みであることを示すためのフラグである。照合フラグには、トライの木のルートから葉までの文字列が検索文字列である場合に、後述の格納部14bにより、フラグがONであることを示す値、例えば1が登録される。また、照合フラグには、初期状態では、フラグがOFFであることを示す値、例えば0が登録される。置換フラグは、トライの木のルートから、伸張対象の圧縮されたデータが圧縮符号列として格納された葉までの文字列が検索文字列である場合に、伸張対象の圧縮されたデータを置換文字列に置換するためのフラグである。置換フラグには、特定されたトライの木のルートから葉までの文字列が検索文字列である場合に、後述の格納部14bにより、フラグがONであることを示す値、例えば1が登録される。また、置換フラグには、初期状態では、フラグがOFFであることを示す値、例えば0が登録される。また、置換テーブルへのポインタの項目には、後述の置換テーブル13eに登録された置換文字列が登録された位置を指すポインタが格納部14bにより登録される。また、照合フラグおよび置換フラグがONである場合は、トライの木の葉に登録された圧縮符号列を伸張させた場合の文字列が検索文字列であることを示す。すなわち、照合フラグおよび置換フラグがONである場合は、検索文字列に対応する圧縮符号列がトライの木の葉に登録されていることを示す。伸張領域13cは、後述の伸張部14aにより伸張されたデータが格納される記憶領域である。記憶部13の伸張領域13cが示す記憶領域は、伸張バッファとも称される。頻度データ13dは、後述の更新部14cにより文字ごとの出現回数および出現ファイル数が登録されて更新される。図5は、頻度データの一例を示す図である。図5の例では、文字Aについて、複数のデジタルコンテンツの全ファイルの出現回数が1238であり、出現したファイルの数が230である場合が示されている。置換テーブル13eには、後述の格納部14bにより検索文字列を所定の文字列に変換した置換文字列が登録される。図6は、置換テーブルの一例を示す図である。図6の例では、置換テーブル13eに、検索文字列bitにタグ、が付与された置換文字列が登録された場合が示されている。なお、タグ、の間の文字列は、所定の色、例えば赤色などで表示される。すなわち、図6の例に示すbitは、表示デバイスに赤色で強調表示される。記憶部13は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAMRandomAccessMemory、ROMReadOnlyMemoryであってもよい。制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図1に示すように、制御部14は、伸張部14aと、格納部14bと、更新部14cと、検索部14dと、表示制御部14eとを有する。伸張部14aは、トライの木の葉で表される辞書13bを用いて、伸張対象の圧縮された文字列を伸張するとともに、辞書13bの登録内容および伸張された文字列に応じて、新たに伸張された文字列を含む文字列であって辞書13bに未登録の文字列と、圧縮符号列との組み合わせが登録された新たな葉をトライの木に追加して辞書13bを更新する。具体例を挙げて説明する。伸張部14aは、まず、辞書13bを初期化する。ここで、初期化が行われると、辞書13bには、所定数の種類、例えば256種類の文字と、文字に対応する圧縮符号列とが登録される。伸張部14aは、サーバ2から送信された複数のデジタルコンテンツを取得する。伸張部14aは、取得した複数のデジタルコンテンツのファイルの中から未選択のファイルを伸張対象のファイルとして選択する。そして、伸張部14aは、辞書13bを参照して、伸張対象のファイルの未処理の圧縮データが、圧縮符号列の項目に登録されたトライの木の葉を特定する。図7は、トライの木の葉の構造体の一例を示す図である。図7の例では、圧縮符号列104hが、圧縮符号列の項目に登録されたトライの木の葉の構造体が示されている。図7の例において、伸張対象のファイルの未処理の圧縮データが104hである場合には、伸張部14aは、図7に示すトライの木の葉の構造体を、圧縮符号列104hが、圧縮符号列の項目に登録されたトライの木の葉の構造体として特定する。なお、図7の例に示す構造体は、先の図3に示すトライの木における文字tに対応する構造体である。図3の例では、文字tに対応する葉に対して、文字iに対応する節点が親となるため、図7の例では、親へのポインタの項目に、文字iに対応する節点へのポインタが登録されている。また、図3の例では、文字tに対応する葉に対して、子となる葉または節点が存在しないため、図7の例では、子へのポインタの項目には、ポインタが登録されていない。また、図3の例では、文字tに対応する葉に対して、文字gに対応する節点が兄弟となるため、図7の例では、兄弟へのポインタの項目に、文字gに対応する葉へのポインタが登録されている。なお、図7の例では、文字tの文字コードが74hであるため、文字コードの項目に74hが登録されている。また、図7の例では、照合フラグの項目には、初期状態のため、0が登録されている。また、図7の例では、置換フラグの項目には、初期状態のため、0が登録されている。また、図7の例では、置換テーブルへのポインタの項目には、ポインタが登録されていない。そして、伸張部14aは、後述の検索部14dにより置換フラグの値が1でないと判定、すなわち0であると判定された場合には、辞書13bを参照して、トライの木のルートから、特定したトライの木の葉までの各文字列の文字コードを文字列の順番に連結したデータを伸張データとして取得する。続いて、伸張部14aは、取得した伸張データを伸張領域13cに格納する。また、伸張部14aは、後述の検索部14dにより、置換フラグの値が1であると判定された場合には、辞書13bを参照して、特定したトライの木の葉に登録された置換テーブルへのポインタを取得する。図8は、利用者端末が実行する処理を説明するための図である。図8の例の葉15は、図7の例が示す葉の構造体において、後述の格納部14bにより、照合フラグの項目に1、置換フラグの項目に1、置換テーブルへのポインタの項目にP1が登録された場合を示す。伸張部14aは、図8の例に示す葉15を特定した場合には、置換テーブルへのポインタとしてP1を取得する。そして、伸張部14aは、取得した置換テーブルへのポインタが示す置換テーブル13eの置換文字列を取得する。図8の例において、伸張部14aは、置換テーブルへのポインタP1を取得した場合には、P1が示す置換テーブル13eに登録された置換文字列bitを取得する。続いて、伸張部14aは、取得した置換文字列を伸張領域13cに格納する。図8の例において、伸張部14aは、置換文字列bitを取得した場合には、bitを伸張領域13cに格納する。このように、伸張部14aは、置換フラグの値が1である場合、すなわち圧縮符号列を伸張させた場合の文字列が検索文字列である場合には、圧縮符号列の伸張を行わずに、圧縮符号列を置換文字列に置換する。上述したように、置換フラグの値が1であると後述の検索部14dにより判定された場合に、伸張部14aは、圧縮符号列を伸張せずに、圧縮符号列を置換文字列に置換する。そのため、利用者端末3によれば、置換フラグの値が1である場合、すなわち圧縮符号列を伸張させた場合の文字列が検索文字列である場合には、圧縮符号列を伸張せずに、圧縮符号列を置換文字列に置換するので、検索処理の速度が高速となる。また、伸張部14aは、LZ78の圧縮方式により、辞書13bの登録内容および伸張された文字列に応じて、新たに伸張した文字列を含む文字列であって辞書13bに未登録の文字列と、圧縮符号列との組み合わせが登録された新たな葉をトライの木に追加して辞書13bを更新する。そして、伸張部14aは、新たな葉がトライの木に追加されるたびに、新たな葉に登録された文字列と、入力部10から入力された検索文字列とが一致するか否かを判定する。入力部10から入力された検索文字列が複数である場合には、伸張部14aは、複数の検索文字列のそれぞれに対して、新たな葉に登録された文字列が一致するか否かを判定する。かかる判定の結果に応じて、格納部14bにより後述する処理が実行される。また、伸張部14aは、伸張領域13cに伸張されたデジタルコンテンツのファイルをファイルごとにコンテンツDB13aに格納する。格納部14bは、各種の情報を格納する。例えば、格納部14bは、検索文字列が入力部10から入力されるたびに、入力された検索文字列を強調させた置換文字列を生成し、生成した置換文字列を置換テーブル13eに格納する。格納部14bによる置換文字列の生成方法の一例としては、例えば、検索文字列にタグ、を付与する方法が挙げられる。また、格納部14bは、新たな葉がトライの木に追加された場合に、新たな葉に登録された新たな文字列が検索文字列と一致する場合には、検索文字列に対応する圧縮符号列が登録されていることを示す情報を記憶部13に格納する。かかる情報の一例としては、照合フラグおよび置換フラグに設定される1が挙げられる。例えば、格納部14bは、新たな葉に登録された文字列と、入力部10から入力された検索文字列とが一致すると伸張部14aにより判定された場合に、特定したトライの木の葉の構造体の照合フラグの項目に1を設定する。また、格納部14bは、新たな葉に登録された文字列と、入力部10から入力された検索文字列とが一致すると伸張部14aにより判定された場合に、次のような処理を行う。すなわち、格納部14bは、置換フラグの項目に1、特定したトライの木の葉の構造体の置換テーブルへのポインタの項目に、検索文字列に対応する、置換テーブル13eに登録された置換文字列を指すポインタを設定する。図9は、利用者端末の処理に用いられるデータを説明するための図である。図9の例は、伸張部14aにより図7に示すトライの木の葉の構造体が特定された場合に、格納部14bが、照合フラグに1を設定した場合を示す。また、図9の例は、伸張部14aにより図7に示すトライの木の葉の構造体が特定された場合に、格納部14bが、置換フラグに1を設定した場合を示す。また、図9の例は、伸張部14aにより図7に示すトライの木の葉の構造体が特定された場合に、格納部14bが、置換テーブルへのポインタにP1を設定した場合を示す。更新部14cは、頻度データ13dを更新する。例えば、更新部14cは、特定されたトライの木の葉の照合フラグの値が1であると後述の検索部14dにより判定された場合に、未処理の圧縮データを伸張した文字列は検索文字列であるため、次の処理を行う。すなわち、更新部14cは、頻度データ13dの検索文字列の出現回数の値を1つインクリメントし、伸張対象のファイルの検索文字列の出現ファイル数の値を1つインクリメントする。ただし、それぞれの文字について、照合フラグの値が1であるとの判定が1回目の判定である場合には、更新部14cは、頻度データ13dの検索文字列の出現回数の値を2つインクリメントし、伸張対象のファイルの検索文字列の出現ファイル数の値を2つインクリメントする。これは、照合フラグの値が1であるか否かの判定は、伸張される前の検索文字列の圧縮データに対して行われるが、照合フラグの値が1であると判定された時点ですでに、検索文字列が伸張されているためである。すなわち、照合フラグの値が1であるという1回目の判定がなされた時点で、検索文字列は2つ出現するからである。検索部14dは、伸張部14aにより特定されたトライの木の葉の構造体の照合フラグの値を取得する。そして、検索部14dは、照合フラグの値が1であるか否かを判定する。なお、照合フラグの値が1である場合には、デジタルコンテンツのファイルから検索文字列が検索され、照合済みであると判断される。すなわち、検索部14dは、伸張対象のファイルの未処理の圧縮データに、照合フラグの値が1であるトライの木の葉に登録された圧縮符号列があるか否かを検索する。上述したように、照合フラグの値が1であると検索部14dにより判定された場合に、更新部14cにより検索文字列がファイルに含まれる個数を示す頻度データ13dが更新される。そのため、利用者端末3によれば、圧縮されたデジタルコンテンツのファイルを伸張し、伸張したファイルのデータを所定数の文字ずつ走査して検索文字列を検索する場合と比較して、検索処理の速度が高速となる。また、検索部14dは、伸張部14aにより特定されたトライの木の葉の構造体の置換フラグの値を取得する。そして、検索部14dは、置換フラグの値が1であるか否かを判定する。なお、置換フラグの値が1である場合には、特定されたトライの木の葉の圧縮符号列を置換文字列に置換すると判断される。上述したように、置換フラグの値が1であると検索部14dにより判定された場合に、伸張部14aは、圧縮符号列を伸張せずに、圧縮符号列を置換文字列に置換する。このように、利用者端末3によれば、伸張対象の圧縮データを伸張させた場合の文字列が検索文字列である場合には、圧縮符号列を伸張する処理を省略して、圧縮符号列を置換文字列に置換するので、検索処理の速度が高速となる。表示制御部14eは、出力部11の表示デバイスに表示される表示画面を制御する。例えば、表示制御部14eは、伸張領域13cに格納された置換文字列を含む項目を出力部11の表示デバイスに表示させる。また、表示制御部14eは、頻度データ13dが示す文字毎の出現回数および出現ファイル数を出力部11の表示デバイスに表示させる。制御部14は、ASICApplicationSpecificIntegratedCircuitやFPGAFieldProgrammableGateArrayなどの集積回路を有する。なお、制御部14は、CPUCentralProcessingUnitやMPUMicroProcessingUnitなどの電子回路を有してもよい。[処理の流れ]次に、本実施例に係るシステム1の処理の流れを説明する。図10は、実施例1に係るシステムのシーケンス図である。図10に示すように、サーバ2は、後述する圧縮処理を実行するステップS101。サーバ2は、圧縮されたデジタルコンテンツのファイルをコンテンツDB8aに登録するステップS102。一方、利用者端末3は、ユーザから検索文字列、および後述の伸張検索処理を実行する指示を受け付けるとステップS103、デジタルコンテンツのファイルの送信要求をサーバ2に送信するステップS104。サーバ2は、デジタルコンテンツのファイルの送信要求を受信すると、コンテンツDB8aに登録されたデジタルコンテンツのファイルを利用者端末3に送信するステップS105。利用者端末3は、デジタルコンテンツのファイルを受信するステップS106と、後述する伸張検索処理を実行するステップS107。利用者端末3は、伸張されたデジタルコンテンツのファイルをコンテンツDB13aに登録するステップS108。利用者端末3は、記憶部13から頻度データを取得するステップS109。利用者端末3は、伸張領域13cに格納された置換文字列を含む項目、頻度データが示す文字ごとの出現回数および出現ファイル数を表示デバイスに表示させるステップS110。次に、本実施例に係るサーバ2の処理の流れを説明する。図11は、実施例1に係る圧縮処理の手順を示すフローチャートである。この圧縮処理の実行タイミングとしては様々なタイミングが考えられる。例えば、圧縮処理は、入力部5からデジタルコンテンツが入力された場合に実行されるようにしてもよい。図11に示すように、圧縮部9aは、辞書8bを初期化するステップS201。圧縮部9aは、入力部5から入力されたデジタルコンテンツのファイルを1つ選択するステップS202。圧縮部9aは、選択したデジタルコンテンツのファイルのデータのうち圧縮処理が未処理のデータがあるか否かを判定するステップS203。圧縮処理が未処理のデータがある場合ステップS203肯定には、圧縮部9aは、辞書8bを参照し、LZ78の圧縮方式で圧縮するステップS204。圧縮部9aは、辞書8bを更新しステップS205、ステップS203へ戻る。圧縮処理が未処理のデータがない場合ステップS203否定には、圧縮部9aは、ステップS202で未選択のファイルがあるか否かを判定するステップS206。未選択のファイルがある場合ステップS206肯定には、ステップS202に戻り、圧縮部9aは、未選択のファイルを選択して、以降の処理を再び行う。一方、未選択のファイルがない場合ステップS206否定には、処理結果を制御部9の内部メモリに格納し、リターンする。次に、本実施例に係る利用者端末3の処理の流れを説明する。図12は、実施例1に係る伸張検索処理の手順を示すフローチャートである。図12に示すように、伸張部14aは、辞書13bを初期化するステップS301。伸張部14aは、圧縮された複数のデジタルコンテンツのファイルの中から未選択のファイルを伸張対象のファイルとして選択するステップS302。伸張部14aは、辞書13bを参照して、伸張対象のファイルの未処理の圧縮データが、圧縮符号列の項目に登録されたトライの木の葉を特定するステップS303。検索部14dは、伸張部14aにより特定されたトライの木の葉の構造体の照合フラグおよび置換フラグの値を取得するステップS304。検索部14dは、照合フラグの値が1であるか否かを判定するステップS305。照合フラグの値が1である場合ステップS305肯定には、更新部14cは、頻度データ13dの検索文字列の出現回数の値、出現ファイル数の値を更新するステップS306。検索部14dは、置換フラグの値が1であるか否かを判定するステップS307。置換フラグの値が1である場合ステップS307肯定には、伸張部14aは、辞書13bを参照して、特定したトライの木の葉の置換テーブルへのポインタを取得するステップS308。伸張部14aは、取得した置換テーブルへのポインタが指す置換文字列を置換テーブル13eから取得するステップS309。伸張部14aは、取得した置換文字列を伸張領域13cに格納しステップS310、ステップS313へ進む。一方、置換フラグの値が1でない場合ステップS307否定には、伸張部14aは、次のような処理を行う。すなわち、伸張部14aは、辞書13bを参照して、トライの木のルートから、特定したトライの木の葉までの各文字列の文字コードを文字列の順番に連結したデータを伸張データとして取得するステップS311。伸張部14aは、取得した伸張データを伸張領域13cに格納するステップS312。伸張部14aは、辞書13bを更新するステップS313。伸張部14aは、検索文字列のうち未選択の検索文字列を1つ選択するステップS314。伸張部14aは、新たに辞書13bに追加された文字列を特定するステップS315。伸張部14aは、新たに辞書13bに追加された文字列と、検索文字列とが一致するか否かを判定するステップS316。一致する場合ステップS316肯定には、格納部14bは、伸張部14aにより特定されたトライの木の葉の構造体の照合フラグの項目に1、置換フラグの項目に1、置換テーブルへのポインタの項目にポインタを設定するステップS317。そして、ステップS318へ進む。一方、一致しない場合ステップS316否定には、伸張部14aは、検索文字列のうち未選択の検索文字列があるか否かを判定するステップS318。未選択の検索文字列がある場合ステップS318肯定には、ステップS314へ戻る。一方、未選択の検索文字列がない場合ステップS318否定には、伸張部14aは、伸張対象のファイルに未処理の圧縮データがあるか否かを判定するステップS319。伸張対象のファイルに未処理の圧縮データがある場合ステップS319肯定には、ステップS303へ戻る。一方、伸張対象のファイルに未処理の圧縮データがない場合ステップS319否定には、伸張部14aは、圧縮された複数のデジタルコンテンツのファイルの中に、未選択のファイルがあるか否かを判定するステップS320。未選択のファイルがある場合ステップS320肯定には、ステップS302へ戻る。一方、未選択のファイルがない場合ステップS320否定には、処理結果を制御部14の内部メモリに格納し、リターンする。上述してきたように、本実施例に係る利用者端末3は、圧縮された文字列をトライの木の葉で表される辞書13bを用いて伸張する。また、本実施例に係る利用者端末3は、辞書13bの登録内容および伸張された文字列に応じて、新たに伸張された文字列を含む文字列であって辞書13bに未登録の文字列と、圧縮符号列との組合せが登録された新たな葉をトライの木に追加して辞書13bを更新する。また、本実施例に係る利用者端末3は、トライの木の葉の新たな葉に登録された文字列が、検索文字列と一致する場合に、検索文字列に対応する圧縮符号列が登録されている葉を識別する情報,例えば1を照合フラグ、置換フラグに設定する。また、本実施例に係る利用者端末3は、照合フラグ、置換フラグを参照して、伸張対象の圧縮データに、検索文字列に対応する圧縮符号列があるか検索する。このように、本実施例に係る利用者端末3は、伸張対象の圧縮データに、検索文字列に対応する圧縮符号列がある場合には、検索に成功したと判定する。したがって、本実施例に係る利用者端末3によれば、伸張対象の圧縮データを伸張せずに、検索文字列の検索を行うことができるため、検索速度をより高速化することができる。すなわち、圧縮データに対する検索処理の処理時間を抑制することができる。また、本実施例に係る利用者端末3によれば、伸張開始前には、辞書13bの登録内容が、初期化の状態であるにも関わらず、検索文字列に対応する圧縮符号列が登録されている葉を識別する情報を、辞書13bを成長させながら登録することができる。また、本実施例に係る利用者端末3は、伸張対象の圧縮符号列が格納されたトライの木の葉の照合フラグの値が1である場合に、検索文字列が検索されたと判定し、検索文字列がファイルに含まれる個数を示す頻度データ13dを更新する。そのため、本実施例に係る利用者端末3によれば、圧縮されたデジタルコンテンツのファイルを伸張し、伸張したファイルのデータを所定数の文字ずつ走査して検索文字列を検索する場合と比較して、検索処理の速度が高速となる。ここで、例えば、利用者端末3で処理対象となるデジタルコンテンツが、EPUB形式のデジタルコンテンツである場合を想定する。EPUB形式のデジタルコンテンツは、予めZIP形式で圧縮されていることがある。このような予め圧縮されたデジタルコンテンツについて、検索文字列の検索処理の高速化を図るために、国際公開第2006/123448号などに記載されている出現マップを生成し、圧縮時に用いることが考えられる。本実施例に係る利用者端末3によれば、検索処理の速度がより高速となる結果、出現マップを生成する際に用いられる頻度データ13bも高速に生成される。そのため、利用者端末3によれば、予め圧縮されたデジタルコンテンツから出現マップを生成する時間を短縮することができる。そして、利用者端末3は、頻度データ13bを用いて出現マップを生成し、生成した出現マップを用いて、検索文字列を含むデジタルコンテンツのファイルを絞り込んだ上で、検索文字列の全文検索を行うことで、より一層の検索の高速化を図ることができる。また、本実施例に係る利用者端末3によれば、伸張対象の圧縮データを伸張させた場合の文字列が検索文字列である場合には、圧縮データを伸張する処理を省略して、圧縮データを置換文字列に置換するので、検索処理の速度が高速となる。さて、上記の実施例1では、圧縮方式としてLZ78を採用した場合を例示したが、開示の装置はこれに限定されない。そこで、実施例2では、圧縮方式としてLZ77を採用する場合について説明する。[システム21の構成例]実施例2に係るシステムについて説明する。図13は、実施例2に係るシステムの構成の一例を示す図である。本実施例に係るシステム21は、サーバ22と、利用者端末23とを有する。サーバ21は、実施例1に係る記憶部8、制御部9に代えて記憶部24、制御部25を有する点が、実施例1と異なる。利用者端末23は、実施例1に係る記憶部13、制御部14に代えて記憶部26、制御部27を有する点が、実施例1と異なる。なお、以下では、上記の実施例1と同様の機能を果たす各部や各機器については図1と同様の符号を付し、その説明は省略する場合がある。サーバ22は、複数のデジタルコンテンツのファイルのデータのそれぞれを圧縮する。サーバ22は、暗号化された複数のデジタルコンテンツのファイルのデータを、インターネット4を介して利用者端末23に送信する。利用者端末23は、受信した複数の電子書籍のファイルのデータを伸張しつつ、各ファイルに含まれる検索文字列を検索し、検索文字列の出現頻度、出現ファイル数を計数し、また、各ファイルの検索文字列が含まれる項目を表示する。サーバ22は、入力部5と、出力部6と、送受信部7と、記憶部24と、制御部25とを有する。入力部5は、ユーザから、デジタルコンテンツを受け付けて、受け付けたデジタルコンテンツを制御部25に入力する。また、入力部5は、ユーザから、後述の圧縮処理を実行する指示を受け付けて、受け付けた指示を制御部25に入力する。出力部6は、サーバ22の稼働状況を出力する。送受信部7は、サーバ22と利用者端末23との通信を行うための通信インタフェースである。例えば、送受信部7は、利用者端末23からインターネット4を介して、コンテンツデータDBに登録されたデジタルコンテンツのファイルの送信要求を受信すると、受信した送信要求を制御部25へ送信する。また、送受信部7は、制御部25から後述のコンテンツDB8aに登録されたデジタルコンテンツのファイルを受信すると、受信したデジタルコンテンツのファイルを、インターネット4を介して利用者端末23へ送信する。記憶部24は、各種情報を記憶する。例えば、記憶部24は、コンテンツDB8aを記憶する。コンテンツDB8aには、圧縮されたデジタルコンテンツのファイルが登録される。例えば、コンテンツDB8aには、後述の圧縮部25aにより圧縮されたデジタルコンテンツのファイルが登録される。コンテンツDB8aに登録されたデジタルコンテンツのファイルは、利用者端末23からの指示に応じて、利用者端末23へ送信される。記憶部24は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部24は、上記の種類の記憶装置に限定されるものではなく、RAMRandomAccessMemory、ROMReadOnlyMemoryであってもよい。制御部25は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図13に示すように、制御部25は、圧縮部25aを有する。圧縮部25aは、入力部5から入力されたデジタルコンテンツのファイルを圧縮する。例えば、圧縮部25aは、LZ77の圧縮方式により、参照部および符号化部を有するスライド窓を用いて複数のデジタルコンテンツのファイルのそれぞれを圧縮する。圧縮部25aは、圧縮したファイルをデジタルコンテンツごとに、コンテンツDB8aに登録する。利用者端末23は、入力部10と、出力部11と、送受信部12と、記憶部26と、制御部27とを有する。入力部10は、各種情報を制御部27に入力する。例えば、入力部10は、ユーザから検索文字列、および後述の伸張検索処理を実行する指示を受け付けて、受け付けた検索文字列および指示を制御部27に入力する。出力部11は、後述の表示制御部27eによって、置換文字列を含む項目、頻度データ13dが示す文字ごとの出現回数および出現ファイル数を表示する。送受信部12は、利用者端末23とサーバ22との通信を行うための通信インタフェースである。例えば、送受信部12は、制御部27から、コンテンツDBに登録されたデジタルコンテンツのファイルの送信要求を受信すると、受信した送信要求を、インターネット4を介してサーバ22へ送信する。また、送受信部12は、サーバ22からコンテンツDB8aに登録されたデジタルコンテンツのファイルを受信すると、受信したファイルを制御部27へ送信する。記憶部26は、各種情報を記憶する。例えば、記憶部26は、コンテンツDB13a、伸張領域13c、頻度データ13d、照合/置換テーブル26a、照合フラグ26b、置換フラグ26c、アクセスポインタ26dを記憶する。コンテンツDB13aには、後述の伸張部27aにより伸張されたデジタルコンテンツの各ファイルが登録される。伸張領域13cは、後述の伸張部27aにより伸張されたデータが格納される記憶領域である。記憶部26の伸張領域13cが示す記憶領域は、伸張バッファとも称される。照合/置換テーブル26aには、後述の格納部27bにより、照合に用いられる照合文字列、および検索文字列を所定の文字列に変換した置換文字列が登録される。図14は、利用者端末の処理で用いられるデータの一例を示す図である。図14の例では、照合/置換テーブル26aに、照合文字列bit、検索文字列bitにタグ、が付与された置換文字列が登録された場合が示されている。照合フラグ26bは、伸張された文字列の各文字に対応付けられたフラグである。すなわち、照合フラグ26bには、伸張された文字ごとのフラグが設けられる。図14の例では、照合フラグ26bには、デジタルコンテンツのファイルの伸張された文字列acdbbibitbitのそれぞれの文字ごとにフラグが設けられている。このように、各デジタルコンテンツのファイルが伸張された場合の文字列の各文字に対応付けられるため、照合フラグ26bのサイズは、デジタルコンテンツのファイルが伸張されるにしたがって、大きくなる。照合フラグ26bの各フラグは、ONである場合には、参照部の対応する文字を起点とする文字列であって検索文字列の文字数分の文字列と、検索文字列とを照合させる照合命令を示す。照合フラグ26bの各フラグには、スライド窓が移動した場合に、検索文字列の先頭文字と、参照部内の文字とが一致するときに、後述の格納部27bにより、フラグがONであることを示す値、例えば1が登録される。また、照合フラグ26bの各フラグには、初期状態では、フラグがOFFであることを示す値、例えば0が登録される。置換フラグ26cは、伸張された文字列の各文字に対応付けられたフラグである。すなわち、置換フラグ26cには、伸張された文字ごとのフラグが設けられる。図14の例では、置換フラグ26cには、デジタルコンテンツのファイルの伸張された文字列acdbbibitbitのそれぞれの文字ごとにフラグが設けられている。このように、各デジタルコンテンツのファイルが伸張された場合の文字列の各文字に対応付けられるため、置換フラグ26cのサイズは、デジタルコンテンツのファイルが伸張されるにしたがって、大きくなる。置換フラグ26cの各フラグは、ONである場合には、参照部内の文字列であって検索文字列の文字数分の文字列と、検索文字列との照合結果が一致である場合に、伸張対象の圧縮データであるポインタを置換文字列に置換させる置換命令を示す。置換フラグ26cの各フラグには、スライド窓が移動した場合に、検索文字列の先頭文字と、参照部内の文字とが一致するときに、後述の格納部14bにより、フラグがONであることを示す値、例えば1が登録される。また、置換フラグ26cの各フラグには、初期状態では、フラグがOFFであることを示す値、例えば0が登録される。アクセスポインタ26dには、スライド窓が移動した場合に、検索文字列の先頭文字と、参照部内の文字とが一致するときに、照合/置換テーブル26aに登録された置換文字列を指すポインタが格納部27bにより登録される。アクセスポインタ26dは、伸張された文字列の各文字に対応付けられた領域を有する。すなわち、アクセスポインタ26dには、伸張された文字ごとに、ポインタを登録可能である。図14の例では、アクセスポインタ26dには、デジタルコンテンツのファイルの伸張された文字列acdbbibitbitのそれぞれの文字ごとに、ポインタが登録される領域が設けられている。このように、アクセスポインタ26dの各領域は、各デジタルコンテンツのファイルが伸張された場合の文字列の各文字に対応付けられるため、アクセスポインタ26dのサイズは、デジタルコンテンツのファイルが伸張されるにしたがって、大きくなる。記憶部26は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部26は、上記の種類の記憶装置に限定されるものではなく、RAMRandomAccessMemory、ROMReadOnlyMemoryであってもよい。制御部27は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図1に示すように、制御部27は、伸張部27aと、格納部27bと、更新部27cと、検索部27dと、表示制御部27eとを有する。伸張部27aは、LZ77の圧縮方式により、スライド窓を用いて、デジタルコンテンツのファイルを伸張する。例えば、伸張部27aは、スライド窓の参照部内の伸張された文字列の中から、スライド窓の符号化部内のポインタが示す文字列を取得する。そして、伸張部27aは、ポインタを取得した文字列に置換することで、符号化部に位置するポインタを伸張する。そして、伸張部27aは、伸張した文字列が参照部に含まれるように、デジタルコンテンツのファイルのデータ上を移動させる。すなわち、伸張部27aは、圧縮された文字列を伸張された文字列を用いて伸張する。具体例を挙げて説明する。伸張部27aは、サーバ22から送信された複数のデジタルコンテンツを取得する。伸張部27aは、取得した複数のデジタルコンテンツのファイルの中から未選択のファイルを伸張対象のファイルとして選択する。そして、伸張部27aは、スライド窓の符号化部に伸張対象のファイルを設定する。続いて、伸張部27aは、スライド窓の符号化部に位置する未処理の圧縮データを参照部のデータを辞書として参照して伸張する。なお、符号化部に存在するデータとしては、圧縮されていないデータである生データと、圧縮されたデータであるポインタが存在する。そこで、生データとポインタとを識別可能なように、生データの先頭には0が付加され、ポインタの先頭には1が付加される。例えば、文字Aが生データとして符号化部に存在する場合には、符号化部に存在するデータは、で表される。また、ポインタは、で表される。ここで、mは、最長一致系列のスライド窓の先頭からの位置を示す。lは、最長一致系列の長さを示す。すなわち、ポインタは、参照部のm番目の文字からl個までの文字の文字列を示す。伸張部27aは、符号化部内のデータのうち、先頭の値が0であるデータについては、生データであるため、0以降のデータをそのまま伸張データとして取得する。また、伸張部27aは、符号化部内のデータのうち、先頭の値が1であるデータについては、ポインタであるため、ポインタが示す参照部の文字列のデータを伸張データとして取得する。伸張部27aは、伸張データを伸張領域13cに格納する。また、伸張部27aは、伸張処理が行われた文字列の文字数分、伸張対象のファイルのデータ上のスライド窓の位置を移動させる。そして、伸張部27aは、伸張対象のファイルにおけるスライド窓の総移動量を計算する。例えば、伸張処理を行う前のスライド窓の総移動量は0であるが、1回目の伸張におけるスライド窓の移動量がqである場合には、総移動量はqとなる。これに加えて、2回目の伸張における移動量がuである場合には、総移動量は、quとなる。そして、伸張部27aは、スライド窓が移動された場合に、移動後の参照部に位置する文字列の中に、検索文字列の先頭文字と一致する文字が存在するか否かを判定する。図15は、利用者端末が実行する処理を説明するための図である。図15の例では、参照部51および符号化部52を有するスライド窓50の参照部51内にacdbbititの文字列が含まれている。図15の例において、伸張部27aは、検索文字列がbitである場合には、参照部51の文字列の中に文字bが存在するか否かを判定すると、一致する文字bが存在すると判定する。なお、実際には、符号化部52内には、生データおよびポインタが存在するが、図15の例では、符号化部52内に模式的にポインタなどを伸張した場合の文字列bitが示されている。そして、移動後の参照部に位置する文字列の中に、検索文字列の先頭文字と一致する文字が存在すると判定した場合には、伸張部27aは、一致すると判定された参照部51の文字のスライド窓の先頭からの位置を特定する。例えば、検索文字列がbitであり、参照部51の文字列の中に文字bが存在し、文字bのスライド窓の先頭からの位置が126である場合には、伸張部27aは、文字bの位置として126を特定する。そして、伸張部27aは、一致すると判定された参照部の文字に対応する、照合フラグ26bのフラグの位置、置換フラグ26cのフラグの位置、アクセスポインタ26dのポインタが格納される領域の位置を特定する。以下、一致すると判定された参照部の文字に対応するフラグや領域の位置を格納位置と表記する。伸張部27aは、格納位置を以下の式1に従って特定することができる。格納位置=一致すると判定された参照部の文字のスライド窓の先頭からの位置-スライド窓の参照部の長さ-総スライド量式1例えば、図14の例では、伸張部27aは、検索文字列bitの先頭文字bと一致すると判定された参照部内の文字bのそれぞれについて、格納位置として、3、4、6、Mを特定した場合が示されている。このようにして特定された格納位置は、後述の格納部27bにより、照合フラグ26bのフラグ、置換フラグ26cのフラグに1を設定する際や、アクセスポインタ26dの領域にポインタを設定する際に用いられる。また、伸張部27eは、後述の検索部27dにより、特定した格納位置が示す置換フラグ26bのフラグの値が1であると判定された場合には、次のような処理を行う。すなわち、伸張部27aは、符号化部のポインタを伸張するのではなく、アドレスポインタ26dのポインタを取得し、取得したポインタが示す置換文字列を照合/置換テーブル26aから取得し、取得した置換文字列を伸張領域13cに格納する。格納部27bは、スライド窓の位置が移動された場合に、移動後の参照部に位置する文字列の中に、検索文字列の先頭文字と一致する文字が存在するときには、かかる先頭文字と一致する参照部内の文字に対応する照合フラグ26bのフラグに1を設定する。例えば、図14および図15の例において、参照部内に、検索文字列bitの先頭文字bが存在すると伸張部27aにより判定された場合には、格納部27bは、次のような処理を行う。すなわち、格納部27bは、参照部内の文字bのそれぞれについて特定された格納位置が示す照合フラグ26bのフラグに、1を設定する。また、格納部27bは、スライド窓の位置が移動された場合に、移動後の参照部に位置する文字列の中に、検索文字列の先頭文字と一致する文字が存在するときには、かかる先頭文字と一致する参照部内の文字に対応する置換フラグ26cのフラグに1を設定する。例えば、図14および図15の例において、参照部内に、検索文字列bitの先頭文字bが存在すると伸張部27aにより判定された場合には、格納部27bは、次のような処理を行う。すなわち、格納部27bは、参照部内の文字bのそれぞれについて特定された格納位置が示す置換フラグ26cのフラグに、1を設定する。また、格納部27bは、スライド窓の位置が移動された場合に、移動後の参照部に位置する文字列の中に、検索文字列の先頭文字と一致する文字が存在するときには、かかる先頭文字と一致する参照部内の文字に対応するアクセスポインタ26dの領域にポインタを設定する。例えば、図14および図15の例において、参照部内に、検索文字列bitの先頭文字bが存在すると伸張部27aにより判定された場合には、格納部27bは、次のような処理を行う。すなわち、格納部27bは、参照部内の文字bのそれぞれについて特定された格納位置が示すアクセスポインタ26dの領域に、照合/置換テーブル26aの検索文字列bitを指すポインタP1を登録する。更新部27cは、頻度データ13dを更新する。例えば、更新部27cは、後述の検索部27dによる照合の結果、参照部から取得した文字列と、照合文字列とが一致すると判定された場合には、未処理の圧縮データを伸張した文字列が検索文字列であるため、次の処理を行う。すなわち、更新部27cは、頻度データ13dの検索文字列の出現回数の値を1つインクリメントし、伸張対象のファイルの検索文字列の出現ファイル数の値を1つインクリメントする。検索部27dは、スライド窓が移動された場合に、符号化部の伸張対象のポインタが示す参照部内の文字列の中に、照合フラグ26aのフラグに1が設定された文字があるか否かを判定する。例えば、検索部27dは、まず、符号化部の伸張対象のポインタが示す参照部内の文字列の文字それぞれについて、上記の式1を用いて、格納位置を特定する。そして、検索部27dは、特定した格納位置が示す照合フラグ26bのフラグの値が1であるか否かを判定する。そして、符号化部の伸張対象のポインタが示す参照部内の文字列の中に、照合フラグ26aのフラグに1が設定された文字がある場合には、検索部27dは、アクセスポインタ26dのポインタが示す照合用文字列を照合/置換テーブル26aから取得する。そして、検索部27dは、照合フラグ26aのフラグに1が設定された参照部の文字を起点とした、検索文字列の文字数分の文字列を取得する。そして、検索部27dは、取得した文字列と、取得した照合用文字列とを照合する。すなわち、検索部27dは、圧縮されたデータを伸張させた場合の文字列のうち、照合フラグ26aのフラグに1が設定された文字が登場する箇所ごとに検索文字列を検索する。また、検索部27dは、スライド窓が移動された場合に、符号化部の伸張対象のポインタが示す参照部内の文字列の中に、置換フラグ26bのフラグに1が設定された文字があるか否かを判定する。例えば、検索部27dは、まず、符号化部の伸張対象のポインタが示す参照部内の文字列の文字それぞれについて、上記の式1を用いて、格納位置を特定する。そして、検索部27dは、特定した格納位置が示す置換フラグ26bのフラグの値が1であるか否かを判定する。表示制御部27eは、伸張領域13cに格納された置換文字列を含む項目を出力部11の表示デバイスに表示させる。また、表示制御部27eは、頻度データ13dが示す文字毎の出現回数および出現ファイル数を出力部11の表示デバイスに表示させる。制御部27は、ASICApplicationSpecificIntegratedCircuitやFPGAFieldProgrammableGateArrayなどの集積回路を有する。なお、制御部27は、CPUCentralProcessingUnitやMPUMicroProcessingUnitなどの電子回路を有してもよい。[処理の流れ]次に、本実施例に係るサーバ22の処理の流れを説明する。図16は、実施例2に係る圧縮処理の手順を示すフローチャートである。この圧縮処理の実行タイミングとしては様々なタイミングが考えられる。例えば、圧縮処理は、入力部5からデジタルコンテンツが入力された場合に実行されるようにしてもよい。なお、本実施例に係るシステム1の処理の流れは、実施例1に係るシステムのシーケンス図で示す処理の流れと同様であるので、説明を省略する。図16に示すように、圧縮部25aは、スライド窓を初期化して、デジタルコンテンツのファイルをスライド窓に設定するステップS401。圧縮部25aは、入力部5から入力されたデジタルコンテンツのファイルを1つ選択するステップS402。圧縮部25aは、選択したデジタルコンテンツのファイルのデータのうち圧縮処理が未処理のデータがあるか否かを判定するステップS403。圧縮処理が未処理のデータがある場合ステップS403肯定には、圧縮部25aは、スライド窓を用いて、LZ77の圧縮方式で圧縮するステップS404。圧縮部25aは、スライド窓を移動させてステップS405、ステップS403へ戻る。圧縮処理が未処理のデータがない場合ステップS403否定には、圧縮部25aは、ステップS402で未選択のファイルがあるか否かを判定するステップS406。未選択のファイルがある場合ステップS406肯定には、ステップS402に戻り、圧縮部25aは、未選択のファイルを選択して、以降の処理を再び行う。一方、未選択のファイルがない場合ステップS406否定には、処理結果を制御部25の内部メモリに格納し、リターンする。次に、本実施例に係る利用者端末23の処理の流れを説明する。図17は、実施例2に係る伸張検索処理の手順を示すフローチャートである。図17に示すように、伸張部27aは、スライド窓を初期化して、未選択のデジタルコンテンツの圧縮ファイルを処理対象のファイルとして選択し、処理対象のファイルをスライド窓に設定するステップS501。伸張部27aは、処理対象のファイルのデータのうち伸張処理が未処理のデータがあるか否かを判定するステップS502。未処理のデータがない場合ステップS502否定には、伸張部27aは、全てのデジタルコンテンツのファイルを処理対象のファイルとして選択したか否かを判定するステップS503。全てのデジタルコンテンツのファイルを選択していない場合ステップS503否定には、ステップS501に戻る。一方、全てのデジタルコンテンツのファイルを選択した場合ステップS503肯定には、処理結果を制御部27の内部メモリに格納し、リターンする。また、未処理のデータがある場合ステップS502肯定には、伸張部27aは、スライド窓の符号化部内の未処理の圧縮データを参照部のデータを辞書として参照して伸張し、伸張領域13cに格納するステップS504。伸張部27aは、スライド窓をスライドさせることでスライド窓の参照部内の文字列が示す辞書を更新するステップS505。伸張部27aは、伸張対象のファイルにおけるスライド窓の総移動量を計算するステップS506。伸張部27aは、検索文字列のうち未選択の検索文字列を1つ選択するステップS507。伸張部27aは、参照部に位置する文字列の中に、検索文字列の先頭文字と一致する文字が存在するか否かを判定するステップS508。一致する文字が存在する場合ステップS508肯定には、伸張部27aは、参照部内の検索文字列の先頭文字と一致する文字について、スライド窓の先頭からの位置を特定するステップS509。伸張部27aは、格納位置を特定するステップS510。格納部27bは、検索文字列の先頭文字と一致する参照部内の文字に対応する照合フラグ26bのフラグに1を設定するステップS511。格納部27bは、検索文字列の先頭文字と一致する参照部内の文字に対応する置換フラグ26cのフラグに1を設定するステップS512。格納部27bは、検索文字列の先頭文字と一致する参照部内の文字に対応するアドレスポインタ26cの領域に、検索文字列を置換するための置換文字列を指すポインタを設定するステップS513。伸張部27aは、ステップS507で未選択の検索文字列があるか否かを判定するステップS514。未選択の検索文字列がある場合ステップS514肯定には、ステップS507へ戻る。一方、未選択の検索文字列がない場合ステップS514否定には、検索部27dは、次のような処理を行う。すなわち、検索部27dは、符号化部の伸張対象のポインタが示す参照部内の文字列の中に、照合フラグ26aのフラグに1が設定された文字があるか否かを判定するステップS516。文字がない場合ステップS516否定には、後述のステップ525へ進む。一方、文字がある場合ステップS516肯定には、検索部27dは、アクセスポインタ26dのポインタが示す照合用文字列を照合/置換テーブル26aから取得するステップS517。検索部27dは、照合フラグ26aのフラグに1が設定された参照部の文字を起点とした、検索文字列の文字数分の文字列を取得するステップS518。検索部27dは、取得した文字列と、取得した照合用文字列とを照合するステップS519。照合の結果一致した場合ステップS520肯定には、更新部27cは、頻度データ13dを更新するステップS521。検索部27dは、符号化部の伸張対象のポインタが示す参照部内の文字列の中に、置換フラグ26bのフラグに1が設定された文字があるか否かを判定するステップS522。一方、照合の結果一致していない場合ステップS520否定には、伸張部27aは、伸張データを取得しステップS525、ステップS527へ進む。符号化部の伸張対象のポインタが示す参照部内の文字列の中に、置換フラグ26bのフラグに1が設定された文字がある場合ステップS522肯定には、伸張部27aは、次のような処理を行う。すなわち、伸張部27aは、ポインタをアドレスポインタ26dから取得し、取得したポインタが示す置換文字列を照合/置換テーブル26aから取得するステップS523。伸張部27aは、取得した置換文字列を伸張領域13cに格納しステップS524、ステップS502に戻る。一方、符号化部の伸張対象のポインタが示す参照部内の文字列の中に、置換フラグ26bのフラグに1が設定された文字がない場合ステップS522否定には、伸張部27aは、次のような処理を行う。伸張部27aは、伸張データを取得するステップS526。伸張部27aは、伸張データを伸張領域13cに格納しステップS527、ステップS502に戻る。上述してきたように、本実施例に係る利用者端末23は、圧縮された文字列を伸張された文字列を用いて伸張する。また、本実施例に係る利用者端末23は、伸張された文字が、検索文字列の一部と一致する場合に、一致する文字に対応する照合フラグ、置換フラグに1を設定する。また、本実施例に係る利用者端末23は、圧縮された文字列を伸張させた場合の文字列のうち、照合フラグ、置換フラグに1が設定された文字が登場する箇所ごとに検索文字列があるか検索する。このように、本実施例に係る利用者端末23は、伸張対象の圧縮データを伸張させた場合の文字列のうち、照合フラグ、置換フラグに1が設定された文字が登場する箇所ごとに検索文字列があるか検索する。本実施例に係る利用者端末23は、検索文字列がある場合には、検索に成功したと判定する。したがって、本実施例に係る利用者端末23によれば、伸張対象の圧縮データを伸張せずに、検索文字列の検索を行うことができるため、検索速度をより高速化することができる。すなわち、圧縮データに対する検索処理の処理時間を抑制することができる。また、本実施例に係る利用者端末23によれば、伸張開始前には、スライド窓が示す辞書の登録内容が、空の状態であるにも関わらず、検索文字列の一部と一致する文字に係る情報を、スライド窓が示す辞書を成長させながら登録することができる。また、本実施例に係る利用者端末23は、伸張対象の圧縮データを伸張させた場合の文字列のうち、照合フラグ、置換フラグに1が設定された文字が登場する箇所ごとに検索文字列があるか検索する。そのため、本実施例に係る利用者端末23によれば、伸張された文字全てについて検索文字列の検索を行わないため、圧縮されたデジタルコンテンツのファイルを伸張し、伸張したファイルのデータを所定数の文字ずつ走査して全てのデータについて検索文字列を検索する場合と比較して、検索処理の速度が高速となる。ここで、例えば、利用者端末23で処理対象となるデジタルコンテンツが、EPUB形式のデジタルコンテンツである場合を想定する。EPUB形式のデジタルコンテンツは、予めZIP形式で圧縮されていることがある。このような予め圧縮されたデジタルコンテンツについて、検索文字列の検索処理の高速化を図るために、国際公開第2006/123448号などに記載されている出現マップを生成し、圧縮時に用いることが考えられる。本実施例に係る利用者端末23によれば、検索処理の速度がより高速となる結果、出現マップを生成する際に用いられる頻度データ13bも高速に生成される。そのため、利用者端末23によれば、予め圧縮されたデジタルコンテンツから出現マップを生成する時間を短縮することができる。そして、利用者端末23は、頻度データ13bを用いて出現マップを生成し、生成した出現マップを用いて、検索文字列を含むデジタルコンテンツのファイルを絞り込んだ上で、検索文字列の全文検索を行うことで、より一層の検索の高速化を図ることができる。また、本実施例に係る利用者端末23によれば、検索文字列がある箇所については、圧縮データを伸張する処理を省略して、置換文字列に置換するので、検索処理の速度が高速となる。さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。例えば、実施例1では、検索文字列に対応する圧縮符号列が登録された葉を特定した後も、伸張処理を行ってトライの木で表される辞書13bを拡大する場合を例示したが、開示の装置はこれに限られない。例えば、開示の装置は、検索文字列に対応する圧縮符号列が登録された葉を特定した後は、伸張処理を行わずに、伸張されていない圧縮データに対して、特定した葉に登録された圧縮符号列があるか検索を行うことで、より高速に検索を行うこともできる。また、実施例1において説明した処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、実施例1において説明した処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。例えば、ステップS314、ステップS507において、人間が検索文字列を選択してもよい。また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。ステップS511~S513の処理をまとめることもできる。また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散統合して構成することができる。例えば、更新部14cと検索部14dとが統合されてもよい。また、更新部27cと検索部27dとが統合されてもよい。[検索プログラム]また、上記の実施例1、2で説明した利用者端末の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図18を用いて、上記の実施例で説明した利用者端末と同様の機能を有する検索プログラムを実行するコンピュータの一例を説明する。図18は、検索プログラムを実行するコンピュータを示す図である。図18に示すように、コンピュータ300は、CPUCentralProcessingUnit310、ROMReadOnlyMemory320、HDDHardDiskDrive330、RAMRandomAccessMemory340を有する。また、コンピュータ300は、入力装置350、出力装置360、インターネット4に接続された通信インタフェース370を有する。これら310~370の各部は、バス380を介して接続される。入力装置350は、各種の入力デバイスを含み、例えば、キーボードやマウスを含む。入力装置350は、各実施例のサーバが有する入力部5に対応する。出力装置360は、各種の出力デバイスを含み、例えば、液晶ディスプレイを含む。出力装置360は、各実施例のサーバが有する出力部6に対応する。通信インタフェース370は、各実施例のサーバが有する送受信部7に対応する。ROM320には、上記の実施例で示す伸張部、格納部、検索部と同様の機能を発揮する検索プログラム320aが予め記憶される。なお、検索プログラム320aについては、適宜分離しても良い。そして、CPU310が、検索プログラム320aをROM320から読み出して実行する。そして、HDD330には、コンテンツDBや、辞書および置換テーブル、または照合/置換テーブル、照合フラグ、置換フラグ、アクセスポインタが設けられる。これらのうち、ンテンツDB、辞書、置換テーブルのそれぞれは、コンテンツDB13a、辞書13b,置換テーブル13eのそれぞれに対応する。また、照合/置換テーブル、照合フラグ、置換フラグ、アクセスポインタのそれぞれは、照合/置換テーブル26a、照合フラグ26b、置換フラグ26c、アクセスポインタ26dに対応する。そして、CPU310は、コンテンツDBや、辞書および置換テーブル、または照合/置換テーブル、照合フラグ、置換フラグ、アクセスポインタを読み出してRAM340に格納する。さらに、CPU310は、RAM340に格納されたコンテンツDBや、辞書および置換テーブル、または照合/置換テーブル、照合フラグ、置換フラグ、アクセスポインタを用いて、検索プログラムを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納される必要はなく、処理に必要なデータのみがRAM340に格納されれば良い。なお、上記した検索プログラムについては、必ずしも最初からROMに記憶させておく必要はない。例えば、コンピュータに挿入されるフレキシブルディスクFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの可搬用の物理媒体にプログラムを記憶させておく。そして、コンピュータがこれらからプログラムを読み出して実行するようにしてもよい。さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータに接続される他のコンピュータまたはサーバなどにプログラムを記憶させておく。そして、コンピュータがこれらからプログラムを読み出して実行するようにしてもよい。実施例4について図19を用いて説明する。実施例4も例えば図18に示すコンピュータを用いて実行可能である。図19は、RAM340内のデータの関係について説明する図である。メモリ領域1000は、実施例4の処理に用いられるデータを格納するメモリ領域である。メモリ領域1001は、入力インタフェースを介して入力された入力文字情報を格納するメモリ領域である。メモリ領域1002は、伸張処理に用いられる辞書データと、照合制御に用いる制御情報と、を格納するメモリ領域である。メモリ領域1003は、伸張処理を実行するためのメモリ領域である。メモリ領域1004は、伸張されたデータを格納するメモリ領域である。辞書データベース1010は、辞書データを格納する記憶部であり、例えば、図18のHDD330などにより実現される。伸張処理を開始する場合に、辞書データが、辞書データベース1010からメモリ領域1002に読み出される。辞書データは、符号情報と文字情報とを関連付けるための情報である。符号情報と文字情報とは、予め辞書データベース1010内で関連付けられていても良いし、辞書データベース内には符号情報と文字情報とを関連付けるアルゴリズムを格納しておき、アルゴリズムに基づいてメモリ領域1002内で符号情報と文字情報とを関連付けても良い。コンテンツデータベース1020は、符号化されたコンテンツデータを格納する記憶部であり、例えば、図18のHDD330などにより実現される。コンテンツデータベース1020に格納されたコンテンツデータに対して入力文字情報の検索処理を行なう場合には、コンテンツデータに含まれる複数の符号情報が順次読み出され、メモリ領域1003に格納される。次に、図19に示すデータに対して図18に示すCPU310が実行する処理の流れについて説明する。まず、CPU310は、入力文字情報を受け付けた場合に、受け付けた入力文字情報をメモリ領域1001に格納する。CPU310は、メモリ領域1001に入力文字情報が格納された場合に、辞書データベース1010から辞書情報を読み出し、メモリ領域1002に符号情報と文字情報とを関連付けて格納する。次に、CPU310は、メモリ領域1002に格納された文字情報のうち、入力文字情報に含まれる文字情報を抽出する。CPU310は、メモリ領域1002に格納された制御情報のうち、抽出された文字情報に対応する制御情報を1に書き換える。CPU310が書き換える前は、メモリ領域1002内の制御情報は0であるものとする。例えば、入力文字情報がAPPLEである場合には、図19に示すとおり、Aに対応する制御情報を1となる。ちなみに、BはAPPLEに含まれないため、Bに対応する制御情報は0となる。次に、CPU310は、コンテンツデータベースから符号情報を順次メモリ領域1003に読み出す。CPU310は、メモリ領域1002に格納された辞書データを参照して、読み出した符号情報に対応する文字情報をメモリ領域1003に読み出すことで、伸張処理を行なう。CPU310は、辞書データを参照する際に、コンテンツデータベース1020から読み出した符号情報に対応する制御情報も併せて読み出す。ちなみに伸張処理は、付加的な処理であり、制御情報1と対応する符号情報を読み出した場合に伸張処理が開始されるなどの制御を行なっても良い。CPU310は、読み出した制御情報が0である場合には、入力文字情報との照合処理を開始しない。CPU310は、読み出した制御情報が0である場合には、入力文字情報との照合処理を開始する。例えば、コンテンツデータベース1020から読み出した符号情報が、文字情報Aに対応する符号情報01であった場合には、照合処理が開始される。照合処理を開始した場合は、CPU310は、制御情報1に対応した符号情報例えば、符号情報01に連続する符号情報を、コンテンツデータベース1020から読み出す。読み出した符号情報について、メモリ領域1002を参照して伸張処理を行なう。次に、CPUは、メモリ領域1001を参照して、伸張処理によって得られた文字情報が入力文字情報に含まれているかを判断する。伸張処理によって得られた文字情報が入力文字に含まれており、且つ入力文字情報に照合されていない文字情報が存在する場合には、CPU310は、照合処理を繰り返し行なう。そのほかの場合は、CPU310は、照合処理を終了する。例えば、符号情報01の後に読み出した符号情報が文字情報Pに対応する符号情報である場合は、次に連続する符号情報についての照合処理を開始する。上述の流れで処理を行なうことで、入力文字列と照合処理を行なう回数が抑制されるため、圧縮データに対する検索処理の処理時間を抑制することができる。また、上述の照合処理制御が行われるため、圧縮されたデータを全て伸張した後に、所定の検索文字列を含む項目を検索する制御によって、伸張処理に用いられる伸張バッファの容量を圧縮されたデータを全て伸張した場合のデータのサイズよりも小さくできないという事態になることが抑制される。"