(57)【特許請求の範囲】
【請求項１】
複数の属性情報の各々に対応する検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理システムであって、
前記複数の属性情報の各々に対応する前記検索用データが記憶された第１記憶部と、
前記条件合致データを検索する際に、前記第１記憶部に記憶された前記検索用データが展開される第２記憶部と、
特定の属性情報に対応する前記検索対象データから前記条件合致データを検索する可能性が発生した場合に、前記特定の属性情報に対応する前記検索用データを前記第１記憶部から前記第２記憶部に展開させる展開要求を前記第２記憶部に通知するとともに、前記条件合致データを検索する可能性が消滅した場合に、前記第２記憶部に展開された前記検索用データを前記第１記憶部に退避させる退避要求を前記第２記憶部に通知する管理部と
を有することを特徴とする管理システム。
【請求項２】
前記検索用データが前記第２記憶部に展開されていない場合に、新たなデータを記憶する第３記憶部をさらに有し、
前記第２記憶部は、前記検索対象データに前記新たなデータを追加する場合に、前記第２記憶部に展開された前記検索用データを、前記新たなデータを反映させた検索用データに更新する更新部を有し、
前記第３記憶部は、前記検索用データが前記第２記憶部に展開される場合に、一時的に記憶していた前記新たなデータを前記更新部に出力し、
前記更新部は、前記第２記憶部に展開された前記検索用データを、前記第３記憶部から出力された前記新たなデータを反映させた前記検索用データに更新することを特徴とする請求項１記載の管理システム。
【請求項３】
前記属性情報は、ユーザを一意的に識別する識別情報であり、前記検索対象データは、前記識別情報に示されるユーザ宛の電子メールであり、前記新たなデータは、前記識別情報に示されるユーザ宛の新着電子メールであり、前記検索用データは、前記検索条件に合致する電子メールを検索するためのインデックスデータであり、
前記条件合致データを検索する可能性は、前記ユーザが前記電子メールを検索可能な状態となった際に発生するとともに、当該検索可能な状態から前記ユーザが前記電子メールを検索不可能な状態になった際に消滅することを特徴とする請求項２に記載の管理システム。
【請求項４】
前記管理部は、前記属性情報と当該属性情報に対応する前記検索用データが前記第２記憶部に展開されているか否かを示す情報とを用いて、前記検索用データを管理することを特徴とする請求項１から請求項３のいずれか１項に記載の管理システム。
【請求項５】
検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置であって、
複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定部と、
前記検索発生判定部により前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第１記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知部と、
前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定部と、
前記検索消滅判定部により前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第１記憶装置に退避させる退避要求を前記検索装置に通知する退避通知部と
を有することを特徴とする管理装置。
【請求項６】
検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置における管理方法であって、
前記管理装置の検索発生判定部が、複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定ステップと、
前記管理装置の展開通知部が、前記検索発生判定ステップにより前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第１記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知ステップと、
前記管理装置の検索消滅判定部が、前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定ステップと、
前記管理装置の退避通知部が、前記検索消滅判定ステップにより前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第１記憶装置に退避させる退避要求を前記検索装置に通知する退避通知ステップと
を有することを特徴とする管理方法。
【請求項７】
検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置のコンピュータに、
前記管理装置の検索発生判定部が、複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定ステップと、
前記管理装置の展開通知部が、前記検索発生判定ステップにより前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第１記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知ステップと、
前記管理装置の検索消滅判定部が、前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定ステップと、
前記管理装置の退避通知部が、前記検索消滅判定ステップにより前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第１記憶装置に退避させる退避要求を前記検索装置に通知する退避通知ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理システム、管理装置、管理方法、及びプログラムに関する。
【背景技術】
【０００２】
ネットワークを介してユーザ端末と通信し、ユーザ端末のＷｅｂブラウザで電子メールをやり取り可能なメールサービスが提供されている。このメールサービスにおいて、電子メールは例えば大容量のＨＤＤ（Hard Disk Drive）で構成されたオブジェクトストレージに記憶される。
こうしたメールサービスにおいて、ユーザ宛の電子メールから、宛先、送信元、及び文字列などの各種検索条件に合致する電子メールを検索する場合に、高速に検索するための検索用データとしてのインデックスを作成する技術がある。
【０００３】
この技術に関連して、大容量のテキストデータから、任意の文字列である検索条件に対応するデータを素早く検索するためのインデックスを作成しておき、インデックスに基づいてデータ検索を行う方法が存在する（例えば、特許文献１参照）。
インデックスを用いて検索を行う場合には、インデックスをＲＡＭ（Random Access Memory）に展開する。そのため、メールサービスを提供する全ユーザのインデックスを記憶可能なようにＲＡＭの容量を設計する必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１１−５２３１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＲＡＭはＨＤＤと比較して高価であるため、ユーザの増加に伴ってＲＡＭの容量を増加させなければならないため、コストが増加するという問題点があった。
【０００６】
本発明は、このような事情に鑑みてなされたもので、その目的は、検索用データを展開するために必要なメモリの容量を抑制した管理システム、管理装置、管理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、本発明の一態様は、複数の属性情報の各々に対応する検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理システムであって、前記複数の属性情報の各々に対応する前記検索用データが記憶された第１記憶部と、前記条件合致データを検索する際に、前記第１記憶部に記憶された前記検索用データが展開される第２記憶部と、特定の属性情報に対応する前記検索対象データから前記条件合致データを検索する可能性が発生した場合に、前記特定の属性情報に対応する前記検索用データを前記第１記憶部から前記第２記憶部に展開させる展開要求を前記第２記憶部に通知するとともに、前記条件合致データを検索する可能性が消滅した場合に、前記第２記憶部に展開された前記検索用データを前記第１記憶部に退避させる退避要求を前記第２記憶部に通知する管理部とを有することを特徴とする。
【０００８】
また、本発明の一態様は、上記の管理システムにおいて、前記検索用データが前記第２記憶部に展開されていない場合に、新たなデータを記憶する第３記憶部をさらに有し、前記第２記憶部は、前記検索対象データに前記新たなデータを追加する場合に、前記第２記憶部に展開された前記検索用データを、前記新たなデータを反映させた検索用データに更新する更新部を有し、前記第３記憶部は、前記検索用データが前記第２記憶部に展開される場合に、一時的に記憶していた前記新たなデータを前記更新部に出力し、前記更新部は、前記第２記憶部に展開された前記検索用データを、前記第３記憶部から出力された前記新たなデータを反映させた前記検索用データに更新する。
【０００９】
また、本発明の一態様は、上記の管理システムにおいて、前記属性情報は、ユーザを一意的に識別する識別情報であり、前記検索対象データは、前記識別情報に示されるユーザ宛の電子メールであり、前記新たなデータは、前記識別情報に示されるユーザ宛の新着電子メールであり、前記検索用データは、前記検索条件に合致する電子メールを検索するためのインデックスデータであり、前記条件合致データを検索する可能性は、前記ユーザが前記電子メールを検索可能な状態となった際に発生するとともに、当該検索可能な状態から前記ユーザが前記電子メールを検索不可能な状態になった際に消滅することを特徴とする。
【００１０】
また、本発明の一態様は、上記の管理システムにおいて、前記管理部は、前記属性情報と当該属性情報に対応する前記検索用データが前記第２記憶部に展開されているか否かを示す情報とを用いて、前記検索用データを管理することを特徴とする。
【００１１】
上述した課題を解決するために、本発明の一態様は、検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置であって、複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定部と、前記検索発生判定部により前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第１記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知部と、前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定部と、前記検索消滅判定部により前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第１記憶装置に退避させる退避要求を前記検索装置に通知する退避通知部とを有することを特徴とする。
【００１２】
上述した課題を解決するために、本発明の一態様は、検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置における管理方法であって、前記管理装置の検索発生判定部が、複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定ステップと、前記管理装置の展開通知部が、前記検索発生判定ステップにより前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第１記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知ステップと、前記管理装置の検索消滅判定部が、前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定ステップと、前記管理装置の退避通知部が、前記検索消滅判定ステップにより前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第１記憶装置に退避させる退避要求を前記検索装置に通知する退避通知ステップとを有することを特徴とする。
【００１３】
上述した課題を解決するために、本発明の一態様は、検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置のコンピュータに、前記管理装置の検索発生判定部が、複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定ステップと、前記管理装置の展開通知部が、前記検索発生判定ステップにより前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第１記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知ステップと、前記管理装置の検索消滅判定部が、前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定ステップと、前記管理装置の退避通知部が、前記検索消滅判定ステップにより前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第１記憶装置に退避させる退避要求を前記検索装置に通知する退避通知ステップとを実行させるためのプログラム。
【発明の効果】
【００１４】
以上説明したように、この発明によれば、検索用データを展開するために必要なメモリの容量を抑制した管理システム、管理装置、管理方法、及びプログラムを提供できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る管理システムを含む概略構成を示す図である。
【図２】管理ＤＢとインデックスのデータ構造、及び更新部における更新方法を示す図である。
【図３】更新部における更新方法を示す図である。
【図４】ユーザ端末、管理装置、一時記憶装置、検索装置、及びインデックス記憶装置での処理を示すシーケンス図である。
【図５】管理装置における処理手順を示したフローチャートである。
【図６】一時記憶装置における処理手順を示したフローチャートである。
【図７】検索装置における処理手順を示したフローチャートである。
【図８】インデックス記憶装置における処理手順を示したフローチャートである。
【発明を実施するための形態】
【００１６】
図１は、本発明の実施形態に係る管理システム１００を含む概略構成を示す図である。
この管理システム１００は、ネットワークを介してユーザ端末と通信し、ユーザ端末のＷｅｂブラウザで電子メール（以下、「メール」という）をやり取り可能なメールサービスを提供するシステムに適用される管理システムである。
具体的に管理システム１００は、検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理システムである。本実施形態において、検索対象データは、ユーザ宛の受信済みのメールであり、検索条件は、メールの宛先、送信元に一致する、という条件や、ある文字列などを含む、などの条件である。また、検索用データは、後述するインデックスである。
【００１７】
次に管理システム１００の各構成について説明する。管理システム１００は、管理装置１０、一時記憶装置２０（第３記憶部）、検索装置３０（第２記憶部）、インデックス記憶装置４０（第１記憶部）を含んで構成される。また、ユーザ端末５０と、管理装置１０及び検索装置３０は、ＬＡＮやインターネットなどのネットワークで接続される。
管理装置１０は、ユーザ認証部１１、通知部１２、及び管理ＤＢ（データベース）１３を含んで構成される。ユーザ認証部１１は、メールサービスを利用するユーザを認証する。通知部１２は、一時記憶装置２０、及び検索装置３０に後述する各種通知などを送信する。
【００１８】
このように構成される管理装置１０は、特定の属性情報（後述）に対応する電子メールから検索条件に合致する条件合致データを検索する可能性が発生した場合に、特定の属性情報に対応するインデックスをインデックス記憶装置４０から検索装置３０に展開（記憶）させる。
また、管理装置１０は、条件合致データを検索する可能性が消滅した場合に、検索装置３０に展開されたインデックスをインデックス記憶装置４０に退避させる。なお、「退避」とは、検索装置３０に展開されたインデックスをインデックス記憶装置４０に記憶するとともに、検索装置３０に展開されたインデックスを消去することをいう。一般的には、インデックスの消去とともに、インデックスが記憶されていた記憶領域を解放する処理も行われる。
【００１９】
本実施形態において、属性情報はユーザを一意的に識別する識別情報であり、具体的にはユーザＩＤである。従って、特定の属性情報とは、特定のユーザのユーザＩＤであり、本実施形態では、管理装置１０にログインしたユーザのユーザＩＤである。従って、検索対象データは、ログインしたユーザ宛のメールである。
さらに、本実施形態において、メールから検索条件に合致する条件合致データを検索する可能性は、ユーザがログインした際に発生し、ユーザがログアウトした際に消滅する。
【００２０】
次に、インデックス記憶装置４０について説明する。インデックス記憶装置４０は、大容量のＨＤＤ（Hard Disk Drive）４２を含んで構成され、当該ＨＤＤ４２には、ユーザ宛のメールごとにインデックス４１−１、４１−２、…４１−ｍが記憶されている。このように、インデックス記憶装置４０は、検索対象データの各々に対応するインデックスが記憶されている。
なお、以下の説明において、インデックス４１−１、４１−２、…４１−ｍに共通の説明をする場合には、単にインデックス４１と表現する。また、図１では、インデックス記憶装置４０を１つのみ示しているが、一般的には複数のインデックス記憶装置４０が設けられる。
また、上述したように、インデックス４１は、ユーザがログインするとログインしたユーザに対応するインデックス４１のみ検索装置３０に展開される。そして、ユーザがログアウトすると、検索装置３０に展開されていたインデックス４１は、インデックス記憶装置４０に退避される。
【００２１】
次に、検索装置３０について説明する。検索装置３０は、条件合致データを検索する際に、インデックス記憶装置４０に記憶されたインデックス４１が展開される。この検索装置３０は、更新部３１、検索部３２、展開退避部３５、及びＲＡＭ（Random Access Memory）３３を含んで構成される。
ＲＡＭ３３は、インデックス記憶装置４０に記憶されたインデックス４１が、図に示されるようにアクティブインデックス３４−１、…、３４−ｎとして展開される。名称が「インデックス」から「アクティブインデックス」に変化するが、区別するための便宜的なものであり、展開されるデータ内容は同じである。なお、以下の説明において、アクティブインデックス３４−１、…、３４−ｎに共通の説明をする場合には、単にアクティブインデックス３４と表現する。また、図１では、検索装置３０を１つのみ示しているが、一般的には複数の検索装置３０が設けられる。
図１の場合、ユーザＡがログインしているため、ユーザＡのアクティブインデックス３４−１がＲＡＭ３３に展開されている。このように、ログインしているユーザに対応するインデックス４１のみがアクティブインデックス３４としてＲＡＭ３３に展開される。
【００２２】
次に、展開退避部３５について説明する。展開退避部３５は、管理装置１０からの通知に従って、インデックス記憶装置４０に記憶されたインデックス４１を、アクティブインデックス３４としてＲＡＭ３３に展開したり、ＲＡＭ３３に展開されたアクティブインデックス３４をインデックス記憶装置４０に退避させる。
また、展開退避部３５は、アクティブインデックス３４をインデックス記憶装置４０に退避させると、アクティブインデックス３４が記憶されていたＲＡＭ３３の領域を解放する。従って、ＲＡＭ３３には、ログインしているユーザのアクティブインデックス３４のみが展開されていることとなる。
【００２３】
次に、検索部３２について説明する。検索部３２は、ログインしているユーザのユーザ端末５０から、受信済みのメールを検索するための検索条件が示された検索要求を受信した場合に、アクティブインデックス３４を用いて検索を実行し、その検索結果を示す検索結果通知をユーザ端末５０に送信する。
次の更新部３１の説明に先立ち、まず一時記憶装置２０について説明する。一時記憶装置２０は、アクティブインデックス３４が検索装置３０に展開されていない場合に、新着メールを一時的に記憶するもので、メール受信部２１、メール出力部２２、及びキュー２３を含んで構成される。
【００２４】
メール受信部２１は、メールサービスのユーザ宛の新着メールを受信する。そして、メール受信部２１は、新着メールの宛先のユーザがログインしている場合には、メール出力部２２に新着メールを出力する。一方、新着メールの宛先のユーザがログインしていない場合には、メール受信部２１は、新着メールをキュー２３に記憶する。
キュー２３は、ログインしていないユーザＩＤごとに動的に用意され、新着メールを記憶するためのキューである。
【００２５】
メール出力部２２は、メール受信部２１が出力した新着メールや、キュー２３に記憶された新着メールを更新部３１に出力する。メール出力部２２は、メール受信部２１が出力した新着メールは、そのまま更新部３１に出力する。一方、キュー２３に記憶された新着メールは、管理装置１０の通知部１２によりユーザがログインしたことを示すログイン通知を受信した場合に、ログイン通知に示されるユーザＩＤに対応するキュー２３が記憶している新着メールを更新部３１に出力する。上述したように、ユーザがログインすると、そのユーザＩＤに対応するアクティブインデックス３４が展開される。従って、メール出力部２２は、アクティブインデックス３４が検索装置３０に展開される場合に、一時的に記憶していた新着メールを更新部３１に出力するようになっている。
次に、更新部３１について説明する。更新部３１は、一時記憶装置２０から出力された新着メールを取得する。そして、更新部３１は、受信済みのメールに新たなデータとして新着メールを追加する場合に、ＲＡＭ３３に展開されたアクティブインデックス３４を、新着メールを反映させたアクティブインデックス３４に更新する。更新部３１により更新されたアクティブインデックス３４がインデックス記憶装置４０に退避されると、更新されたインデックス４１に上書きされる。
【００２６】
このように、更新部３１は、ＲＡＭ３３に展開されたアクティブインデックス３４を更新するが、上述したようにＲＡＭ３３に展開されるアクティブインデックス３４はログインしているユーザに対応するアクティブインデックス３４である。
従って、ユーザがログインしていない場合には、アクティブインデックス３４が更新されることはない。これは、ログインしていないユーザは検索を行わないため、ログインしていないユーザに対応するアクティブインデックス３４が更新されなくても、運用上は問題ないためである。また、更新部３１は、検索装置３０内に構成されているが、検索装置３０とは別の装置として構成するようにしてもよい。
【００２７】
図２は、管理ＤＢ１３とインデックスのデータ構造を示す図である。図２（Ａ）は、管理ＤＢ１３のデータ構造を示す図である。管理ＤＢ１３は、「ユーザＩＤ」、「展開／退避」、及び「割当先」で構成される。
このうち、「ユーザＩＤ」は上述したようにユーザを一意的に識別する識別情報である。管理ＤＢ１３は、この「ユーザＩＤ」に対応して「展開／退避」、及び「割当先」が設けられたデータベースである。
【００２８】
「展開／退避」は、「ユーザＩＤ」に対応するインデックス４１がアクティブインデックス３４として検索装置３０に展開されている場合には、「展開」を示し、「ユーザＩＤ」に対応するインデックス４１がアクティブインデックス３４として検索装置３０に展開されていない場合には、「退避」を示す。
「割当先」は、「ユーザＩＤ」に対応するインデックス４１を展開したり、検索する検索装置３０を示す。本実施形態では、「サーバＡ」などのように固定的に検索装置３０が割り当てられているが、検索装置３０のリソースや稼働状況などを鑑みて動的に割り当てるようにしてもよい。
【００２９】
この管理ＤＢ１３を参照して、管理装置１０は各種通知先などを認識することができる。具体的には、「ユーザＩＤ」が「ユーザＢ」のユーザがログインした場合には、「サーバＢ」の展開退避部３５にインデックス４１の展開を要求する展開要求を送信したり、メール出力部２２に、新着メールの出力先が「サーバＢ」であることを示すログイン通知を送信できる。
【００３０】
図２（Ｂ）（Ｃ）は、インデックス４１（アクティブインデックス３４）のデータ構造を示す図である。インデックス４１は、図２（Ｂ）に示されるメールデータ５０及び転置インデックス５１で構成される。
このうち、メールデータ５０は、「メールＩＤ」、「送信元」、「日時」、及び「文面」で構成される。「メールＩＤ」は、受信済みのメールを一意的に識別する識別情報である。図２（Ｂ）の場合、「０００１」と「０００２」の２つのメールＩＤが示されている。
「送信元」はメールの送信元を示す情報であり、例えばメールアドレスである。図２（Ｂ）の場合、「Ｘ」と「Ｙ」の２つのメールアドレスが示されている。「日時」は、メールの送信日時を示しyyyymmddhhmm形式で記憶される。図２（Ｂ）の場合、「メールＩＤ」が「０００１」のメールは、「２０１５年１月１日０時０分」に送信され、「メールＩＤ」が「０００２」のメールは、「２０１５年１月２日１４時３分」に送信されたことが示されている。
【００３１】
「文面」は、メール本文である。図２（Ｂ）の場合、「メールＩＤ」が「０００１」の文面が、「東京において電信の特許を…」であることを示している。「メールＩＤ」が「０００２」の文面が、「豊洲から有楽町に電話して…」であることを示している。
また、図２（Ｃ）に示される転置インデックス５１は、「単語」及び「メールＩＤ」で構成される。「単語」はメールの「文面」から取得されるもので、新たな単語が取得されるたびに追加される。「メールＩＤ」は、対応する「単語」を含む「文面」をもつメールの「メールＩＤ」である。
例えば、「メールＩＤ」が「０００１」の「文面」には、「電信」、「東京」、「特許」が含まれるため、単語「電信」、「東京」、「特許」の各々に対応して「０００１」が記憶されている。同様に、「メールＩＤ」が「０００２」の「文面」には、「豊洲」、「有楽町」、「電話」が含まれるため、単語「豊洲」、「有楽町」、「電話」の各々に対応して「０００２」が記憶されている。
この転置インデックス５１により、例えば「「電信」を含む」、という検索条件の場合には、検索部３２は、転置インデックス５１により条件に合致する条件合致データの「メールＩＤ」として「０００１」を検索でき、この「０００１」からメールを検索することができる。検索されたメールは、ユーザに検索結果として通知される。なお、上述したインデックス４１は、検索用データの一例であり、検索に用いられるデータであれば、他のデータ構造をもつインデックスであってもよい。
【００３２】
図３は、更新部３１における更新方法を示す図である。まず、図２（Ｂ）（Ｃ）に示したインデックス４１が、アクティブインデックス３４として検索装置３０に展開されているものとする。
この状態で、更新部３１が新着メール５２を取得すると、「文面」から「単語」を抽出する。この新着メール５２の「メールＩＤ」は「０８７６」であり、送信元は「ｚ」であり、「日時」は「２０１５年１１月５日２１時１３分」であり、「文面」が「豊洲から有楽町に電報を…」である。
この例の場合、「文面」から「豊洲」、「有楽町」、「電報」が「単語」として抽出されたとする。抽出された「単語」のうち、「豊洲」、「有楽町」は転置インデックス５１の「単語」に既にあり、「電報」は新規の「単語」である。
従って、更新部３１は、転置インデックス５３に示されるように、「豊洲」、「有楽町」に新着メールの「メールＩＤ」である「０８７６」を追加し、新たに「単語」として「電報」を追加し、その「電報」に対応して、「０８７６」を追加することで、転置インデックス５３を更新する。
【００３３】
図４は、ユーザ端末５０、管理装置１０、一時記憶装置２０、検索装置３０、及びインデックス記憶装置４０での処理を示すシーケンス図である。
まず、ユーザ端末５０は、管理装置１０にログイン要求を送信する（ステップＳ１）。管理装置１０は、ユーザ認証部１１によりユーザ認証を行う（ステップＳ２）。ここでは認証に成功したものとする。管理装置１０は、認証が成功すると、一時記憶装置２０にログイン通知を送信する（ステップＳ３）とともに、検索装置３０に展開要求を送信する（ステップＳ４）。
ログイン通知には、ログインしたユーザのユーザＩＤと、新着メールの出力先を示す情報が含まれる。また、展開要求には、ログインしたユーザのユーザＩＤが含まれる。
【００３４】
展開要求を受信した検索装置３０は、インデックス要求をインデックス装置４０に送信する（ステップＳ５）。インデックス要求を受信したインデックス記憶装置４０は、検索装置３０にインデックス通知を送信する（ステップＳ６）。このインデックス通知により、インデックス４１が検索装置３０に送信される。インデックス通知を受信した検索装置３０は、受信したインデックス４１をアクティブインデックス３４としてＲＡＭ３３に展開する（ステップＳ７）。
一方、管理装置１０からログイン通知を受信した一時記憶装置２０は、検索装置３０にメールを出力する（ステップＳ８）。メールを取得した検索装置３０は、アクティブインデックス３４を更新する更新処理を行う（ステップＳ９）。
【００３５】
次に、検索装置３０は、ユーザ端末５０からメールを検索するための検索条件が示された検索要求を受信すると（ステップＳ１０）、検索処理を行い（ステップＳ１１）、検索結果を示す検索結果通知をユーザ端末５０に送信する（ステップＳ１２）。
そして、ユーザ端末５０は、管理装置１０にログアウト要求を送信する（ステップＳ１３）。ログアウト要求を受信した管理装置１０は、一時記憶装置２０にログアウト通知を送信する（ステップＳ１４）。ログアウト通知には、ログアウトしたユーザのユーザＩＤが含まれる。
ログアウト通知を受信した一時記憶装置２０は、ログアウトしたユーザのユーザＩＤに対応するキュー２３を用意する（ステップＳ１５）。以後、ユーザがログインするまで、このユーザ宛の新着メールが記憶されることとなる。
【００３６】
また、管理装置１０は、検索装置３０に退避要求を送信する（ステップＳ１６）。退避要求には、ログアウトしたユーザのユーザＩＤが含まれる。退避要求を受信した検索装置３０は、インデックス通知をインデックス記憶装置４０に送信する（ステップＳ１７）。このインデックス通知により、ユーザＩＤに対応するインデックス４１がインデックス記憶装置４０に送信される。インデックス通知を受信したインデックス記憶装置４０は、受信したインデックス４１を記憶する（ステップＳ１８）。
また、検索装置３０は、インデックス通知を送信すると、送信したインデックス４１がアクティブインデックス３４として記憶されていたＲＡＭ３３の記憶領域を解放する（ステップＳ１９）。
【００３７】
次に、各装置での処理について説明する。図５は、管理装置１０における処理手順を示したフローチャートである。
管理装置１０は、ログイン要求を受信すると（ステップＳ１０１）、ユーザ認証部１１によりユーザ認証を行う（ステップＳ１０２）。次いで管理装置１０は、ユーザ認証の結果、認証に成功したか否か判定する（ステップＳ１０３）。すわなち、ステップＳ１０３では、検索する可能性が発生したか否かを判定する。
【００３８】
認証に失敗した場合には（ステップＳ１０３；ＮＯ）、ステップＳ１０１に戻る。認証に成功した場合には（ステップＳ１０３；ＹＥＳ）、一時記憶装置２０にログイン通知を送信する（ステップＳ１０４）とともに、検索装置３０に展開要求を送信する（ステップＳ１０５）。すなわち、ステップＳ１０５では、検索する可能性が発生したと判定された場合に、ユーザＩＤの各々に対応したインデックス４１が記憶されたインデックス記憶装置４０から、ログインしたユーザのユーザＩＤに対応するインデックス４１を検索装置３０に展開させる。
次いで管理装置１０は、ユーザ端末５０からログアウト要求を受信すると（ステップＳ１０６；ＹＥＳ）、一時記憶装置２０にログアウト通知を送信する（ステップＳ１０７）。そして、管理装置１０は、検索装置３０に退避要求を送信して（ステップＳ１０８）、本処理を終了する。すなわち、ステップＳ１０６では、検索する可能性が消滅したか否かを判定し、ステップＳ１０８では、検索装置３０に展開されたアクティブインデックス３４をインデックス記憶装置４０に退避させる。
【００３９】
図６は、一時記憶装置２０における処理手順を示したフローチャートである。一時記憶装置２０は、管理装置１０からログイン通知を受信したか否か判定する（ステップＳ２０１）。ログイン通知を受信した場合には（ステップＳ２０１；ＹＥＳ）、メール出力部２２は、ログイン通知に示されるユーザＩＤに対応するキュー２３に記憶されている新着メールを検索装置３０に出力し、ユーザＩＤに対応するキュー２３を削除する（ステップＳ２０５）。そして、一時記憶装置２０は、ログインしたユーザのユーザＩＤに対応する展開フラグをオンにして（ステップＳ２０６）、ステップＳ２０１に戻る。
この展開フラグとは、ユーザＩＤに対応するインデックス４１がアクティブインデックス３４として、検索装置３０に展開されているか否かを示すもので、展開されている場合にはオンとなり、展開されていない場合にはオフとなる。
【００４０】
ステップＳ２０１に戻り、ログイン通知を受信していない場合には（ステップＳ２０１；ＮＯ）、メール受信部２１が新着メールを受信したか否か判定する（ステップＳ２０２）。
メール受信部２１が新着メールを受信した場合には（ステップＳ２０２；ＹＥＳ）、一時記憶装置２０は、新着メールの宛先のユーザのユーザＩＤに対応する展開フラグがオンか否か判定する（ステップＳ２０３）。
展開フラグがオフの場合には（ステップＳ２０３；ＮＯ）、ユーザＩＤに対応するアクティブインデックス３４が検索装置３０に展開されていないので、メール受信部２１は新着メールをキュー２３に記憶して（ステップＳ２０７）、ステップＳ２０１に戻る。
【００４１】
ステップＳ２０３に戻り、展開フラグがオンの場合には（ステップＳ２０３；ＹＥＳ）、ユーザＩＤに対応するアクティブインデックス３４が検索装置３０に展開されているので、メール受信部２１はメール出力部２２に新着メールを出力することで、メール出力部２２が新着メールを検索装置３０に出力する（ステップＳ２０４）。
ステップＳ２０２に戻り、メール受信部２１が新着メールを受信していない場合には（ステップＳ２０２；ＮＯ）、管理装置１０からログアウト通知を受信したか否か判定する（ステップＳ２０８）。ログアウト通知を受信していない場合には（ステップＳ２０８；ＮＯ）、ステップＳ２０１に戻る。
ログアウト通知を受信した場合には（ステップＳ２０８；ＹＥＳ）、一時記憶装置２０は、ログアウトしたユーザのユーザＩＤに対応する展開フラグをオフにして（ステップＳ２０９）、ユーザＩＤに対応するキュー２３を用意して（ステップＳ２１０）、ステップＳ２０１に戻る。
【００４２】
図７は、検索装置３０における処理手順を示したフローチャートである。検索装置３０は、管理装置１０から展開要求を受信したか否か判定する（ステップＳ３０１）。展開要求を受信した場合には（ステップＳ３０１；ＹＥＳ）、検索装置３０は、ユーザＩＤを含むインデックス要求をインデックス装置４０に送信して（ステップＳ３０６）、ステップＳ３０１に戻る。
展開要求を受信していない場合には（ステップＳ３０１；ＮＯ）、検索装置３０は、インデックス記憶装置４０からインデックス通知を受信したか否か判定する（ステップＳ３０２）。インデックス通知を受信した場合には（ステップＳ３０２；ＹＥＳ）、展開退避部３５は、受信したインデックス４１をアクティブインデックス３４としてＲＡＭ３３に展開する（ステップＳ３０３）。
【００４３】
次いで、更新部３１は、一時記憶装置２０からキュー２３に記憶されていた新着メールを取得済みか否か判定する（ステップＳ３０４）。新着メールを取得済みでない場合には（ステップＳ３０４；ＮＯ）、ステップＳ３０１に戻る。新着メールを取得済みの場合には（ステップＳ３０４；ＹＥＳ）、更新部３１は、図３で説明した更新処理を行い（ステップＳ３０５）、ステップＳ３０１に戻る。
ステップＳ３０２に戻り、インデックス通知を受信していない場合には（ステップＳ３０２；ＮＯ）、更新部３１は、新着メールを取得したか否か判定する（ステップＳ３０７）。新着メールは、ＲＡＭ３３にアクティブインデックス３４が展開されているときに一時記憶装置２０から出力されるので、新着メールを取得した場合には（ステップＳ３０７；ＹＥＳ）、更新部３１は、上述した更新処理を行い（ステップＳ３０５）、ステップＳ３０１に戻る。
【００４４】
新着メールを受信していない場合には（ステップＳ３０７；ＮＯ）、検索部３２は、ユーザ端末５０から検索要求を受信したか否か判定する（ステップＳ３０８）。検索要求を受信した場合には（ステップＳ３０８；ＹＥＳ）、検索部３２は、検索処理を行い（ステップＳ３０９）、検索結果通知をユーザ端末５０に送信して（ステップＳ３１０）、ステップＳ３０１に戻る。
ステップＳ３０８に戻り、検索要求を受信していない場合には（ステップＳ３０８；ＮＯ）、展開退避部３５は、管理装置１０から退避要求を受信したか否か判定する（ステップＳ３１１）。退避要求を受信していない場合には（ステップＳ３１１；ＮＯ）、ステップＳ３０１に戻る。
【００４５】
退避要求を受信した場合には（ステップＳ３０８；ＹＥＳ）、展開退避部３５は、ユーザＩＤとインデックス４１を含むインデックス通知をインデックス記憶装置４０に送信する（ステップＳ３１３）。次いで、展開退避部３５は、送信したインデックス４１がアクティブインデックス３４として記憶されていたＲＡＭ３３の領域を解放して（ステップＳ３１３）、ステップＳ３０１に戻る。
【００４６】
図８は、インデックス記憶装置４０における処理手順を示したフローチャートである。インデックス記憶装置４０は、検索装置３０からインデックス要求を受信したか否か判定する（ステップＳ４０１）。インデックス要求を受信した場合には（ステップＳ４０１；ＹＥＳ）、インデックス記憶装置４０は、インデックス要求に含まれるユーザＩＤに対応するインデックス４１を取得し（ステップＳ４０４）、検索装置３０にインデックス通知を送信し（ステップＳ４０５）、ステップＳ４０１に戻る。このインデックス通知により、インデックス４１が検索装置３０に送信される。
ステップＳ４０１に戻り、インデックス要求を受信していない場合には（ステップＳ４０１；ＮＯ）、インデックス記憶装置４０は、検索装置３０からインデックス通知を受信したか否か判定する（ステップＳ４０２）。
インデックス通知を受信していない場合には（ステップＳ４０２；ＮＯ）、ステップＳ４０１に戻る。インデックス通知を受信した場合には（ステップＳ４０２；ＹＥＳ）、インデックス記憶装置４０は、受信したインデックス４１をＨＤＤ４２に記憶して（ステップＳ４０３）、ステップＳ４０１に戻る。
【００４７】
以上説明した実施形態では、メールサービスの全ユーザ数と比較して少ない人数であるログインしたユーザに対応するインデックスのみをＲＡＭ３３に展開することにより、ＲＡＭ３３の容量を削減できるようになっている。従って、全ユーザ数ではなく、ログインするユーザ数を想定してＲＡＭ３３の容量を設計できるので、本実施形態ではインデックスを展開するために必要なメモリの容量を抑制できる。これは、ＲＡＭ３３に要するコストを抑制することも意味する。
従って、従来のようにメールサービスの全ユーザ数で設計されたメールサービスに本実施形態を適用することにより、そのまま同じＲＡＭ３３の容量で全ユーザ数を大幅に増加させたメールサービスを提供できることとなる。逆に表現すると、全ユーザ数がそのままの場合には、本実施形態を適用することにより、ＲＡＭの容量を大幅に削減できる。
【００４８】
さらに、キュー２３を設けることにより、インデックスの更新により生じるレイテンシを大幅に改善できる。具体的に説明すると、新着メールの受信は、ユーザがログインしている時間に限らず常時発生する可能性があるため、キュー２３を設けない構成の場合には、新着メールを受信するたびにインデックスをＲＡＭ３３に展開し、上述した更新処理を行い、再び退避させる処理を実行することから、これら展開・更新・退避処理により生じるレイテンシは無視できるものではない。
そこで、キュー２３を設け、ログインしていないユーザ宛の新着メールをキュー２３に記憶することにより、ユーザがログインしていない場合に発生する展開・更新・退避処理の実行が不要となることから、上記レイテンシを大幅に改善できる。
【００４９】
以上説明した実施形態では、Ｗｅｂブラウザで電子メールをやり取り可能なメールサービスを例に説明したが、Ｗｅｂブラウザによる動作はＷｅｂブラウザ以外のアプリケーションでも実行可能であるため、Ｗｅｂブラウザに代えて、ユーザ端末上で動作するアプリケーションや、クラウド上で動作するアプリケーションによるメールサービスにも適用可能である。
さらに、メールサービスに限らず、ＳＮＳ（Social Networking Service）において、他のユーザが投稿した内容を新着メールに対応させ、投稿済みの内容を受信済みのメールに対応されることで、本実施形態に係る処理を適用できる。この場合の属性情報は、一般的にはユーザＩＤやメールアドレスなどとなる。また、ＳＭＳ（Short Message Service）においても、他のユーザが送信したショートメールを新着メールに対応させ、受信済みのショートメールに対応されることで、本実施形態に係る処理を適用できる。この場合の属性情報も、一般的にはユーザＩＤやメールアドレスなどとなる。
さらに、全ユーザ数と比較して、ログインするユーザが少ない一般的なシステムについても、本実施形態を適用可能である。
【００５０】
なお、本実施形態では、ユーザのログインにより、条件合致データを検索する可能性が発生したと判定し、ユーザのログアウトにより、条件合致データを検索する可能性が消滅したと判定するが、条件合致データを検索する可能性があるという意思を示すデータの入力により、条件合致データを検索する可能性が発生したと判定し、条件合致データを検索する可能性がないという意思を示すデータの入力により、条件合致データを検索する可能性が消滅したと判定してもよい。
【００５１】
上述した実施形態における管理装置１０の処理をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＦＰＧＡ（Field Programmable Gate Array）等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【００５２】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００５３】
１０  管理装置、１１  ユーザ認証部、１２  通知部、１３  管理ＤＢ
２０  一時記憶装置、２１  メール受信部、２２  メール出力部、２３  キュー
３０  検索装置、３１  更新部、３２  検索部、３３  ＲＡＭ
３４  アクティブインデックス、３５  展開退避部、４０  インデックス記憶装置
４１  インデックス、４２  ＨＤＤ
【図１】
0006558928.tif 000002
【図２】
0006558928.tif 000003
【図３】
0006558928.tif 000004
【図４】
0006558928.tif 000005
【図５】
0006558928.tif 000006
【図６】
0006558928.tif 000007
【図７】
0006558928.tif 000008
【図８】
0006558928.tif 000009