(57)【要約】【課題】  クエリ処理およびインデックス付与処理を用いて検索可能なインデックスが作成する。【解決手段】  クエリ処理は、インデックス付与処理と協働して、ある特定の検索範囲内に位置するアイテムのカタログを作成する。以前にインデックス化したアイテムを評価して、そのアイテムのインデックスが最新であるようにする。古くなったアイテムは、更新すべき不確かなインデックスを有する。特定の検索範囲内でインデックス化されるアイテムは、処理のためいくつかのバッチにグループ別けされる。インデックス付与処理を継続しながら部分的にインデックス化された検索範囲が使用可能となるように、各バッチの処理が完了するのに伴い、それぞれのインデックス付与の結果が利用可能になる。インデックス付与の結果が少しずつ継続して出てくるので、インデックス付与処理の完了を待たずにインデックス付与の結果をユーザが処理および／または観察することが可能となる。【選択図】      図５
2006107434.tif 000002
【特許請求の範囲】
【請求項１】
クエリに応じて所定範囲内に位置するアイテムにインデックスを付与する方法であって、
前記クエリを受信すること、
前記クエリに関連するインデックスを前記所定範囲内で点検すること、
前記所定範囲内の前記アイテムの一部が以前にインデックスを付与されており、前記アイテムが最終インデックス付与以後変更されていないとき、一部の結果を回収すること、
前記アイテムが最終インデックス付与以後変更されているとき、アイテムをバッチ処理に割当てること、
前記アイテムがインデックスを付与されていないとき、前記アイテムをバッチ処理に割当てること、および
バッチ処理に割当てられているアイテムについてのバッチインデックス付与を初期化すること、および
完了しているバッチ処理についてのバッチ結果を回収すること、
を備えたことを特徴とする方法。
【請求項２】
前記所定範囲内の前記アイテムの全てが以前にインデックスを付与されており、前記アイテムが最終インデックス付与以後変更されていないとき、全部の結果を回収すること、をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
少なくとも１つのバッチ処理のインデックス付与が完了する前に、前記一部の結果を表示することをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項４】
前記バッチ処理がインデックス付与を完了したとき、対応するバッチ結果を表示することをさらに備えたことを特徴とする請求項３に記載の方法。
【請求項５】
前記所定範囲内に位置するインデックスを付与するアイテムに関するインデックスを点検することは、
前記所定範囲を識別すること、前記所定範囲内に見出される前記アイテムのカタログを作成すること、および前記所定範囲と共に見出される各アイテムに関しインデックス付与状況を判定することを備えたことを特徴とする請求項１に記載の方法。
【請求項６】
前記インデックス付与状況を判定することは、前記アイテムに関連するタイムスタンプを評価すること、前記アイテムに関連するバージョン番号を評価すること、前記アイテムの以前のインデックス付与に関連するタイムスタンプを評価すること、および前記アイテムの以前のインデックス付与に関連するバージョン番号を評価すること、のうちの少なくとも１つを備えたことを特徴とする請求項１に記載の方法。
【請求項７】
クエリに応じて、所定範囲内に位置するアイテムにインデックスを付与する方法であって、
前記クエリを受信すること、
前記クエリに関連する所定範囲を識別すること、
前記所定範囲内の前記アイテムのインデックス付与に関連する状態を評価すること、
以前にインデックスを付与されていないアイテムを処理するバッチにグループ別けすること、
インデックスを付与されていて現在古くなっている追加のアイテムを処理するバッチにグループ別けすること、
前記処理するバッチについてのインデックス付与処理を初期化すること、
前記所定範囲内の前記アイテムに関する更新されたインデックス付与結果を回収すること、および
前記所定範囲内の古くなっているアイテムについてのインデックス付与結果を、前記処理するバッチの各々がインデックス付与処理を完了次第、回収すること
を備えたことを特徴とする方法。
【請求項８】
前記処理バッチの各々は、関連付けされたバッチ識別子を有し、前記インデックス付与の結果は、前記バッチ識別子を参照することを特徴とする請求項７に記載の方法。
【請求項９】
前記クエリの各々は、関連付けされたクエリ識別子を有し、前記インデックス付与結果の各々は、前記クエリ識別子を参照することを特徴とする請求項７に記載の方法。
【請求項１０】
クエリに応じて、所定範囲内に位置するアイテムにインデックスを付与するシステムであって、
前記クエリを受信し、前記クエリを評価し、前記クエリに関連するインデックス付与を要求し、および前記クエリに関連するインデックス付与結果を回収するように配置されるクエリ処理、および
前記クエリ処理と通信するように配置されるインデックス処理であって、
前記クエリに関連するインデックス付与に関する要求を受信し、前記所定範囲内で前記クエリに関連する状態を評価し、前記所定範囲内で見出される以前にインデックス化されたアイテムに関するインデックス結果を提供し、前記所定範囲内に見出されるアイテムのインデックス付与を初期化し、および前記グループのアイテムについてのインデックス付与を完了し、他のアイテムへのインデックス付与を継続しながら、インデックス付与の結果を前記クエリ処理に継続的に報告するインデックス処理
を備えたことを特徴とするシステム。
【請求項１１】
前記クエリに関連するインデックス結果は、データストアに格納されることを特徴とする請求項１０に記載のシステム。
【請求項１２】
インデックス付与されたアイテムに関する状態、前記インデックス付与されたアイテムに関するタイムスタンプ、前記インデックス付与されたアイテムに関するバージョン番号、前記アイテムに関するタイムスタンプ、および前記アイテムに関するバージョン番号の少なくとも１つを識別するデータ構造体によって組織される情報を含むデータストアをさらに備えたことを特徴とする請求項１０に記載のシステム。
【請求項１３】
前記インデックス処理は、前記クエリに関連する前記インデックス結果を格納するように配置されるデータストアを含むことを特徴とする請求項１０に記載のシステム。
【請求項１４】
前記インデックス処理は、前記インデックス付与されたアイテムに関する状態、前記インデックス付与されたアイテムに関するタイムスタンプ、前記インデックス付与されたアイテムに関するバージョン番号、前記アイテムに関するタイムスタンプ、および前記アイテムに関するバージョン番号の少なくとも１つを識別するデータ構造体によって組織される情報を含むデータストア含むことを特徴とする請求項１０に記載のシステム。
【請求項１５】
前記インデックス処理は、前記インデックス付与処理によりインデックス化される前記アイテムの前記グループについてインデックス付与機能を初期化するように配置されるインデックスサービスを含むことを特徴とする請求項１０に記載のシステム。
【請求項１６】
前記クエリ処理は、前記クエリに関する通知をクエリ識別子によって登録し、前記クエリ識別子を参照するインデックス付与の完了が通知されることを特徴とする請求項１０に記載のシステム。
【請求項１７】
前記クエリ処理は、前記クエリ識別子を参照するインデックス付与の完了の通知を受信した後のインデックス処理の結果を要求することを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記クエリ処理は、前記クエリに関する通知を登録すること、
前記インデックス処理は、前記クエリに応じてインデックス化されるアイテムのグループに対するバッチ識別子を割当てること、および
前記インデックス処理は、前記バッチ識別子を参照するある特定のバッチのインデックス付与が完了したときに前記クエリ処理に通知することを特徴とする請求項１０に記載のシステム。
【請求項１９】
前記クエリ処理は、前記バッチ識別子を参照する特定のバッチのインデックス付与の完了の通知を受信した後のインデックス処理の結果を要求することを特徴とする請求項１８に記載のシステム。
【請求項２０】
コンピューティング装置によって実行されたときにクエリに応じて所定範囲内に位置したアイテムにインデックス付与する方法を実行するコンピュータで実行可能な命令を含むコンピュータ可読媒体であって、該方法は、
前記所定範囲内でクエリを初期化すること、
前記クエリに応答して、前記所定範囲により境界が定まり次第、インデックス付与を要求すること、
前記所定範囲により境界の定まるアイテムのインデックス付与に関連する状態を点検すること、
前記状態点検に基づいて、前記所定範囲内のアイテムに関連する最新のインデックスの結果を回収すること、
前記状態点検に基づく古くなったアイテム、およびインデックス化されていないアイテムのうち少なくとも１つのアイテムに関連するインデックス付与のためのバッチを作成すること、
前記バッチにインデックスを付与すること、および
前記バッチのインデックス付与を継続しながら、完了したインデックス化されたバッチの結果を回収すること
を含むことを特徴とするコンピュータ可読媒体。
【請求項２１】
前記方法は、ヒューリスティックを適用して、前記バッチの各々の中に
適切なグループを決定することをさらに含むことを特徴とする請求項２０に記載のコンピュータ可読媒体。
【請求項２２】
前記方法は、前記バッチの各々の中のアイテム数を減少させて、インデックス付与に関連する優先度レベルを増加することをさらに含むことを特徴とする請求項２０に記載のコンピュータ可読媒体。
【請求項２３】
前記方法は、少なくとも１つの優先的な待ち行列の中のバッチに関連するアイテムを廃棄することをさらに含むことを特徴とする請求項２０に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クエリ処理及びインデックス付与処理により作成される検索可能なインデックスに関するものである。
【背景技術】
【０００２】
インデックス付与サービスは、コンピュータ上で使用して、検索可能な情報に対してカタログ、又は「インデックス」を作成することができる。この情報は典型的に、コンピュータのファイルシステム上のファイル、及びこれらファイル中にあるテキストに対する照会を含む。例えば、ファイルパスを含む文書名により識別されるワードプロセシング文書、及び対応するワードプロセシング文書のコンテンツから抽出される検索可能なテキストのインデックスを作成することができる。インデックスを作成した後、ユーザは、検索結果を検討して、指定のキー検索用語を含むワードプロセシング文書を発見することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、ユーザに検索可能なインデックスを作成する方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【０００４】
簡単に言うと、本発明の実施例は、クエリ処理及びインデックス付与処理により作成される検索可能なインデックスに関する。クエリ処理は、インデックス付与処理と連携して、指定検索範囲内にあるアイテムのカタログを作成する。以前にインデックス化されたアイテムを評価して、これらのインデックスが更新されていることを確認する。古くなったアイテムには、更新が必要な、信頼できないインデックスがついている。指定検索範囲内のインデックス化すべきアイテムは、処理のためのバッチにグループ化する。各バッチの処理が完了すると、それぞれのインデックス付与結果は、インデックス付与処理が継続中であっても、部分的にインデックス化された検索範囲が利用することができるようになる。インデックス付与結果は、検索の継続中に少しずつ出てくるので、ユーザは、インデックス付与処理が全て完了するのを待つことなく、インデックス付与結果を処理及び／又は閲覧することができる。
【０００５】
本発明の一態様により、検索可能なインデックスは、検索の進行中にユーザが検索結果を継続して受取り及び／又は閲覧することができるように、互いに連携するクエリ処理とインデックス付与サービスを使用して作成される。これによりユーザは、インデックス付与処理が完了する前に、部分的検索結果を閲覧することができる。データストアを使用して、検索結果及びその他の関連情報を保持するテーブルなどの構造体を作成及び更新することができる。
【０００６】
本発明の別の態様により、クエリ処理は、ユーザ選択範囲にかかるインデックス化すべきアイテムすべてを点検し、現在インデックス化されているアイテムの何れが更新されたものかを判定する。このクエリ処理は、続いてインデックス付与サービスに対し、ユーザ選択範囲を移動してインデックスを作成するよう通知することができる。
【０００７】
本発明のさらに別の態様により、インデックス付与サービスは、報告される部分的検索結果の頻度が不必要な遅延を最小にするように、アイテムのバッチ処理グループに配置される。このバッチ処理グループは、優先規則、グループ内アイテム間の論理関係、又は他の一連の規則により選択してよい。ユーザは、全てのバッチの完了に先立って検索を終了してもよい。インデックス付与サービスは、継続中のインデックス付与のバックグランド処理により、ユーザ経験が損なわれることのないよう、残りのアイテムのインデックス付与を低い優先度で継続するように構成してよい。
【発明の効果】
【０００８】
ユーザに検索可能なインデックスを作成する方法及びシステムを提供することができる。
【発明を実施するための最良の形態】
【０００９】
本発明及びその改良については、以下に簡単に要約する添付図面、本発明の具体的実施例に関する以下の詳細記述、及び添付特許請求の範囲を参照することにより、さらに完全に理解することができる。
【００１０】
図面を参照して、本発明の実施例を詳細に記述する。図面において、いくつかの図を通して使用する類似の参照番号は類似の部分及び集合を表す。各種実施例に対する言及は本発明の範囲を限定するものではなく、本発明の範囲は、ここに添付する特許請求の範囲によってのみ限定される。ここに記述する例の多くが、ファイルシステム及びファイルシステムの検索可能なインデックス付与に言及するが、そのインデックス付与方法はファイルシステムに限定されない。詳述するインデックス付与システム及び方法は、これらに限らないが、電子メールアプリケーション、データベース、予定管理ソフト、ヘルプシステム、ファイルサービス、ウェブコンテンツサーバ、ウェブペイジホストサービス、及び広く検索ツールを含むインデックス付与サービスの利益を受ける任意の別のアプリケーションプログラム、データベース、サービス又はシステムに対し、等しく適用することができる。本明細書で説明する例は、限定することを意図するものではなく、特許請求した発明に関する多くの可能な実施例のいくつかを単に説明するのみである。
［具体的作動環境］
図１を参照すると、本発明を実施するための具体的システムは、コンピューティングデバイス１００などの、コンピューティングデバイスを含む。極めて基本的な構成において、コンピューティングデバイス１００は、典型的に少なくとも１つの処理ユニット１０２及びシステムメモリ１０４を含む。詳しい構成及びコンピューティングデバイスの型によっては、システムメモリ１０４は、揮発性（RAM等）、不揮発性（ROM、フラッシュメモリ等）、又は、これら２つの何らかの組合せでよい。システムメモリ１０４は、典型的に、オペレーティングシステム１０５、１つ又は複数のアプリケーション１０６を含み、プログラムデータ１０７を含んでもよい。一実施例において、アプリケーション１０６は、検索ツール、クエリ処理、インデックスサービス、電子メールアプリケーションプログラム、予定管理ソフト、データベースプログラム、ファイルシステムサービス、又は他のサービス、処理又はプログラム１２０などのユーザインターフェイスを含んでもよい。この基本構成は、これら構成部品を点線１０８で囲んで図１に示してある。
【００１１】
コンピューティングデバイス１００には、追加の特徴、又は機能性を持たせてもよい。例えば、コンピューティングデバイス１００は、例えば、磁気ディスク、光ディスク、又はテープのような追加データメモリストレージデバイス（リムーバブル及び／又は非リムーバブル）をも含んでもよい。このような追加ストレージを、リムーバブルストレージ１０９及び非リムーバブルストレージ１１０により、図１に示す。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータのような情報ストレージのための任意の方法又は技術により実施される、揮発性及び不揮発性、リムーバブル及び非リムーバブルの媒体を含む。システムメモリ１０４、リムーバブルストレージ１０９及び非リムーバブルストレージ１１０は全て、コンピュータストレージ媒体の例である。コンピュータストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、又はその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル揮発性ディスク（ＤＶＤ）又はその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、又はその他の磁気ストレージデバイス、又は所望の情報の格納に使用することが可能で、コンピューティングデバイス１００がアクセスすることのできる任意のその他の媒体を含んでもよいが、これらには限定されない。任意のこのようなコンピュータストレージ媒体は、デバイス１００の一部であってもよい。コンピューティングデバイス１００はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置等の入力装置１１２（単数又は複数）を含んでもよい。ディスプレイ、スピーカ、プリンタ等の出力装置１１４（単数又は複数）を含んでもよい。
【００１２】
コンピューティングデバイス１００は、装置が他のコンピューティングデバイス１１８と、ネットワーク等を通して通信することのできる通信接続１１６を含んでもよい。通信接続１１６は、通信媒体の一例である。通信媒体は、典型的に、コンピュータ可読命令、データ構造、プログラムモジュール、又は搬送波又は他の輸送機構のような変調データ信号中のデータにより具現され、任意の情報配送媒体を含む。用語「変調データ信号」は、その特性の１つ又は複数が、信号中の情報をコード化するように設定又は変更される信号を意味する。例として、これに限定するものではないが、通信媒体には、有線ネットワーク又は直接有線接続等の有線媒体、及び音響，ＲＦ、赤外線及びその他の無線媒体などの無線媒体が含まれる。ここで使用する「コンピュータ可読媒体」という用語は、ストレージ媒体及び通信媒体の双方を含む。
［クエリシステム］
図２は、本発明の実施例のうちの少なくとも１つで配置されるクエリシステムを示す。最も単純な実施例において、システムは、クエリ処理とインデックス処理を配置する。インデックス処理は、論理的にデータストアとインデックスサービスに分割される。一実施例において、データストアとインデックス付与サービスは、単一のプログラムモジュール内に位置する論理パーティションである。他の実施例において、データストアとインデックス付与サービスは、単一のコンピューティングデバイス上の別個のモジュール内に位置する。さらに別の実施例において、データストアとインデックス付与サービスは、別個のコンピューティングデバイス上の別個のモジュール内に位置する。さらに別の実施において、データストアとインデックス付与サービスは、同一の物理コンピューティングデバイス内で、クライアントとホストなどのような異なる仮想マシン上に位置する。
【００１３】
クエリ処理は、インデックス要求２０１を、ユーザインターフェイスか又はユーザが構成可能な何か別の構成を通じて、ユーザから受取る。クエリ処理は、インデックス要求２０１を処理して、データストアと交信して（例えば、要求２０２を通してデータを取出す）、インデックス要求内のアイテム全部が現在インデックス化され更新されているか否かを判定する。インデックス要求が、現在更新されていない場合、クエリ処理は、インデックス付与サービスに通知し、通知２０３を通じて識別したインデックス要求のインデックス付与を開始する。クエリ処理は、データストアと通信して、初期結果２０４を回収する。これは既にインデックス化されており更新されている。初期結果２０４は、クエリ処理が受取り、データ２０５としてユーザに返される。このデータは、取出してグラフィカルディスプレイのようなユーザインターフェイス上に表示することができる。
【００１４】
データストアからの現在インデックス化されているアイテムが、インデックス要求の全範囲について不完全である場合は、追加のインデックス付与を実行しなければならない。この場合、インデックス付与サービスは、未だインデックス化されていない（又は古い）アイテムを列挙し、残りのアイテム毎にインデックス付与を初期化する。インデックス付与サービスはバッチ処理を使用して、残りのアイテムをグループに分けて、アイテム全部がインデックス化されるまで部分的インデックス付与結果を取出すことができるようにする。インデックス付与サービスは、インデックス付与結果２０６が完成するとそれをデータストアに通信し、各バッチが完了するとクエリ処理に通知２０７を送信する。クエリ処理は、バッチ完了の通知を受取った後、バッチインデックス結果２０８をデータストアから取出す。クエリ処理は、バッチ処理結果をデータ２０９としてユーザに返す。これも取出してユーザインターフェイス上に表示することができる。バッチのインデックス付与は、バッチ全部が処理されるまで、又はインデックス付与処理が終了するまで継続される。
【００１５】
クエリは、他の従来の方法による実装と比較して、インデックスをより迅速に検索可能／閲覧可能となる。インデックスは、（例えば、バックグランド処理において）残りのインデックス付与が継続している間に部分的にインデックス化された結果を表示するように、動的に作成される。以前にインデックス化された文書に関するクエリ結果は再利用され、上述の追加のインデックス付与方法が補充される。
【００１６】
インデックス付与処理は、典型的に、クライアントマシン上で実行されるように構成される。クライアントマシンは、各種目的のためクライアント及びホスト／サーバとして機能する仮想マシンとして作動するよう構成してもよい。インデックス化されるアイテムは、物理的にクライアントマシン上、ホストマシン上（クライアントと同一マシンか又は異なるマシンのいずれか）及び／又は１つ又は複数のネットワークシステム（例えば、ＬＡＮ、ＷＡＮ、ＵＷＡＮなど）に亘って位置するようにしてもよい。インデックス化することのできるアイテムは、任意のデータ、文書、実行可能プログラム、又は検索可能なシステム内に存在するその他の任意の情報を含むことができる。例示のアイテムには、プログラムオブジェクト、マクロ、スクリプト、ワードプロセシング文書、テキスト文書、表計算文書、グラフィック画像、データファイル、コンタクトデータベース、又はシステム上に存在する、他の任意の適切な形に記憶された情報が含まれる。
【００１７】
クエリ処理に対するインデックス付与クエリは、検索可能空間（例えば、ファイルシステムの一部、ユーザの電子メール、グループプロジェクト作業空間等）の限定部分が、特定のクエリの検索対象になるように範囲を指定してもよい。インデックス付与処理の効率は、１度に１つの文書を扱うよりもバッチインデックス付与を実行することにより改善される。バッチのサイズは、インデックス付与結果の出力が頻繁でユーザ体験全体を改善するように調節することができる。各バッチの結果は、クエリ処理に返される。この処理は、選択範囲に関してインデックスが更新されるまで継続される。データストアは、指定の範囲内のアイテムをインデックス付与のキータームに対し関連付ける情報を格納することのできる、データベース、テーブルのようなデータ構造、又は任意の他の適切な機構を含むことができる。一般的に、データストアは、指定範囲内のアイテムに対する変更を追跡する永続的キューを含む任意のデータ構造とすることができる。
【００１８】
［典型的処理順序］
図３は、本発明の実施例のうちの少なくとも１つで配置されるさらに別の具体的なクエリインデックス付与システムにおける処理フローを示す図である。具体的な処理フローは、３つの論理処理部、即ち、ユーザインターフェイス、クエリ処理、及びインデックス処理に分割される。具体実施例において、クエリ処理、インデックス処理、及びユーザインターフェイスは、単一のモジュールに結合しても、又はさらに論理パーティションに分割してもよい。
【００１９】
図３に示す具体例の処理フローは、２つの別個の指定範囲（範囲１、及び範囲２）を有する２つのクエリを含む。最初に、インデックス付与クエリが、検索エンジンのようなユーザインターフェイスを通じて初期化される。各インデックス付与クエリは、検索の「範囲」として指定される限られた検索領域（例えば、ファイルシステムの特定部分、ユーザアクセス領域な等）を有する。
【００２０】
最初の例において、インデックス付与クエリ（クエリ１初期化）がユーザインターフェイスからクエリ処理に対して通信される。この場合インデックス付与クエリは、検索範囲１の制限を受ける。クエリ処理は、次に、指定検索範囲（範囲１）全体に亘る要求からの検索用語（例えば、テキスト文字列）を使用して、インデックスの要求（インデックス要求）をインデックス処理に送信する。インデックス処理は、指定範囲（範囲１）内のクエリ（クエリ１）のための既存のインデックスを点検する（インデックス点検）。この最初の例に関しては、クエリ（クエリ１）に含まれていた検索用語（又はキー条件）は、選択範囲内で（範囲１）完全にインデックスされ、このインデックス処理は完全な検索結果（完全結果）をクエリ処理に返す。クエリ処理は、今度はインデックス付与結果を表示する（結果表示）ことができるユーザインターフェイスに送信する。
【００２１】
第２の例において、第２インデックス付与クエリ（クエリ２初期化）がユーザインターフェイスからクエリ処理に通信され、第２インデック付与スクエリは、検索範囲２の制限を受ける。クエリ処理は、この場合も、指定検索範囲（今度は範囲２）全体に亘る要求からの検索用語（例えば、テキスト文字列）を使用して、インデックスの要求（インデックス要求）を、インデックス処理に送信する。インデックス処理は、指定範囲（範囲２）内のクエリ（クエリ２）のための既存のインデックスを点検する（インデックス点検）。この２番目の例に関しては、クエリ（クエリ２）に含まれていた検索用語（又はキー条件）は、選択範囲内で（範囲２）完全にはインデックス化されないので、インデックス処理は部分的な検索結果（部分的結果）をクエリ処理に返す。クエリ処理は、次に部分的インデックス付与結果を表示するためユーザインターフェイスに送信する（部分的結果表示）。部分的結果は、それ以前のインデックス付与処理からの以前にインデックス化されたアイテムに相当する。インデックス付与結果が完全ではないことを認識して、インデックス処理は、バッチインデックス付与プロシージャを初期化し、選択範囲内（範囲２）の残りのアイテムのインデックス付与を行なう。一般論として、バッチプロシージャは、残りのアイテムに規則を適用して、これらアイテムにインデックス付与するためにグループを作成する。具体的なバッチプロシージャについては、後に詳細を記述する。インデックスの各バッチが完了すると、バッチ結果（例えば、バッチ１結果、バッチ２結果、・・・、バッチＮ結果）が、クエリ処理に報告される。バッチ結果を受取る毎に、ユーザインターフェイス上の表示（該当するとき）は更新されて、追加してインデックス化されたアイテムを表示する。
【００２２】
［詳細な具体的処理順序］
図４は、本発明の実施例のうち少なくとも１つで配置されるさらに別の具体的なクエリインデックス付与システムにおける処理フローの概略図である。具体的な処理フローは、３つの論理処理部、即ち、クエリ処理、データストア（例えば、ＷＩＮＦＳデータ構造）及びインデックスサービスに分割される。他の実施例において、クエリ処理、データストア、及びインデックスサービスは、単一のモジュールに結合しても、又はさらに論理パーティションに分離してもよい。
【００２３】
第３の例において、インデックス付与クエリ（クエリ３初期化）は、ある種のユーザインターフェイスを通じてクエリ処理に通信され、このインデックス付与クエリは、他の検索範囲（範囲３）により制限を受ける。クエリ処理は次に、データストアと通信して（例えば、データベースに対するＳＱＬ要求）クエリ及び選択範囲（クエリ３、範囲１）が更新されているか否かを判定する。この第３の例に関して、データストアは、選択範囲上にクエリのためのインデックスを含まず、インデックスサービスと通信してインデックス付与を要求し（インデックス要求）、次にバッチインデックス付与処理を初期化する。データストアはまた、時間切れ表示（時間切れ）を、要求したインデックス付与（クエリ３、範囲３）に相当する識別子（例えば、クエリＩＤ＝ＱＩＤ３）と共にクエリ処理に返す。クエリ処理はこのとき、クエリインデックス（ＱＩＤ３）に関連づけられたインデクス付与結果全部についての通知のためにデータストアに登録し、データストアに対してインデックス付与結果（クエリ結果）についての要求を送信することができる。データストアは、インデックスサービスと通信して（インデックス要求）クエリインデックス（ＱＩＤ３）に関連する結果を要求し受取る（部分結果）。部分結果は、データストアからさらに処理及び／又は表示するため（表示）クエリ処理によって取出される。
【００２４】
インデックス付与結果が完了していないことを認識すると、インデックス処理は、バッチインデックス付与プロシージャを初期化して、選択範囲（範囲３）内の残りのアイテムのインデックス付与を行なう。インデックスの各バッチが完了する毎に、バッチ結果（バッチ結果）はバッチ識別子（バッチＩＤ＝ＢＩＤ１、ＢＩＤ２、・・・、ＢＩＤＮ）を参照してクエリ処理に報告される。データストアがバッチ結果を受取ると、完了したバッチに関するクエリＩＤ（ＱＩＤ３）及びバッチＩＤ（ＢＩＤｘ）を示すクエリ処理（バッチ完了）に通知が送られる。完了したことが通知されると、クエリ処理は、指定バッチ結果の取出しを要求することができる。バッチ全部を完了した後、データストアはクエリ処理に対し、最後のバッチが完了し、クエリ処理がデータストアから最終バッチインデックス付与結果を取出すことができることを通知する。クエリ処理はこのとき、データストアへの登録を終了するか、又は単に論理接続ハンドルを中断することができる。
【００２５】
インデックス付与情報をデータストア中に格納するため採用するフォーマットは、重要ではない。データ構造、データベース、及びその他の特定のデータの型を採用して、アイテムのある位置（例えば、ワードプロセシング文書内の位置）等の他の情報と同様に、テキスト文字列にかかるインデックス項目に十分な情報を提供することができる。説明目的のため、以下の表を作成して、中に格納することのできるインデックス付与情報の型を示す。
【００２６】
【表１】
2006107434.tif 000003
【００２７】
各アイテムに関連づけられた範囲及びバージョン型は、下記に示すような別のデータ表に見出すことができる。この例に関しては、範囲は関連するファイルパス名、ｈｔｔｐアドレス、又は絶対ファイルパス名により判定される。
【００２８】
【表２】
2006107434.tif 000004
【００２９】
バージョン型は、各種の処理に使用し、特定の文書が修正されたことを、文書又はアイテムのハッシュ、作成／改訂日時、又はアイテムのバージョンを識別する他の基準などの様々なプロシージャを使用して、判定することができる。バージョン表を採用してアイテムの最新バージョンを追跡することができる一方で、履歴表を採用してインデックス表にインデックス化されているアイテムの最新バージョンを追跡することができる。
［具体的な処理フロー］
具体的な処理フローを図５から１０に示す。各処理フローは、複数タスク又は複数スレッド環境下で動作する別個の処理、又は統合処理を作動させるよう構成することができる。
【００３０】
図５は、本発明の実施例のうちの少なくとも１つで配置されるクエリ処理における具体的な処理フローを示す概略図である。クエリ処理は、クエリを受取るか、又は以前のクエリに関連する通知を受取るか、いずれかの時期まで待機状態にある。クエリ処理が通知を受取ると、クエリ処理は通知を検査してバッチＩＤ（ＢＩＤ）に基づく他の処理の結果を問合わせる。クエリ処理からクエリを受取ると、クエリ処理はそのクエリについて範囲チェックを初期化して、選択範囲に関するインデックスが古いか否かを判定する。範囲が古くなっているとき、クエリ処理は、通知を登録し、他の処理においてバッチ処理を初期化する。登録の後か、又は範囲が更新されている場合、クエリ処理は利用可能な部分結果に関するインデックス結果を要求して、これらの結果を返す。
【００３１】
図６は、本発明の実施例のうちの少なくとも１つにかかる配置による、具体的な範囲チェック処理における処理フローを示す概略図である。範囲チェック処理は、クエリを受取るまで待機状態にある。クエリを受取ると、範囲チェック処理は、要求の中に見られる範囲（例えば、パス名）を確認し、選択範囲内にあるアイテムが古いか否かを判定する。各アイテムは、そのアイテムに関連する前回のインデックス付与作成に使用されたバージョン番号に相当する履歴バージョン番号と同時に、バージョン番号を有する。アイテムのうちいずれか１つの、インデックス化されたバージョン番号と現行バージョン番号に相違がある場合、そのインデックスはそのアイテムに関しては古くなっている。古くなっているアイテムは識別して、優先キューに分類し、インデックス付与のためクエリＩＤ（ＱＩＤ）を割当てて、アイテムが古くなっていることを示す通知を返す。インデックス化されたバージョンと現行バージョンの全てが同一である場合は、アイテムが更新されていることを示す通知を返す。
【００３２】
図７は、本発明の実施例のうち少なくとも１つにおいて配置される、クエリ結果処理における具体的な処理フローを示す概略図である。クエリ結果処理は、クエリを受取るまで待機状態にある。クエリを受取ると、クエリ結果処理は、範囲内のクエリに関連するキューインデックス（ＱＩＤ）を取出し、クエリがバッチ処理を示しているか否かを判定する。キューインデックスがバッチ処理を示していない場合（ＢＩＤなし）は、結果が更新されていることを示す通知を返す。バッチ処理を指示するキューインデックスに関しては、識別されたバッチ処理（ＱＩＤ、ＢＩＤ）に関する優先キューを評価し、バッチ識別子（ＢＩＤ）を参照してバッチ結果を返す。
【００３３】
図８は、本発明の実施例のうちの少なくとも１つで配置されるバッチ処理における具体的な処理フローを示す概略図である。バッチ処理は、通知登録が要求されるまでは待機状態にある。登録要求を受取った後、選択範囲内のアイテムに対しバッチヒューリスティックを適用して、インデックス付与のためアイテムのグループ化を判定する。各グループ化されたグループは、キュー識別子（ＱＩＤ）とバッチ識別子（ＢＩＤ）にしたがってインデックス化され、バッチ処理の完了の通知を返す。要求したクエリ内の全アイテムがバッチされた後、バッチ処理は待機状態に戻る。
【００３４】
図９は、本発明の実施例のうちの少なくとも１つで配置されるインデックス作成処理における具体的な処理フローを示す概略図である。バッチ識別子（ＢＩＤ）を作成し、バッチ処理からのキューを最優先アイテムに関して評価する。インデックス付与は、最優先バッチ内の全アイテムに関して初期化し、全てのバッチが処理されるまで継続する。
【００３５】
図１０は、本発明の実施例のうちの少なくとも１つで配置される初期化インデックス付与処理のための具体的な処理フローを示す概略図である。バッチ識別子（ＢＩＤ）に関連する各アイテムは、全てのアイテムがインデックス化されるまで、順にインデックス化される。バッチ全部がインデックス化されると通知を返す。
【００３６】
上記の明細書、具体例及びデータは、本発明の構成の製造及び使用に関して、完全な記述を提供する。本発明の要旨と範囲を逸脱することなく、本発明の多くの実施態様が考え得るので、本発明は、ここに添付する特許請求の範囲に記載する。
【図面の簡単な説明】
【００３７】
【図１】本発明の具体的実施例に使用される具体的なコンピューティングデバイスを示す。
【図２】具体的なクエリインデックス付与システムを示す概略図である。
【図３】他の具体的なクエリインデックス付与システムにおける処理フローを示す図である。
【図４】さらに別の具体的なクエリインデックス付与システムにおける処理フローを示す概略図である。
【図５】本発明の実施例のうちの少なくとも１つで配置される具体的なクエリ処理における処理フローを示す概略図である。
【図６】本発明の実施例のうちの少なくとも１つで配置される具体的な範囲チェック処理における処理フローを示す概略図である。
【図７】本発明の実施例のうちの少なくとも１つで配置される具体的なクエリ結果処理における処理フローを示す概略図である。
【図８】本発明の実施例のうちの少なくとも１つで配置される具体的なバッチ処理における処理フローを示す概略図である。
【図９】本発明の実施例のうちの少なくとも１つで配置される具体的なインデックス作成処理における処理フローを示す概略図である。
【図１０】本発明の実施例のうちの少なくとも１つで配置される初期化インデックス処理のための処理フローを示す概略図である。
【図１】
2006107434.tif 000005
【図２】
2006107434.tif 000006
【図３】
2006107434.tif 000007
【図４】
2006107434.tif 000008
【図５】
2006107434.tif 000009
【図６】
2006107434.tif 000010
【図７】
2006107434.tif 000011
【図８】
2006107434.tif 000012
【図９】
2006107434.tif 000013
【図１０】
2006107434.tif 000014
【外国語明細書】
2006107434000001.pdf