(57)【要約】【課題】  インターネット検索エンジンで使用するためのドキュメントのインデックス付け技術を提供する。【解決手段】  ドキュメントインデックス付けシステムは２つのインデックスを利用する。低頻度ワードインデックスは、高頻度インデックスとは別に保守され、まれに出現するワードの位置をインデックス付けされたドキュメントにマップする。低頻度ワードインデックスは、効率性を促進するために高頻度ワードインデックスとは別に格納し区分することができる。【選択図】  図２
2005209193.tif 000002
【特許請求の範囲】
【請求項１】
ユーザのクエリを処理する検索エンジンとともに使用するための、ユーザのクエリに対応するワードを含むドキュメントの位置を探すシステムであって、
閾値より少ない個数のドキュメントにしか出現しない低頻度ワードを識別する低頻度ワード識別子と、
前記閾値より多い個数のドキュメントに出現するワードを含むドキュメントの位置をマップする高頻度ワードインデックスと、
前記高頻度ワードインデックスとは別に保守され、低頻度ワードを含むドキュメントの位置をマップする低頻度ワードインデックスと、
低頻度ワードを含むクエリに応答して、前記低頻度ワードインデックスをスキャンして、前記低頻度ワードを含むドキュメントの前記位置を見つけるインデックススキャンコンポーネントとを備えることを特徴とするシステム。
【請求項２】
前記高頻度ワードインデックスは、ドキュメント単位で格納されることを特徴とする請求項１に記載のシステム。
【請求項３】
前記高頻度ワードインデックスは、ドキュメント単位で区分されることを特徴とする請求項１に記載のシステム。
【請求項４】
前記高頻度ワードインデックスは、複数のコンピューティングシステムにわたって分散されることを特徴とする請求項３に記載のシステム。
【請求項５】
前記低頻度ワードインデックスは、ドキュメント単位で格納されることを特徴とする請求項１に記載のシステム。
【請求項６】
前記低頻度ワードインデックスは、ドキュメント単位で区分されることを特徴とする請求項１に記載のシステム。
【請求項７】
前記低頻度ワードインデックスは、複数のコンピューティングコンピュータシステムにわたって分散されることを特徴とする請求項６に記載のシステム。
【請求項８】
前記低頻度ワードインデックスは、ワード単位で格納されることを特徴とする請求項１に記載のシステム。
【請求項９】
前記低頻度ワードインデックスは、ワード単位で区分されることを特徴とする請求項１に記載のシステム。
【請求項１０】
前記低頻度ワードインデックスは、単一のコンピューティングコンピュータシステムに格納されることを特徴とする請求項９に記載のシステム。
【請求項１１】
前記インデックススキャンコンポーネントは、低頻度ワードを含むユーザのクエリに応答して、前記低頻度ワードインデックスから前記低頻度ワードを有するドキュメントについてのドキュメントの位置を取り出し、前記取り出されたドキュメントの位置を、前記取り出されたドキュメントに対する高頻度ワードインデックスを含むコンピュータシステムに送信することを特徴とする請求項１０に記載のシステム。
【請求項１２】
最近照会された低頻度ワードについてのドキュメントの位置を格納する前記低頻度ワードインデックスに関連するインデックスキャッシュを備えることを特徴とする請求項１に記載のシステム。
【請求項１３】
ユーザのクエリを処理する検索エンジンとともに使用するための、ユーザのクエリ内に見つかる用語を含むドキュメントを求めて１組のドキュメントを検索する方法であって、
前記ドキュメントの組をスキャンし、閾値より少ない回数しか出現しない低頻度ワードを収集するステップと、
低頻度ワードを、前記ワードを含むドキュメントの位置にマップする低頻度ワードインデックスを作成するステップと、
前記低頻度インデックスとは別に保守され、閾値より多い回数出現する高頻度ワードを、前記ワードを含むドキュメントの位置にマップする高頻度ワードインデックスを作成するステップと、
低頻度ワードである任意の用語を識別するために前記ユーザクエリ内の用語を検査するステップと、
低頻度ワードとして識別された前記用語に対する前記低頻度ワードインデックスを検索するステップとを備えることを特徴とする方法。
【請求項１４】
専用コンピュータシステム内に前記低頻度ワードインデックスを格納するステップを備えることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記高頻度インデックスをも格納する複数のコンピュータシステム上の専用パーティションに前記低頻度ワードインデックスを格納するステップを備えることを特徴とする請求項１３に記載の方法。
【請求項１６】
前記低頻度インデックスをワード単位で格納するステップを備えることを特徴とする請求項１３に記載の方法。
【請求項１７】
前記低頻度インデックスをドキュメント単位で格納するステップを備えることを特徴とする請求項１３に記載の方法。
【請求項１８】
請求項１３に記載の方法を実施するためのコンピュータ実行可能命令を含むことを特徴とするコンピュータ読み取り可能な媒体。
【請求項１９】
閾値より少ない個数のドキュメントに出現する低頻度ワードを識別すること、
高頻度ワードインデックスにおいて前記閾値より多い個数のドキュメントに出現するワードを含むドキュメントの位置をマップすること、
前記高頻度ワードインデックスとは別に、低頻度ワードを含むドキュメントの位置をマップする低頻度ワードインデックスを保守すること、および、
低頻度ワードを含むクエリに応答して、前記低頻度ワードを含むドキュメントの前記位置を見つけるために前記低頻度ワードインデックスをスキャンすることによって、ユーザのクエリを処理する検索エンジンとともに使用するための、ユーザのクエリに対応するワードを含むドキュメントの位置を探すためのコンピュータ実行可能命令を備えることを特徴とするコンピュータ読み取り可能な媒体。
【請求項２０】
前記低頻度ワードインデックスは、ドキュメント単位で格納されることを特徴とする請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２１】
前記低頻度ワードインデックスは、ドキュメント単位で区分されることを特徴とする請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２２】
前記低頻度ワードインデックスは、複数のコンピューティングコンピュータシステムにわたって分散されることを特徴とする請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２３】
前記低頻度ワードインデックスは、ワード単位で格納されることを特徴とする請求項１に記載のシステム。
【請求項２４】
前記低頻度ワードインデックスは、ワード単位で区分されることを特徴とする請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２５】
前記低頻度ワードインデックスは、単一のコンピューティングコンピュータシステムに格納されることを特徴とする請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２６】
最近照会された低頻度ワードのドキュメントの位置を格納する前記低頻度ワードインデックスに関連するインデックスキャッシュを作成することを備えることを特徴とする請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２７】
ユーザのクエリを処理する検索エンジンとともに使用するための、ユーザのクエリ内に見つかる用語を含むドキュメントについてのドキュメントの組を検索するための装置であって、
前記ドキュメントの組をスキャンし、閾値よりも少ない回数出現する低頻度ワードを収集する手段と、
低頻度ワードを、前記ワードを含むドキュメントの位置にマップする低頻度ワードインデックスを作成する手段と、
前記高頻度インデックスとは別に保守され、閾値より多い回数出現する高頻度ワードを、前記ワードを含むドキュメントの位置にマップする高頻度ワードインデックスを作成する手段と、
低頻度ワードである任意の用語を識別するために前記ユーザクエリ内の用語を検査する手段と、
低頻度ワードとして識別された前記用語に対する前記低頻度ワードインデックスを検索する手段とを備えることを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にインターネット検索エンジンで使用するためのドキュメントのインデックス付けの分野に関し、特にドキュメント中にまれに出現するワードに対する特有のインデックスを特徴とするインデックス方式に関する。
【背景技術】
【０００２】
典型的なドキュメントインデックス付けシステムは、ドキュメント単位で区分された逆コンテンツインデックス（ｉｎｖｅｒｔｅｄ  ｃｏｎｔｅｎｔ  ｉｎｄｅｘ）で配列されたワード出現データ（ｗｏｒｄ ｏｃｃｕｒｒｅｎｃｅ ｄａｔａ）を有する。データは、複数のインデックス格納専用コンピュータシステムにわたり分散され、その各コンピュータシステムは、インデックス付けされたドキュメントの全体集合の部分集合を取り扱う。これによって、ワード検索クエリを多数のコンピュータシステムに同時に提示することができ、各コンピュータシステムは、それぞれが取り扱うドキュメントについてそのクエリを処理する。
【０００３】
一般的に、ドキュメント単位で区分された逆ワード位置インデックスは、ワード単位で区分されたインデックスよりも効率的である。これは、複数のワードにわたるヒットをランク付けする必要があるとき、ワード単位で区分するとコストが高くなるからである。多数出現するワードについてはコンピュータシステム間で大量の情報が交換される。したがって、通常のドキュメントインデックスシステムは、ドキュメント単位で区分される。
【発明の開示】
【課題を解決するための手段】
【０００４】
まれに出現するワードに対する低頻度ワードインデックスは、ドキュメント単位で区分された高頻度ワードインデックスとは別に作成され保守され、それによって、メモリおよびディスク動作がより有効に利用され、より優れた拡張性が可能になる。
【０００５】
インデックスシステムは、ユーザのクエリに対応するワードを含むドキュメントの検索を容易にする。インデックスシステムは、閾値より少ない個数のドキュメントにしか出現しない低頻度ワードを識別し、その低頻度ワードをそれを含むドキュメントの位置にマップする低頻度ワードインデックスを保守する。高頻度ワードインデックスは別に保守され、閾値より多い個数のドキュメントに出現するワードを含むドキュメントの位置をマップする。インデックスシステムがユーザのクエリ内のワードの検索に使用されるとき、このシステムは、クエリ内の低頻度ワードを検出し、この低頻度ワードを含むドキュメントの位置を見つけるために低頻度ワードインデックスをスキャンする。
【０００６】
低頻度ワードインデックスは、高頻度ワードインデックスとは異なる方式で格納され区分される。低頻度ワードインデックスは、専用のコンピュータシステムに格納しても、また複数のコンピュータシステムにわたり専用のパーティションに分散してもよい。
【０００７】
本発明の上記および他の目的、利点、および特徴を、添付の図面と併せてさらに詳しく説明する。
【０００８】
本発明を、限定ではなく例として添付の図面の各図で示す。
【発明を実施するための最良の形態】
【０００９】
図２は、ドキュメントデータを取り込み、ドキュメント内容にワード単位でインデックスを付けるドキュメントインデックスシステムを特徴とする検索エンジン１０のブロック図を示す。ウェブクローラ（ｗｅｂ  ｃｒａｗｌｅｒ）２３５は、インデックスシステムによってインデックス付けすべきインターネット上のドキュメントにアクセスし、ドキュメントを構文解析するインデックスビルダ（ｉｎｄｅｘ  ｂｕｉｌｄｅｒ）２４０にドキュメントデータを渡し、インデックスサービング列（ｉｎｄｅｘ  ｓｅｒｖｉｎｇ  ｒｏｗｓ）２５０に格納するためにワードおよびワード位置を抽出する。ウェブクローラ、インデックスビルダ、およびインデックスサービング列のメンテナンス、ならびに検索エンジンは通常、コンピュータシステム２０上で実行されるソフトウェアとして構成される（図１）。コンピュータシステム２０は、通信接続を用いて順に、ネットワークを用いる他のコンピュータシステムに接続されている。
【００１０】
インデックスサービング列２５０は、複数のコンピュータシステム２０の行列（ｍａｔｒｉｘ）として構成することができ、列内の各コンピュータシステムは、インデックス付けされたドキュメントのうちの一部（ｓｕｂｓｅｔ）についてのワード位置を格納する。インデックスサービング列におけるコンピュータシステム２０の追加の列は、第１の列のコンピュータシステムにあるデータのコピーを格納することができ、これによってクエリの並列処理、およびコンピュータシステム障害の際のバックアップが可能になる。
【００１１】
低頻度ワードインデックス
背景技術で論じたように、ドキュメント単位で区分するのがドキュメントインデックスを作成する通常のやり方である。この手法は、出現回数の多いワード（「高頻度」ワード）を効率的に扱うが、まれに出現するワード（「低頻度」ワード）に対しては、キャッシングおよび入出力コストなど非効率的な部分が導入されることになる。たとえば、低頻度ワードが高頻度ワードの間に位置していると、通常は低頻度ワードは高頻度ワードより照会される頻度が低いので、そのデータをキャッシュするのはより非効率になる。より頻繁に照会される高頻度ワードを含むメモリのページがメモリ中に移動されたとき、そのページに低頻度つまりより有用ではないワードが含められるので、貴重なキャッシュストレージが占有され提供される利益が低下する。
【００１２】
低頻度ワードを高頻度ワードと混在させることの他の不利益は、ディスクＩ／Ｏの領域に見られる。クエリは、ドキュメントを含む全てのコンピュータシステムに分配され、各コンピュータシステムは、せいぜい数バイトの情報を取り出すためにＩ／Ｏおよび検索動作を実行しなければならない。したがって、低頻度ワードインデックスは、ドキュメント単位で区分された高頻度ワードインデックスとは別に作成され保守される。これにより、メモリおよびディスク動作がより有効に利用され、より優れた拡張性を可能にすることができるようになる。
【００１３】
図２を再度参照すると、ドキュメント検索システム用のコンピュータシステムの配置アーキテクチャ１０が示されている。オートパイロットコンピュータシステム２１５は、このシステムがユーザのクエリおよび要求を処理するとき、このシステム内の他のコンピュータシステムの作業を調整する。ランク計算モジュール２４５は、ウェブサイトの人気度（ｐｏｐｕｌａｒｉｔｙ）を追跡し、この情報をウェブクローラ２３５に送り、ウェブクローラは、処理されたウェブページ上に存在するリンクに基づいてインターネットからドキュメントを取り出す。インデックスビルダ２４０は、クローラ２３５が取り出したドキュメント中に見つかるワードにインデックス付けを行い、インデックス付けされた情報を格納する一組のインデックスサービング列２５０にそのデータを渡す。ここで述べる実施形態では、インデックスサービング列は、１０の「列（ｒｏｗ）」を含み、すなわち各列に５００個のコンピュータシステムのセットを含む。インデックス付けされたドキュメントは、１つの列内の５００のコンピュータシステムにわたり分散される。要求の並列処理を可能にするため、またバックアップのために、この１０の列は、同じインデックスデータを含み、互いのコピーである。インデクサは、低頻度ワードインデックスを格納する専用のパーティションまたはコンピュータシステム（インデックスサービング列２５０において「Ｄ」とラベル付けされる）に、低頻度ワードについての任意の情報を置く。この低頻度ワードインデックスは、図２に示すようにワード単位で、または図６に示すようにドキュメント単位で格納することができるが、より詳細は下記で述べる。
【００１４】
フロントエンドプロセッサ２２０は、ユーザの要求またはクエリを受け入れ、フェデレーション／キャッシュサービス（ｆｅｄｅｒａｔｉｏｎ  ａｎｄ  ｃａｃｈｉｎｇ  ｓｅｒｖｉｃｅ）２３０に渡し、フェデレーション／キャッシングサービス２３０は、クエリを適切な外部データソースに送り、また、内部に格納された情報を検索するためにインデックスサービング列２５０にアクセスする。このクエリの結果は、フェデレーション／キャッシングサービス２３０によってフロントエンドプロセッサ２２０に提供され、フロントエンドプロセッサ２２０は、ユーザとインタフェースをとり適切なフォーマットでランク付けされた結果を提供する。フロントエンドプロセッサ２２０はまた、数ある中でユーザがどの結果を選択するかをモニタリングすることによって、提供された結果の適合度（ｒｅｌｅｖａｎｃｅ）を追跡する。
【００１５】
図３は、ウェブクローラ２３５、インデックスビルダ２４０、およびインデックスサービング列２５０の機能についてより詳細に示す機能ブロック図である。クローラは、ドキュメントをウェブから取り出すフェッチャ（ｆｅｔｃｈｅｒ）コンポーネント２３６を含み、インデックス付けすべきドキュメントをインデックスビルダ２４０に提供する。インデックス付けされたドキュメント２６１中に見つかるＵＲＬについての情報は、クローラ２３５に送られ、クローラは、訪問する新しいサイトをフェッチャ２３６に提供する。クローラは、それがドキュメントを取り出すためにアクセスするサイトの優先順位を付けるために、ランク計算モジュール２４５からのランク情報を使用することができる。
【００１６】
インデックス付けすべきドキュメントは、クローラ２３５からインデックスビルダ２４０に渡される。このデックスビルダ２４０は、パーサ２６５を含み、パーサは、ドキュメントを解析しドキュメントから特徴を抽出する。ドキュメント中に見つかるどのリンクも含むリンクマップ２７８が、ランク計算モジュール２４５に渡される。ランク計算ブロック２４５は、構文解析されるドキュメントに、クエリ非依存ランク（ｑｕｅｒｙ  ｉｎｄｅｐｅｎｄｅｎｔ  ｒａｎｋ）を割り当てる。このクエリ非依存静態ランクは、このドキュメントにリンクを有する複数の他のドキュメント、解析されるＵＲＬについての使用データ、ドキュメントの静態解析、または、これらもしくは他の因子の任意の組み合わせに基づくことができる。
【００１７】
ドキュメントの内容、ドキュメント中に見つかる任意のリンク、およびドキュメントの静態ランクは、ドキュメント区分化（ｄｏｃｕｍｅｎｔ  ｐａｒｔｉｔｉｏｎｉｎｇ）モジュール２７２に渡され、ドキュメント区分化モジュールは、選択されたコンピュータシステムにメモリ内（ｉｎ  ｍｅｍｏｒｙ）インデックス２７６を渡すことにより、インデックスサービング列内のコンピュータシステムにわたりインデックス付けされたドキュメント内容を分配する。リンクマップ２７８は、今後のドキュメントの静態ランクの計算に使用するためにランク計算モジュール２４５に提供される。
【００１８】
低頻度ワードは、図２に示す列内の指定されたコンピュータシステム２７３に送ることができ、また、図５に示すように高頻度ワードインデックスと同じコンピュータシステムに分散されたパーティションに、低頻度ワードインデックスが格納される場合、ドキュメント区分化モジュール２７２に送ることもできる。
【００１９】
ワードが低頻度であるか否かの判定では、インデックス付けされるデータセットに出現回数の閾値の設定を含む。この閾値は、許容されうるネットワークの負荷量に基づくかまたはディスクＩ／Ｏ動作のサイズに基づいて、設定することができる。このインデックスが作成されると、ワードは区分され、高頻度ワードは、高頻度ワードインデックスに格納され、低頻度ワードは、低頻度ワードインデックスに格納される。低頻度ワードインデックスは、図２に示すように単一のコンピュータシステム上に格納することができ、図５および図６に関して後で論じるようにコンピュータシステムの列全体にわたり分散することもできる。
【００２０】
図４は、インデックスサービング列２５０に関する検索クエリの処理についての機能ブロック図を示す。検索クエリは、クエリ要求ハンドラ１２３に送られ、ハンドラは、クエリをフェデレーション／キャッシングサービス２３０に送る。フェデレーション／キャッシングサービス２３０では、前処理１３１をクエリに施して、フェデレーションモジュール１３４に提示するのにクエリがより良い状態になるようにし、フェデレーションモジュール１３４は、検索プロバイダ１３７や外部フェデレーションプロバイダ１３９などのデータソースにクエリを選択的に送る。検索プロバイダ１３７は、検索エンジンと同じプロバイダによって保守される「内部（ｉｎｔｅｒｎａｌ）」プロバイダである。外部フェデレーションプロバイダ１３９は、別に保守され、検索エンジンプロバイダとの同意のもとに検索エンジンによってアクセスすることができる。検索プロバイダ１３７上でクエリを評価するために、検索プロバイダは、クエリ１４１をクエリファンアウト（ｆａｎ  ｏｕｔ）／集約モジュール１５１に送り、このモジュールは、クエリを、インデックスサービング列２５０の選択された列のコンピュータシステムにわたり分配し、様々なコンピュータシステムから返された結果を集約する。ファンアウトモジュールからのインデックスクエリ１５５は、低頻度ワードインデックス１５７および高頻度ワードインデックス１５９に対して実行される。
【００２１】
図５および図６は、コンピュータシステムの列全体にわたり分散する方式で低頻度ワードイデックスを格納する２つの代替方法を示す。図５は、インデックス付けされたドキュメントの番号１からＮ、Ｎ＋１からＮ＋Ｍ、Ｎ＋Ｍ＋１からＮ＋２Ｍの各サブセットをそれぞれ格納しているコンピュータシステムＩ、ＩＩ、ＩＩＩを示す。高頻度ワードインデックス１５９の領域が、低頻度ワードインデックス１５７の領域に隣接して示されている。図５では、高頻度ワードおよび低頻度ワードの両方のインデックスについて、インデックス付けされドキュメントで区分されている。また図４を参照すると、クエリインデックスが、クエリをファンアウト／集約モジュール１５１に提供するとき、低頻度ワードが存在するかどうかを判定するためにクエリ内のワードが検査される。低頻度ワードがない場合、そのクエリは従来どおり処理される。低頻度ワードがある場合は、低頻度ワードインデックスデータ１５９を取り出すことができ、次いでそれは高頻度ワードインデックスデータ１５７と組み合わされる。低頻度ワードデータがドキュメント単位で区分される場合、そのデータは、各インデックスサービスコンピュータシステムで読み取られ処理される。低頻度ワードデータはおそらくより速くエージアウト（ａｇｅｄ  ｏｕｔ）され、高頻度ワードインデックスはおそらくより高密度のキャッシュになるので、キャッシングがわずかに改善されることになる。
【００２２】
図６は、ドキュメント単位で区分されておらず単一のコンピュータシステムＤにある低頻度ワードインデックス１５７’を示す。このデータは、ドキュメント単位でなくワード単位で格納される。選択されたインデックス付け列にある各コンピュータシステムは、低頻度ワードデータを格納するコンピュータシステムにアクセスすることにより任意の低頻度ワードについてのデータを取得する。クエリを生成するコンピュータシステムは、プッシュ（ｐｕｓｈ）手法を使用して、まず低頻度ワードデータを取り出し、それをすべてのインデックスサービスコンピュータシステムへ押し出す。これによりプロセスが単純化される。というのは、このデータはクエリと一緒に流れるので、データはいつもネットワーク上に送り出され、インデックスサービスノードは互いに通信する必要がなくなるからである。プル（ｐｕｌｌ）手法では、各インデックスサービスノードが、ワード情報全体、または、単にそれが含むドキュメントに関する情報を要求する。プル手法によって、インデックスサービスノードは、データをキャッシュすることができる。頻繁に照会されたいくつかの低頻度ワードがある場合に、最近照会された低頻度で出現するワードのキャッシュにより効率性を増すことができる。
【００２３】
例示的動作環境
図１および下記の議論は、本発明を実装することができる適切なコンピューティング環境の簡単で一般的な説明を提供するものである。必ずしもそうである必要はないが、パーソナルコンピュータで実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで、本発明を説明する。一般に、プログラムモジュールは、特定のタスクを実行するのかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成で実施することもできることは当業者には理解されよう。本発明はまた、タスクが通信ネットワークを介して接続されたリモート処理装置で実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモート両方のメモリ記憶装置に置くことができる。
【００２４】
図１を参照すると、本発明を実施するための例示的システムは、処理ユニット２１と、システムメモリ２２と、システムメモリ２２を含む様々なシステムコンポーネントを処理ユニット２１に接続するシステムバス２３とを含む従来型のパーソナルコンピュータ２０の形式をとる汎用コンピューティング装置を含む。システムバス２３は、任意の様々なバスアーキテクチャを使用した、メモリバス、メモリコントローラ、周辺バス、ローカルバスを含めた様々な種類のバス構造のいずれかとすることができる。システムメモリ２２は、ＲＯＭ（リードオンリメモリ）２４、およびＲＡＭ（ランダムアクセスメモリ）２５を含む。起動時などにパーソナルコンピュータ２０内の構成要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（基本入出力システム）２６が、ＲＯＭ２４に格納されている。パーソナルコンピュータ２０はさらに、ハードディスクから読み取りまたそれに書き込むためのハードディスクドライブ２７、リムーバル磁気ディスク２９から読み取りまたそれに書き込むための磁気ディスクドライブ２８、ならびに、ＣＤ−ＲＯＭまたは他の光媒体などのリムーバル光ディスク３１から読み取りまたそれに書き込むための光ディスクドライブ３０を含む。ハードディスクドライブ２７、磁気ディスクドライブ２８、および、光ディスクドライブ３０は、それぞれハードディスクドライブインタフェース３２、磁気ディスクドライブインタフェース３３、および、光ドライブインタフェース３４によって、システムバス２３に接続されている。これらのドライブおよびそれらに関連するコンピュータ読み取り可能な媒体は、パーソナルコンピュータ２０のためのコンピュータ読み取り可能な命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。本明細書に記載の例示的環境は、ハードディスク、リムーバル磁気ディスク２９、およびリムーバル光ディスク３１を利用しているが、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（リードオンリメモリ）などコンピュータによってアクセスできるデータを記憶することができる他の種類のコンピュータ読み取り可能な媒体も例示的動作環境で使用することができることは当業者によって理解されるべきである。
【００２５】
オペレーティングシステム３５、１つまたは複数のアプリケーションプログラム３６、他のプログラムモジュール３７、およびプログラムデータ３８を含めて、複数のプログラムモジュールを、ハードディスク、磁気ディスク１２９、光ディスク３１、ＲＯＭ２４、またはＲＡＭ２５に格納することができる。データベースシステム５５も、ハードディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４、またはＲＡＭ２５に格納することができる。ユーザは、キーボード４０やポインティングデバイス４２などの入力装置を介して、コマンドおよび情報をパーソナルコンピュータ２０に入力することができる。他の入力装置には、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含めることができる。これらおよび他の入力装置は、しばしば、システムバス２３に接続されたシリアルポートインタフェース４６を介して処理ユニット２１に接続されているが、パラレルポート、ゲームポート、またはＵＳＢ（ユニバーサルシリアルバス）など他のインタフェースによって接続されることもある。モニタ４７または他の種類の表示装置もまた、ビデオアダプタ４８などのインタフェースを介してシステムバス２３に接続されている。モニタに加えて、パーソナルコンピュータは通常、スピーカやプリンタなど他の周辺出力装置も含む。
【００２６】
パーソナルコンピュータ２０は、リモートコンピュータ４９など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境においても動作することができる。リモートコンピュータ４９は、他のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置（ｐｅｅｒ ｄｅｖｉｃｅ）、または他の共通ネットワークノードとすることができ、図１にはメモリ記憶装置５０のみが示されているが、リモートコンピュータ４９は通常、パーソナルコンピュータ２０に関連する上記の構成要素の多くまたは全部を含む。図１に示す論理接続には、ＬＡＮ（ローカルエリアネットワーク）５１、およびＷＡＮ（広域ネットワーク）５２が含まれる。このようなネットワーク環境は、職場や会社規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的なものである。
【００２７】
ＬＡＮネットワーク環境を使用するとき、パーソナルコンピュータ２０は、ネットワークインタフェースまたはアダプタ５３を介してローカルネットワーク５１に接続される。ＷＡＮネットワーク環境で使用されるときは、パーソナルコンピュータ２０は通常、モデム５４、またはインターネットなど広域ネットワーク５２を介して通信を確立するための他の手段を含む。モデム５４は、それが内蔵モデムでも外部モデルでもあってよく、シリアルポートインタフェース４６を介してシステムバス２３に接続される。ネットワーク環境において、パーソナルコンピュータ２０に関連して示されているプログラムモジュール、またはその一部は、リモートメモリ記憶装置５０に格納することもできる。図に示すネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立するための他の手段を使用することもできることが理解されよう。
【００２８】
高頻度ワードインデックスとは別に、低頻度ワードインデックスを作成し保守することにより、システムパフォーマンスを改善することができることが、以上の説明から理解できよう。本発明をある程度具体的に説明してきたが、本発明は添付の特許請求の範囲の趣旨および範囲に含まれる開示の設計からのすべての修正形態および代替形態を含むことが意図されている。
【図面の簡単な説明】
【００２９】
【図１】データベースクエリを処理し送るためのシステムの例示的動作環境を示す図である。
【図２】本発明の一実施形態を実施するためのコンピュータシステムアーキテクチャを示すブロック図である。
【図３】本発明の一実施形態の実施に使用することができるインデックス生成プロセスを示す機能ブロック図である。
【図４】本発明の一実施形態の実施に使用することができるインデックスサービス処理を示す機能ブロック図である。
【図５】本発明の一実施形態によるインデックス付けの方式を示す図である。
【図６】本発明の一実施形態によるインデックス付けの方式を示す図である。
【符号の説明】
【００３０】
２１  処理装置
２２  システムメモリ
２３  システムバス
３２  ハードディスクドライブインタフェース
３３  磁気ディスクドライブインタフェース
３４  光ドライブインタフェース
３５  オペレーティングシステム
３６  アプリケーションプログラム
３７  他のプログラムモジュール
３８  プログラムデータ
４６  シリアルポートインタフェース
４８  ビデオアダプタ
４９  リモートコンピュータ
５１  ローカルエリアネットワーク
５２  ワイドエリアネットワーク
５３  ネットワークインタフェース
５４  モデム
５５  データベースシステム
５８  オーディオアダプタ
【図１】
2005209193.tif 000003
【図２】
2005209193.tif 000004
【図３】
2005209193.tif 000005
【図４】
2005209193.tif 000006
【図５】
2005209193.tif 000007
【図６】
2005209193.tif 000008
【外国語明細書】
2005209193000001.pdf