(57)【特許請求の範囲】
【請求項１】
インデックスドキュメントを見つけるためのシステムであって、
１つ以上のプロセッサであって、
検索クエリを受信し、
前記検索クエリから文字列を抽出し、前記文字列を、１つ以上の検索ワードをそれぞれ含む複数の検索タームに区分し、
前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出し、
前記複数の検索タームの第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、選択動作に少なくとも部分的に基づいて処理し、前記選択動作は、前記第１の検索タームについて取り出された全てのインデックスドキュメントのうちのいずれの部分集合が処理されるべきかを示し、前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合の前記部分集合の処理結果は、前記第１の検索タームについての検索結果を構成し、
結果ドキュメント集合を生成するために、前記複数の検索タームに対応する検索結果に対して積集合動作を実行し、
前記結果ドキュメント集合のうち、前記複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第１の部分集合を決定し、返すように構成されている、１つ以上プロセッサと、
前記１つ以上のプロセッサに接続され、前記１つ以上のプロセッサに命令を提供するように構成されている１つ以上のメモリと、
を備えるシステム。
【請求項２】
請求項１に記載のシステムであって、
前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、
前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を互いに比較することと、
最も少ない数のインデックスドキュメントに関連付けられている前記インデックスドキュメント集合を、前記第１の検索タームについての検索結果を構成する集合として選択することと、
を含む、システム。
【請求項３】
請求項１に記載のシステムであって、
前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、
前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第１の群と第２の群とに分けることと、
第１のドキュメント集合を作成するために前記第１の群の１つ以上のインデックスドキュメントに対して積集合動作を実行し、第２のドキュメント集合を作成するために前記第２の群の１つ以上のインデックスドキュメントに対して積集合動作を実行することと、
前記第１のドキュメント集合及び前記第２のドキュメント集合のうち、最も少ない数のインデックスドキュメントに関連付けられている方の集合を、前記第１の検索タームについての検索結果を構成する集合として選択することと、
を含む、システム。
【請求項４】
請求項１に記載のシステムであって、
前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、
前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第１の群と第２の群とに分けることと、
前記第１の群から第１のインデックスドキュメント集合を及び前記第２の群から第２のインデックスドキュメント集合を選択することと、
前記第１及び第２のインデックスドキュメント集合に対して積集合動作を実行し、前記積集合動作の結果を、前記第１の検索タームについての検索結果を構成する集合として決定することと、
を含む、システム。
【請求項５】
請求項１に記載のシステムであって、
１つ以上のインデックスワードに対応するインデックスドキュメントを示す１つ以上の既定のインデックステーブルを照会することによって、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合の少なくとも一部分集合が取り出される、システム。
【請求項６】
請求項１に記載のシステムであって、
前記検索タームは、言い回し、言い習わし、慣用句、短文、及びワード組み合わせのうちの１つ以上を含む、システム。
【請求項７】
請求項１に記載のシステムであって、
前記１つ以上のプロセッサは、更に、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出す前に、前記複数の検索タームからの前記第１の検索タームを前記複数の検索タームからの第２の検索タームとまとめて１つの検索タームにするように構成されている、システム。
【請求項８】
請求項７に記載のシステムであって、
前記第１の検索タームと前記第２の検索タームとをまとめることは、
ユーザによって入力された過去の検索クエリの中で前記第１の検索タームと前記第２の検索タームとが併せて使用されている頻度を決定し、
前記頻度が既定の閾値を超えているかどうかを決定し、前記既定の閾値を超えている場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめ、前記既定の閾値を超えていない場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめない、こと、
を含む、システム。
【請求項９】
請求項７に記載のシステムであって、
前記第１の検索タームと前記第２の検索タームとをまとめることは、
前記第１の検索タームと前記第２の検索タームとの間に固有な関係が存在するかどうかを決定するために、既定の固有な検索ターム関係のテーブルをチェックし、前記固有な関係が存在している場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめ、前記固有な関係が存在していない場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめない、ことを含む、システム。
【請求項１０】
請求項１に記載のシステムであって、
前記１つ以上のプロセッサは、更に、
インデックスドキュメントに含まれる各ワード組み合わせについてのワード組み合わせ重みを計算し、
前記インデックスドキュメント内に存在するワード組み合わせに関連付けられている前記計算された重みに基づいて、各インデックスドキュメントについてのドキュメント相関スコアを計算し、
前記第１の部分集合の中の前記インデックスドキュメントを、前記対応するドキュメント相関スコアに基づいてランク付けすること、
によって前記第１の部分集合の中のインデックスドキュメントをランク付けするように構成されている、システム。
【請求項１１】
請求項１に記載の方法であって、
前記１つ以上の検索ワードの少なくとも１つは、検索文字を含む、方法。
【請求項１２】
インデックスドキュメントを見つけるための方法であって、
検索クエリを受信することと、
前記検索クエリから文字列を抽出し、前記文字列を、１つ以上の検索ワードをそれぞれ含む複数の検索タームに区分することと、
前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出すことと、
前記複数の検索タームの第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、選択動作に少なくとも部分的に基づいて処理することと、前記選択動作は、前記第１の検索タームについて取り出された全てのインデックスドキュメントのうちのいずれの部分集合が処理されるべきかを示し、前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合の前記部分集合の処理結果は、前記第１の検索タームについての検索結果を構成することと、
結果ドキュメント集合を生成するために、前記複数の検索タームに対応する検索結果に対して積集合動作を実行することと、
前記結果ドキュメント集合のうち、前記複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第１の部分集合を決定し、返すことと、
を備える方法。
【請求項１３】
請求項１２に記載の方法であって、
前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、
前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を互いに比較することと、
最も少ない数のインデックスドキュメントに関連付けられている前記インデックスドキュメント集合を、前記第１の検索タームについての検索結果を構成する集合として選択することと、
を含む、方法。
【請求項１４】
請求項１２に記載の方法であって、
前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、
前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第１の群と第２の群とに分けることと、
第１のドキュメント集合を作成するために前記第１の群の１つ以上のインデックスドキュメントに対して及び第２のドキュメント集合を作成するために前記第２の群の１つ以上のインデックスドキュメントに対して積集合動作を実行することと、
前記第１のドキュメント集合及び前記第２のドキュメント集合のうち、最も少ない数のインデックスドキュメントに関連付けられている方の集合を、前記第１の検索タームについての検索結果を構成する集合として選択することと、
を含む、方法。
【請求項１５】
請求項１２に記載の方法であって、
前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、
前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第１の群と第２の群とに分けることと、
前記第１の群から第１のインデックスドキュメント集合を及び前記第２の群から第２のインデックスドキュメント集合を選択することと、
前記第１及び第２のインデックスドキュメント集合に対して積集合動作を実施し、前記積集合動作の結果を、前記第１の検索タームについての検索結果を構成するものとして決定することと、
を含む、方法。
【請求項１６】
請求項１２に記載の方法であって、更に、
前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出す前に、前記複数の検索タームからの前記第１の検索タームを前記複数の検索タームからの第２の検索タームとまとめて１つの検索タームにすることを備える方法。
【請求項１７】
請求項１６に記載の方法であって、
前記第１の検索タームと前記第２の検索タームとをまとめることは、
ユーザによって入力された過去の検索クエリの中で前記第１の検索タームと前記第２の検索タームとが併せて使用されている頻度を決定することと、
前記頻度が既定の閾値を超えているか否かを決定し、前記既定の閾値を超えている場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめ、前記既定の閾値を超えていない場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめない、ことと、
を含む、方法。
【請求項１８】
請求項１６に記載の方法であって、
前記第１の検索タームと前記第２の検索タームとをまとめることは、
前記第１の検索タームと前記第２の検索タームとの間に固有な関係が存在するかどうかを決定するために、既定の固有な検索ターム関係のテーブルをチェックし、前記固有な関係が存在している場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめ、前記固有な関係が存在していない場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめない、ことを含む、方法。
【請求項１９】
請求項１２に記載の方法であって、更に、
インデックスドキュメントに含まれる各ワード組み合わせについてのワード組み合わせ重みを計算することと、
前記インデックスドキュメント内に存在するワード組み合わせに関連付けられている前記計算された重みに基づいて、各インデックスドキュメントについてのドキュメント相関スコアを計算することと、
前記対応するドキュメント相関スコアに基づいて、前記インデックスドキュメントをランク付けすることと、
を備える方法。
【請求項２０】
インデックスドキュメントを見つけるためのコンピュータプログラムであって、
検索クエリを受信するための機能と、
前記検索クエリから文字列を抽出し、前記文字列を、１つ以上の検索ワードをそれぞれ含む複数の検索タームに区分するための機能と、
前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出すための機能と、
前記複数の検索タームの第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、選択動作に少なくとも部分的に基づいて処理するための機能と、前記選択動作は、前記第１の検索タームについて取り出された全てのインデックスドキュメントのうちのいずれの部分集合が処理されるべきかを示し、前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合の前記部分集合の処理結果は、前記第１の検索タームについての検索結果を構成し、
結果ドキュメント集合を生成するために、前記複数の検索タームに対応する検索結果に対して積集合動作を実行するための機能と、
前記結果ドキュメント集合のうち、前記複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第１の部分集合を決定し、返すための機能と、
をコンピュータによって実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、あらゆる目的のために、参照によって本明細書に組み込まれる、発明の名称を「Ａ  ＣＨＡＲＡＣＴＥＲ  ＩＮＤＥＸ  ＳＹＳＴＥＭ−ＢＡＳＥＤ  ＳＥＡＲＣＨ  ＭＥＴＨＯＤ  ＡＮＤ  ＤＥＶＩＣＥ（文字インデックスシステムをベースにした検索の方法及びデバイス）」とする、２０１１年６月２日に出願された中国特許出願第２０１１１０１４７５２０．１号に基づく優先権を主張する。
【０００２】
本発明は、検索エンジン技術に関するものであり、特に、インデックスドキュメントを見つける技術に関するものである。
【背景技術】
【０００３】
インターネットの更なる普及に伴って、インターネット上の情報量が激増している。検索エンジン技術の出現は、人々がこれら膨大な量の情報の中で高速に且つ簡便に検索を行って、必要とする様々な種類の情報を見つけることを可能にしている。
【０００４】
文字インデックスシステムを使用した情報の検索は、既に幅広い応用を得ている。文字インデックスシステムは、既定のインデックステーブルを多数含む。図１は、このような既定のインデックステーブルの一例を示している。この例では、インデックステーブル１００は、３つの主なデータ欄を含む。左側の欄は、（１つ以上の）インデックス文字（例えば、文字は、それ自体で又は１つ以上のその他の文字と併せてインデックスであってよく、例えば、中国語の場合は、各単一インデックス文字又は文字組み合わせが１つの言い回し又は言い習わしを構成していてよい）を含み、真ん中の欄は、対応するインデックス文字／文字組み合わせを含むドキュメントの数を含み、右側の欄は、対応するインデックス文字／文字組み合わせを含む対応する各ドキュメントに関連付けられているアドレスを含む（例えば、「Ａ１、Ａ２．．．．．．」は、それぞれ、インデックスドキュメントを見つけられる例えばデータベース内のアドレスを表す）。インデックステーブル１００の例では、中国語の文字がインデックスとされているが、英語のワード及びその他の任意の言語の形態素がインデックス付けの索引を構成していてよい。例えば、インデックスドキュメントは、ドキュメントへの参照、及び／又はドキュメントを記憶された場所のアドレスなどのドキュメントの一部分が、そのドキュメントの迅速な取り出し／識別のために記憶されうるように、インデックスを付けられているドキュメントである。例えば、ウェブクローラによって処理されたウェブページが、インデックスドキュメントであるかもしれない。検索クエリに応答し、インデックステーブル１００などのインデックステーブルが照会されてよい。例えば、先ず、検索クエリから、１つ以上の単一インデックス文字及び／又は文字組み合わせが抽出されてよい。次いで、検索クエリから抽出されたインデックス文字を含むインデックスドキュメントを求めてインデックステーブル１００などのインデックステーブルが照会されてよい。インデックスドキュメントは、クエリ元のユーザに返されてよい。
【０００５】
図２は、インデックステーブルを使用して検索を行う一例を示す図である。この例では、インデックステーブル１００が使用されてよい。このプロセス例は、１）ユーザから検索クエリを受信し、当該検索クエリを文字組み合わせ（例えば、１つ以上の文字を含む言い回し）に区分するステップと、２）文字組み合わせを単一インデックス文字に分離し、それら単一インデックス文字を含むインデックスドキュメントを求めてインデックステーブル（例えば、インデックステーブル１００）を照会するステップと（例えば、図１を見ると、単一文字「浙（Zhe）」についてのインデックスドキュメント集合は、文字「浙」をそれぞれ含む１０のドキュメントを含む）、３）同じ文字組み合わせに属する単一インデックス文字について返されたインデックスドキュメント集合に対して積集合動作を実施し、その文字組み合わせについて結果として得られたインデックスドキュメント集合に含まれる各ドキュメントがその文字組み合わせに属する全ての単一文字をそれぞれ含むようにするステップと、４）各文字組み合わせについて決定されたインデックスドキュメント集合に対して積集合動作を実施し、最終的な検索結果であるインデックスドキュメント集合に含まれる各ドキュメントが元の検索クエリの全ての文字組み合わせをそれぞれ含むようにするステップと、を含む。通常は、単一インデックス文字ごとに大量のインデックスドキュメントがあり、したがって、取り出された全てのインデックスドキュメント集合に対して積集合動作を繰り返し実行することは、非常に非効率的だろう。なぜならば、一般に、各文字組み合わせの中には幾つかの単一インデックス文字があり、また、各検索クエリの中にも幾つかの文字組み合わせがあるからである。
【図面の簡単な説明】
【０００６】
以下の詳細な説明及び添付の図面において、本発明の様々な実施形態が開示される。
【０００７】
【図１】既定のインデックステーブルの一例を示す図である。
【０００８】
【図２】インデックステーブルを使用して検索を行う一例を示す図である。
【０００９】
【図３】一致するインデックスドキュメントを見つけるためのシステムの一実施形態を示す図である。
【００１０】
【図４】一致するインデックスドキュメントを見つけるためのプロセスの一実施形態を示す図である。
【００１１】
【図５】検索タームに関連付けられているインデックスドキュメント集合に対して選択動作を実行する一実施形態を示すフローチャートである。
【００１２】
【図６】検索タームに関連付けられているインデックスドキュメント集合に対して選択動作を実行する一実施形態を示すフローチャートである。
【００１３】
【図７】検索タームに関連付けられているインデックスドキュメント集合に対して選択動作を実行する一実施形態を示すフローチャートである。
【００１４】
【図８】一致するインデックスドキュメントを見つけるためのプロセスの一例を示す図である。
【００１５】
【図９】一致するインデックスドキュメントを見つけるためのプロセスの一例を示す図である。
【００１６】
【図１０】一致するインデックスドキュメントを見つけるためのプロセスの一例を示す図である。
【００１７】
【図１１】２つ以上の検索タームを１つの検索タームにまとめるかどうかを決定するためにユーザの検索履歴を使用する一例を示すフローチャートである。
【００１８】
【図１２】検索タームがまとめられるべきかどうかを決定するために使用される検索履歴テーブルの一例である。
【００１９】
【図１３】２つ以上の検索タームを１つの検索タームにまとめるかどうかを決定するためにそれら２つ以上の検索ターム間における所定の固有な関係を使用する一例を示すフローチャートである。
【００２０】
【図１４】ドキュメントベクトル及びクエリベクトルをＮ次元空間で示す一例である。
【００２１】
【図１５】一致するインデックスドキュメントを見つけるためのシステムの一実施形態を示す図である。
【００２２】
【図１６】システム１５００のインデックスドキュメント集合処理モジュール１５０４の一実施形態を示す図である。
【００２３】
【図１７】システム１５００のランク付けモジュール１５１１の一例を示す図である。
【発明を実施するための形態】
【００２４】
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能ストレージ媒体に実装されたコンピュータプログラム製品、並びに／又は結合先のメモリに保存された命令及び／若しくは結合先のメモリによって提供される命令を実行するように構成されたプロセッサのようなプロセッサなどの、数々の形態で実現することができる。本明細書では、これらの実現形態又は本発明がとりうるその他のあらゆる形態が、技術と称されてよい。総じて、開示されたプロセスのステップの順序は、発明の範囲内で変更されてよい。別途明記されない限り、タスクを実行するように構成されたものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実行するように一時的に構成された汎用コンポーネントとして、又はタスクを実行するように製造された特殊コンポーネントとして実装されてよい。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された１つ以上のデバイス、回路、並びに／又は処理コアを言う。
【００２５】
本発明の原理を例示す添付の図面とともに、以下で、本発明の１つ以上の実施形態の詳細な説明が提供される。本発明は、このような実施形態との関わりのもとで説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、及び均等物を網羅している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記される。これらの詳細は、例示を目的として提供されるものであり、本発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施することができる。明瞭さを期するために、本発明に関係する技術分野において知られる技術要素は、本発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
【００２６】
インデックスドキュメントを効率的に見つけることが、本明細書で説明される。様々な実施形態において、検索クエリは、検索タームに区分される。例えば、検索タームは、１つ以上の検索ワードを含んでいてよい。検索ワードは、いずれか１つの言語に特有である必要はなく、任意の言語の形態素を指していてよい。例えば、中国語などの言語における検索ワードは、１つの文字を指していてよく、英語などの言語における検索ワードは、一連の文字を指していてよい。一部の実施形態では、検索クエリの各検索タームの各検索ワードについて、対応するインデックスドキュメント集合が見つけられる。一部の実施形態では、特定の検索タームに属する（１つ以上の）検索ワードについて見つけられたインデックスドキュメント集合が、その特定の検索タームについて取り出されたインデックスドキュメント集合と称されてよい。一部の実施形態では、各検索タームについて見つけられた対応するインデックスドキュメント集合について、１つ以上の選択動作が実施される。例えば、各特定の検索タームについて取り出されたインデックスドキュメント集合は、少なくとも１つの選択動作を含む処理によって処理され、この選択操作は、例えば、検索タームについて取り出された全てのインデックスドキュメント集合から、その検索タームについての検索結果として機能させるための部分集合を選択してよい、又は検索タームについて取り出されたインデックスドキュメント集合の部分群に対して実施された積集合動作の結果から、その検索タームについての検索結果として機能させるための部分集合を選択してよい。一部の実施形態では、選択動作は、システム管理者によって設定される。使用される選択動作のタイプにかかわらず、積集合動作は、検索タームについて取り出された全てのインデックスドキュメント集合よりも少ない数のインデックスドキュメント集合に対して実施される。一部の実施形態では、積集合動作は、検索クエリの全ての検索タームを含む、クエリ元ユーザに返されるべきインデックスドキュメントを得るために、検索クエリの全ての検索タームに対応する検索結果に対して実施される。
【００２７】
選択動作の使用は、計算コストがかかる積集合動作が実施される回数を減らせるだろう。更に、選択動作の使用は、積集合動作を実施されるインデックスドキュメント集合の中のインデックスドキュメントの数も最少にできるだろう。積集合動作の計算コストは、動作を実施されるインデックスドキュメントの数ととともに増加するので、これは、効率を向上させる。したがって、積集合動作の回数を減少させることによって及び／又は積集合動作を実施されるインデックスドキュメントの数を最少にすることによって、検索クエリに一致するインデックスドキュメントを見つける効率が向上されるだろう。
【００２８】
図３は、一致するインデックスドキュメントを見つけるためのシステムの一実施形態を示す図である。システム３００は、クライアント３０２と、ネットワーク３０４と、検索サーバ３０６と、データベース３０８とを含む。ネットワーク３０４は、１つ以上の高速データネットワーク及び／又は電気通信ネットワークを含んでいてよい。
【００２９】
クライアント３０２は、検索クエリを受信し、それらを検索サーバ３０６に送信するように構成される。クライアント３０２は、ラップトップコンピュータとして示されているが、クライアント３０２のその他の例として、デスクトップコンピュータ、モバイル機器、スマートフォン、タブレット端末、及び／又はその他の任意の計算装置が挙げられる。ユーザは、検索クエリに一致するドキュメント（例えば、ウェブページ、ファイル、データベースエントリ）を受信するために、クライアント３０２においてウェブブラウザアプリケーションを使用し、検索エンジン及び／又はその他の任意の種類の検索ツールに検索クエリを入力してよい。一部の実施形態では、インデックスドキュメントは、検索クエリに含まれる全てのワードを含む場合に検索クエリに一致する。
【００３０】
検索サーバ３０６は、クライアント３０２から受信された検索クエリを使用して検索を実施し、一致するインデックスドキュメントをクライアント３０２に返すように構成される。一部の実施形態では、検索サーバ３０６は、オンライン検索エンジンを運営するウェブサーバを含む。一部の実施形態では、検索サーバ３０６は、受信された検索クエリを、少なくとも１つの検索ワードをそれぞれ含む１つ以上の検索タームに区分するように構成される。検索サーバ３０６は、各検索ワードに一致する１つ以上のインデックスドキュメントを見つけるように構成される。例えば、インデックスドキュメントは、検索サーバ３０６に及び／又はデータベース３０８などのその他の場所に記憶されてよい。例えば、検索サーバ３０６は、データベース３０８に記憶されうる（テーブル１００などの）１つ以上の既定のインデックステーブルを照会することによって、検索ワードに対応するインデックスドキュメントを見つけてよい。次いで、同じ検索タームに属する検索ワードについて返されたインデックスドキュメントが処理される。この処理は、ある検索タームについて取り出されたインデックスドキュメント集合から（例えば選択動作を使用して）部分集合を選択すること、及び／又は選択されたインデックスドキュメント部分集合に対して処理（例えば積集合動作）を実行することを含む。検索タームについて取り出された全てのインデックスドキュメントに対して積集合動作を実行するのではなく、その検索タームについて取り出されたインデックスドキュメント集合の部分集合を処理することによって、検索における効率が向上される。各検索タームについての処理結果は、その検索タームについての検索結果と称される。検索サーバ３０６は、次いで、結果ドキュメント集合を生成するために、検索クエリの各検索タームについて作成された検索結果に対して積集合動作を実行する。次いで、結果ドキュメント集合のインデックスドキュメントが全ての検索タームを含むことを検証するために、このような各インデックスドキュメントは、全ての検索タームが存在するかどうかを決定するために検索サーバ３０６によってスキャンされる。検索サーバ３０６は、結果ドキュメント集合のうち、検索クエリの全ての検索タームを含むインデックスドキュメントのみをクライアント３０２に返す。
【００３１】
図４は、一致するインデックスドキュメントを見つけるためのプロセスの一実施形態を示す図である。一部の実施形態では、プロセス４００は、システム３００において実行に移されてよい。
【００３２】
プロセス４００は、ユーザによってサブミットされた検索クエリに一致するインデックスドキュメントを効率的に返すために使用される。例えば、検索タームに一致するためには、インデックスドキュメントは、クエリに含まれる各ワードを少なくとも１つずつ含んでいなければならない。検索タームについて取り出された全てのインデックスドキュメント集合を（例えば積集合動作を使用して）処理するのではなく、設定可能な少なくとも１つの選択動作によって全てのインデックスドキュメント集合よりも少ない数のインデックスドキュメント集合が、検索タームについての検索結果として機能するために処理及び／又は選択される。検索タームごとに処理されるインデックスドキュメントの数及び／又は検索タームごとに実施される積集合動作の回数を減らすために選択動作を使用することによって、（例えば（１つ以上の）積集合動作を実行する）処理の複雑度、時間、及び量が全て大幅に低減され、これは、ユーザに返されるべき一致するインデックスドキュメントを見つけるために検索エンジンが必要とする時間も短縮する。
【００３３】
積集合動作に関して述べると、例えば、集合Ａ及び集合Ｂに対する積集合動作の実施（例えば、集合Ａと集合Ｂとの積集合は、Ａ∩Ｂで示される）は、Ａ及びＢの両方を構成する全ての要素からなる集合を決定する。インデックスドキュメント集合に対して積集合動作を適用する状況では、一部の実施形態において、インデックスワードＡに対応する第１のインデックスドキュメント集合（例えば、第１の集合の各インデックスドキュメントは、ワードＡを少なくとも１つ含む）及びインデックスワードＢに対応する第２のインデックスドキュメント集合（例えば、第２の集合の各インデックスドキュメントは、ワードＢを少なくとも１つ含む）に対する積集合動作の実施は、第１及び第２のインデックスドキュメント集合のうち、ワードＡ及びワードＢの両方に対応するインデックスドキュメントからなる部分集合である第３のインデックスドキュメント集合を生み出すだろう（例えば、第３の集合の各インデックスドキュメントは、ワードＡを少なくとも１つ及びワードＢをすくなくとも１つ含む）。別の例では、集合Ａ、集合Ｂ、及び集合Ｃに対する積集合動作の実施（例えば、集合Ａと、集合Ｂと、集合Ｃとの積集合は、Ａ∩（Ｂ∩Ｃ）で示される）は、Ａ、Ｂ、及びＣを構成する全ての要素からなる集合を決定する。
【００３４】
以下は、ワードＡ、ワードＢ、及びワードＣにそれぞれ対応するインデックスドキュメント集合に対して積集合動作を実行する一例である。この例では、各インデックスドキュメントは、番号（例えば１）によって識別される。特定のワードに対応するインデックスドキュメントの識別子は、この例では、リンクリストなどのデータ構造の中に記憶される。この構造では、各ノードが、１つのインデックスドキュメントに関連付けられている識別子を記憶しており、リンクリストのノードは、そのそれぞれのインデックスドキュメント識別子に基づいて分類されている。例えば、ワードＡに関連付けられているリンクリストは、分類されたノード：１、２、３、４、５、８、及び１０を含み（これは、ワードＡが、インデックスドキュメント１、２、３、４、５、８、及び１０のそれぞれの中で見つかることを意味する）、ワードＢに関連付けられているリンクリストは、分類されたノード：２、４、８、及び９を含み、ワードＣに関連付けられているリンクリストは、分類されたノード：３、４、８、及び１０を含む。リンクリストは、３つ全てのリンクリストに共通する値を決定するために比較される。先ず、３つ全てのリンクリストの第１のノードの値（ワードＡのリストからの１、ワードＢのリストからの２、及びワードＣのリストからの３）が比較される。３つ全ての値が同じではないので、少なくとも一部のリンクリストが後続ノードにトラバースされる。最も大きい値３は、ワードＣに対応しているので、ワードＡ及びワードＢに対応するリンクリストは、それぞれ、少なくとも３の値に達するまでトラバースされる。ワードＡのリンクリストは、値３を含む第３のノードまでトラバースされ、ワードＢのリンクリストは、値４を含む第２のノードまでトラバースされる。いま一度、３つ全てのリンクリストの現行ノードの値が再び比較される。３つ全ての値が同じではないので、リンクリストの更なるトラバースが必要である。最も大きい値４は、ワードＢに対応しているので、ワードＡ及びワードＣに対応するリンクリストは、それぞれ、少なくとも４の値に達するまでトラバースされる。ワードＡのリンクリストは、値４を含む第４のノードまでトラバースされ、ワードＣのリンクリストは、値４を含む第２のノードまでトラバースされる。３つ全てのリンクリストの現ノードの値が再び比較される。３つ全ての値が同じであるので、識別子値４に関連付けられているインデックスドキュメントは、ワードＡ、ワードＢ、及びワードＣを全て含むものと決定され、この積集合動作の結果集合に含められる。各リンクリストの次のノードが互いに比較され、プロセスは、いずれかのリンクリストがその最終ノードにトラバースされるまで、３つ全てのリンクリストに共通する値を見つけるために続けられる。
【００３５】
ステップ４０２では、検索クエリが受信される。様々な実施形態において、検索クエリは、一連の自然言語形態素と、これらの形態素間の論理的関係性を記述する論理タームとを含む。形態素は、言語における意味的に有意な最小単位である。例えば、形態素は、中国語のワードを含んでいてよい。論理タームは、検索クエリの形態素に一致するインデックスドキュメントに対して実施される論理動作の種類を示していてよい。例えば、論理タームは、「ＡＮＤ」などのブール演算子を含んでいてよい。一部の実施形態において、検索クエリの中の２つの形態素間に論理タームが存在しないときは、使用されるデフォルトの論理タームは「ＡＮＤ」である。
【００３６】
ステップ４０４では、検索クエリから文字列が抽出され、この文字列は、１つ以上の検索ワードをそれぞれ含む複数の検索タームに区分される。
【００３７】
一部の実施形態では、検索クエリから文字のみを抽出しその他の記号は抽出しないことによって、検索クエリから文字列が抽出される。文字列は、次いで、検索タームに区分される。各検索タームは、１つ以上の検索ワードからなる集合を含んでいてよい。各検索タームは、例えば、単一ワード、言い回し、複数ワードの有意な組み合わせ、慣用句、及び短文を含んでいてよい。文字列を区分する法則は、検索システム及び言語環境によって異なってよい。一部の実施形態では、文字列は、検索クエリに使用されている言語の文法体系にしたがって区分される。本明細書で説明される検索クエリが中国語である例では、各検索ワードは、検索文字と呼ばれることもある。以下、中国語文字の一部については記号Ｔ＋番号で表し、各記号＋番号と中国語文字との対応関係は文末の表１に示す。
【００３８】
例えば、中国語で構築された検索クエリ「浙江杭州Ｔ１檬茶」（「浙江省杭州のレモンティー」）を考える。このクエリは、３つの検索ターム、すなわち「浙江」（「浙江」は、中国の省）、「杭州」（「杭州」は、浙江省の一都市）、及び「Ｔ１檬茶」（「Ｔ１檬茶」は、「レモンティー」の意味）に区分される。これらの検索タームは、「浙江杭」、「州Ｔ１檬」（州レモン）、及び「茶」（ティー）には区分されないだろう。なぜならば、このような分割は、自然な中国語の慣習にそぐわないからである。別の例では、中国語で構築された検索クエリ「利比Ｔ２岌岌可危」（「リビアは危機的な状態にある」という意味）を考える。この検索クエリは、２つの検索ターム、すなわち国名「利比Ｔ２」（「リビア」）及び言い習わし「岌岌可危」（「危機的な状態にある」）に区分される。更なる例として、中国語で構築された検索クエリ「他山之石可以攻玉的出Ｔ３」（この言い習わしの由来は、「よその山の石でも自分の玉を磨くのに使用することができる」）を検討してみる。この検索クエリは、３つの検索ターム、すなわち「他山之石可以攻玉」（「他山の石とする」）、単一文字「的」（「の」）、及び文字組み合わせ「出Ｔ３」（「由来」）に区分されてよい。
【００３９】
ステップ４０６では、複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合が取り出される。
【００４０】
各検索タームは、１つ以上の検索ワードを含む。例えば、検索ターム「浙江」は、２つの検索文字「浙」及び「江」を含む。一部の実施形態では、検索クエリの各検索タームに含まれる各検索ワードについてのインデックスドキュメント集合を取り出すために、既定のインデックステーブルが照会されてよい。上記のように、既定のインデックステーブルは、各インデックス文字／ワードに対応するインデックスドキュメントと、これらの対応するインデックスドキュメントのそれぞれのアドレスとを含んでいてよい。例えば、検索文字「浙」について、１つ以上の既定のインデックステーブルが照会され、「浙」を含む第１の集合のインデックスドキュメント（と、例えばそのそれぞれのアドレスと）が返されてよい。また、１つ以上の既定のインデックステーブルは、検索文字「江」についても照会され、「江」を含む第２の集合のインデックスドキュメント（と、例えばそのそれぞれのアドレスと）が返されてよい。
【００４１】
ステップ４０８では、複数の検索タームのうちの第１の検索タームに関連付けられている取り出されたインデックスドキュメント集合が、選択動作に少なくとも部分的に基づいて処理される。第１の検索タームに関連付けられている取り出されたインデックスドキュメント集合の処理結果は、その第１の検索タームについての検索結果を構成する。
【００４２】
各検索タームについて取り出されたインデックスドキュメント集合を処理することと、設定可能な少なくとも１つの選択動作を使用し、処理する（例えば積集合動作を実行する）インデックスドキュメントの数を最少にする及び／又はプロセスの（例えば積集合動作を実行する）回数を減らすこととが実施される。様々な実施形態において、検索タームについて取り出されたインデックスドキュメント集合を処理すること、及び設定可能な少なくとも１つの選択動作を使用することによって、積集合動作は、その検索タームについて取り出された全てのインデックスドキュメント集合よりも少ない数のインデックスドキュメント集合に対して実施される。
【００４３】
一部の実施形態では、処理するインデックスドキュメントの量を減らすために、選択動作は、もし処理が必要であるならば、検索タームについて取り出された全てのインデックスドキュメント集合の一部分集合をその検索タームについて処理されるものとして選び出すように指示する。そして、インデックスドキュメント集合の部分集合が処理された後は、その処理結果が、検索タームの検索結果として機能するように指定される。
【００４４】
一部の実施形態では、選択動作は、検索タームについて取り出された全てのインデックスドキュメント集合が複数の群に分けられ、各群が処理されるように指示し、次いで、それらの群の処理結果からの部分集合が、その検索タームの検索結果として機能するように指定される。
【００４５】
一部の実施形態では、選択動作は、検索タームについて取り出されたインデックスドキュメント集合が複数の群に分けられ、各群から、（１つ以上の）インデックスドキュメント集合からなる部分集合が選択されるように指示する。各群から選択された（１つ以上の）インデックスドキュメントは、次いで、処理され、その処理結果は、その検索タームの検索結果として機能するように指定される。
【００４６】
取り出されたインデックスドキュメント集合を選択動作に基づいて処理する様々な例が、以下で、少なくとも図５、図６、及び図７において説明される。
【００４７】
ステップ４１０では、結果ドキュメント集合を生成するために、複数の検索タームに対応する検索結果に対して積集合動作が実施される。
【００４８】
一部の実施形態では、積集合動作は、結果ドキュメント集合を得るために、検索クエリの各検索タームの検索結果に対して実施される。
【００４９】
ステップ４１２では、結果ドキュメント集合のうち、複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第１の部分集合が決定され、返される。
【００５０】
一部の実施形態では、結果ドキュメントのうちどのドキュメントが検索クエリのどの検索タームも含んでいるかが決定される。検索タームの検索結果の中のインデックスドキュメントは、選択動作ゆえに、その検索タームのどの検索ワードも含んでいるとは限らないので、結果ドキュメント集合の中のインデックスドキュメントには、検索クエリの全ての検索ワードよりも少ない数の検索ワードを含むものもあるだろう。したがって、結果ドキュメント集合の中の各インデックスドキュメントは、実際に検索クエリの全ての検索ワードを含んでいるかどうかを検証される。もし、結果ドキュメント集合の中のあるインデックスドキュメントが、検索クエリのどの検索タームも含んでいるならば、そのドキュメントは、結果ドキュメント集合のうち、検索クエリに応答してユーザに返される第１のインデックスドキュメント部分集合に含められるものと決定される。しかしながら、もし、あるインデックスドキュメントが、少なくとも１つの検索タームを含んでいないならば、そのインデックスドキュメントは、第１の部分集合から除外される。例えば、結果ドキュメント集合のうち、ユーザに返される第１の部分集合は、検索クエリのどの検索タームも（したがってどの検索ワードも）少なくとも１つずつ含んでいる。結果ドキュメント集合のうち、検索クエリの少なくとも１つの検索タームを除かれたドキュメントは、第１のインデックスドキュメント部分集合に含められない。
【００５１】
例えば、検索クエリ「浙江杭州Ｔ１檬茶」について決定された結果ドキュメント集合の中のあるインデックスドキュメントが、「浙」及び「杭」を含むが「浙江」及び「杭州」を含まない場合、このインデックスドキュメントは、ユーザに返される第１のインデックスドキュメント部分集合から除外される。もし、このインデックスドキュメントが、「浙江」及び「杭州」はもちろん「Ｔ１檬茶」も含むならば、そのインデックスドキュメントは、第１の部分集合に含められ、ユーザに返される。ユーザに返された後、それらのインデックスドキュメントは、ユーザによって様々な媒体（例えば、ネットワークハードドライブ、メールボックス、及びその他の外部ストレージ機器）に保存されてよい。
【００５２】
図５は、検索タームに関連付けられているインデックスドキュメント集合に対して選択動作を実行する一実施形態を示すフローチャートである。一部の実施形態では、プロセス５００は、システム３００において実行に移されてよい。一部の実施形態では、プロセス５００は、プロセス４００のステップ４０８を実行に移すために使用されてよい。
【００５３】
上記のように、プロセス４００のステップ４０８における選択動作に基づくインデックスドキュメント集合の処理は、様々なやり方で実行に移されてよい。一部の実施形態では、選択動作は、特定の検索タームに属する検索ワードについて取り出された１つのインデックスドキュメント集合を、その検索タームの検索結果として選択することであってよい。プロセス５００は、このような選択動作の一具体例を示しており、ここでは、選択動作は、第１の検索タームに属する検索ワードに関連付けられているインデックスドキュメント集合のうち、インデックスドキュメントの数が最も少ないインデックスドキュメント集合を、第１の検索タームについての検索結果を構成するものとして選択する。
【００５４】
ステップ５０２では、第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合が、互いに比較される。例えば、第１の検索タームが、検索文字「浙」及び「江」を含む「浙江」であるとする。この例では、「浙」について取り出されたインデックスドキュメント集合は、３４のドキュメントを含み、「江」について取り出されたインデックスドキュメント集合は、１６のインデックスドキュメントを含んでいるだろう。
【００５５】
ステップ５０４では、最も少ない数のインデックスドキュメントに関連付けられているインデックスドキュメント集合が、第１の検索タームについての検索結果を構成するものとして選択される。上記の例に戻ると、「江」について取り出されたインデックスドキュメント集合は、「浙」について取り出されたインデックスドキュメント集合（３４）よりも少ない数のインデックスドキュメント集合（１６）を含むので、「江」について取り出されたインデックスドキュメント集合が、検索ターム「浙江」についての検索結果であると見なされ、その一方で、「浙」について取り出されたインデックスドキュメント集合は、使用されない／無視される。
【００５６】
以下は、プロセス４００を使用して、なかでも特にステップ４０８を実行に移すためにプロセス５００を使用してインデックスドキュメントを見つけることを示す別の例である。ユーザが、クエリ「浙江杭州」によって検索を行うとする。（例えば、既定のインデックステーブルでの調べによると、）「浙」について取り出されたインデックスドキュメント集合の中のインデックスドキュメントの数は、Ｎ１であり、「江」について取り出されたインデックスドキュメント集合の中のインデックスドキュメントの数は、Ｍ１であり、「杭」について取り出されたインデックスドキュメント集合の中のインデックスドキュメントの数は、Ｎ２であり、「州」について取り出されたインデックスドキュメント集合の中のインデックスドキュメントの数は、Ｍ２である。検索クエリ「浙江杭州」が２つの検索ターム「浙江」及び「杭州」に区分された後は、「浙」をインデックスとしたＮ１のインデックスドキュメントが、検索ターム「浙江」についての検索結果として機能するために選択され、「杭」をインデックスとしたＮ２のインデックスドキュメントが、検索ターム「杭州」についての検索結果として選択される。次いで、各ドキュメントが「浙」及び「杭」を少なくとも１つずつ含むような結果ドキュメント集合を得るために、検索ターム「浙江」及び「杭州」についてのこれら２つの検索結果に対して積集合動作が実施される。従来の技術に基づくと、少なくともＮ１×Ｍ１＋Ｎ２×Ｍ２の積集合動作が実施される必要があったが、プロセス５００のようなプロセスでは、実施される必要がある積集合動作は、僅かＮ１×Ｎ２である。したがって、実施される動作の数が大幅に減少している。この例において、とりわけもしＭ１＞Ｎ１で且つＭ２＞Ｎ２であるならば、積集合動作を実施されるインデックスドキュメントの数が減少するゆえに、計算時間は尚も更に短縮される。
【００５７】
図６は、検索タームに関連付けられているインデックスドキュメント集合に対して選択動作を実行する一実施形態を示すフローチャートである。一部の実施形態では、プロセス６００は、システム３００において実行に移されてよい。一部の実施形態では、プロセス６００は、プロセス４００のステップ４０８を実行に移すために使用されてよい。
【００５８】
上記のように、プロセス４００のステップ４０８における選択動作に基づくインデックスドキュメント集合の処理は、様々なやり方で実行に移されてよい。一部の実施形態では、選択動作は、先ず、特定の検索タームについてのインデックスドキュメント集合を２つの群に分けることと、第１のドキュメント集合及び第２のドキュメントを作成するために、各群のインデックスドキュメント集合に対して積集合動作を実行することと、第１のドキュメント集合及び第２のドキュメント集合のうちで少ない数のインデックスドキュメントを含んでいる方のドキュメント集合を、その検索タームについての検索結果として選ぶことと、を含んでいてよい。一部の実施形態では、特定の検索タームについて取り出されたインデックスドキュメント集合は、３つ以上の群に分けられて同様に処理されてもよい。
【００５９】
ステップ６０２では、第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合が、第１の群と第２の群とに分けられる。一部の実施形態では、第１の検索タームの検索ワードについて取り出されたインデックスドキュメント集合は、任意の適切な基準に基づいて２つの群に分けられてよい。例えば、もし、偶数のインデックスドキュメント集合があるならば、それらのインデックスドキュメント集合は、集合数が等しい２つの群に分けられてよい。或いは、もし、奇数のインデックスドキュメント集合があるならば、それらのインデックスドキュメント集合は、一方の群がもう一方の群よりも１つ多くの集合を有する２つの群に分けられてよい。
【００６０】
ステップ６０４では、第１のドキュメント集合を作成するために第１の群の１つ以上のインデックスドキュメント集合に対して及び第２のドキュメント集合を作成するために第２の群の１つ以上のインデックスドキュメント集合に対して積集合動作が実施される。積集合動作は、第１の群の各インデックスドキュメントに含まれる各検索ワードを各インデックスドキュメントが少なくとも１つずつ含むような第１のドキュメント集合を作成するために、第１の群のインデックスドキュメント集合に対して実施され、また、第２の群の各インデックスドキュメントに含まれる各検索ワードを各インデックスドキュメントが少なくとも１つずつ含むような第２のドキュメント集合を作成するために、第２の群のインデックスドキュメント集合に対しても実施される。
【００６１】
ステップ６０６では、第１のドキュメント集合及び第２のドキュメント集合のうち、少ない数のインデックスドキュメントの数に関連付けられた方のドキュメント集合が、第１の検索タームについての検索結果を構成するものとして選択される。
【００６２】
プロセス６００では、検索タームについて取り出された全てのインデックスドキュメント集合に対して一気に積集合動作が実施されるのではなく、検索タームについてのインデックスドキュメント集合のうちの部分群に対してのみ一度に積集合動作が実施される。これは、効率を向上させる。なぜならば、積集合動作を一度に実行する必要があるインデックスドキュメントの数が減少し、動作が短縮されるとともに、その計算効率が高まるからである。以下の例は、プロセス４００を使用して、そしてなかでも特にステップ４０８を実行に移すためにプロセス６００を使用してインデックスドキュメントを見つける効率を示す一例である。ユーザが、クエリ「Ｔ４利申Ｔ５文件」（特許出願書類という意味）によって検索を行うとする。個々の検索文字（「Ｔ４」、「利」、「申」、「Ｔ５」、「文」、及び「件」）は、それぞれ１、３、５、２、４、及び６のインデックスドキュメント数に関連付けられているとする。もし、検索タームについて取り出された全てのインデックスドキュメント集合に対して積集合動作が実施されたならば、積集合動作の回数は、１×３×５×２×４×６＝７２０になるだろう。しかしながら、プロセス６００では、前半３文字「Ｔ４利申」のインデックスドキュメント集合が第１の群に分けられてよく、後半３文字「Ｔ５文件」のインデックスドキュメント集合が第２の群に分けられてよい。したがって、第１の群に対して実施される積集合動作の回数は、１×３×５＝１５になり、第２の群に対して実施される積集合動作の回数は、２×４×６＝４８になるだろう。したがって、検索タームについて実施される積集合動作の合計回数は、１×３×５＋２×４×６＝６３である。したがって、検索タームに関連付けられているインデックスドキュメント集合の部分群に対して積集合動作を実行することによって、積集合動作の回数が大幅に低減されている。
【００６３】
図７は、検索タームに関連付けられているインデックスドキュメント集合に対して選択動作を実行する一実施形態を示すフローチャートである。一部の実施形態では、プロセス７００は、システム３００において実行に移されてよい。一部の実施形態では、プロセス７００は、プロセス７００のステップ４０８を実行に移すために使用されてよい。
【００６４】
上記のように、プロセス４００のステップ４０８における選択動作に基づくインデックスドキュメント集合の処理は、様々なやり方で実行に移されてよい。一部の実施形態では、選択動作は、先ず、特定の検索タームについてのインデックスドキュメント集合を２つの群に分けることと、各群から１つずつインデックスドキュメント集合を選ぶことと、選択された２つのインデックスドキュメント集合に対して積集合動作を実行することと、積集合動作からの結果を、その検索タームについての検索結果として機能させるために使用すること、とを含んでいてよい。一部の実施形態では、特定の検索タームについてのインデックスドキュメント集合は、３つ以上の群に分けられて同様に処理されてもよい。
【００６５】
ステップ７０２では、第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合が、第１の群と第２の群とに分けられる。一部の実施形態では、第１の検索タームの検索ワードについて取り出されたインデックスドキュメント集合は、任意の適切な基準に基づいて２つの群に分けられてよい。
【００６６】
ステップ７０４では、第１の群から第１のインデックスドキュメント集合が選択され、第２の群から第２のインデックスドキュメント集合が選択される。２つの群のそれぞれから、任意の適切な基準に基づいてインデックスドキュメント集合が１つずつ選択されてよい。例えば、群のなかで最も少ない数のインデックスドキュメントに関連付けられているインデックスドキュメント集合が、その群から選択されてよい。
【００６７】
ステップ７０６では、第１のインデックスドキュメント集合及び第２のインデックスドキュメント集合に対して積集合動作が実施され、それらの積集合動作の結果が、第１の検索タームについての検索結果を構成するものとして決定される。第１の群及び第２の群から選択された２つのインデックスドキュメント集合に対する積集合動作の結果は、それぞれ、選択された第１のインデックスドキュメント集合に関連付けられている検索ワードを少なくとも１つと、選択された第２のインデックスドキュメント集合に関連付けられている検索ワードを少なくとも１つとを含む。積集合動作の結果は、第１の検索タームについての検索結果として機能する。
【００６８】
以下の例は、プロセス４００を使用して、そしてなかでも特にステップ４０８を実行に移すためにプロセス７００を使用してインデックスドキュメントを見つけることを示す一例である。ユーザが、クエリ「Ｔ４利申Ｔ５文件」（特許出願書類という意味）によって検索を行うとする。個々の検索文字（「Ｔ４」、「利」、「申」、「Ｔ５」、「文」、及び「件」）は、それぞれ１、３、５、２、４、及び６のインデックスドキュメント数に関連付けられているとする。検索文字「Ｔ４」、「利」、及び「申」に対応するインデックスドキュメント集合が第１の群を構成し、検索文字「Ｔ５」、「文」、及び「件」に対応するインデックスドキュメント集合が第２の群を構成する。もし、検索タームについて取り出された全てのインデックスドキュメント集合に対して積集合動作が実施されたならば、積集合動作の回数は、１×３×５×２×４×６＝７２０になるだろう。しかしながら、プロセス７００において、各群のインデックスドキュメント集合のインデックスドキュメントの数が互いに比較された後、第１の群について選択されたインデックスドキュメント集合は、検索文字「Ｔ４」に対応し、１つのインデックスドキュメントを含み、第２の群について選択されたインデックスドキュメント集合は、「Ｔ５」に対応し、２つのインデックスドキュメントを含む。したがって、選択された第１のドキュメント集合及び第２のドキュメント集合に対する積集合動作の回数は、１×２＝２である。たとえもし、最も多くのインデックスドキュメントを有するインデックスドキュメント集合（第１の群の中では「申」に対応する集合及び第２の群の中では「件」に対応する集合）が選択されたとしても、積集合動作の回数は、僅か５×６＝３０であり、これは、依然として、そうでなければ必要とされるだろう７２０回の積集合動作よりも大幅に少ない。
【００６９】
図８は、一致するインデックスドキュメントを見つけるためのプロセスの一例を示す図である。一部の実施形態では、プロセス８００は、システム３００において実行に移される。
【００７０】
プロセス８００は、プロセス４００を適用する一具体例を示している。この例では、ユーザが、浙江省杭州のレモンティーに関する情報を検索しようとしている。したがって、ユーザは、中国語の検索クエリ「浙江杭州Ｔ１檬茶」（「浙江省杭州のレモンティー」という意味）を入力する。
【００７１】
ステップ８０２では、検索クエリ「浙江杭州Ｔ１檬茶」が受信される。例えば、検索クエリ「浙江杭州Ｔ１檬茶」は、ユーザによって、検索エンジンのクエリボックスに入力されてよい。
【００７２】
ステップ８０４では、検索クエリ「浙江杭州Ｔ１檬茶」は、中国語の文法規則に少なくとも部分的に基づいて、３つの検索ターム、すなわち「浙江」、「杭州」、及び「Ｔ１檬茶」（「レモンティー」の意味）に区分される。
【００７３】
ステップ８０６では、各検索タームの各検索ワードに対応するインデックスドキュメント集合が取り出され、検索タームについて取り出されたインデックスドキュメント集合からの１つのインデックスドキュメント集合が、その検索タームについての検索結果を構成するものとして選択される。
【００７４】
先ず、検索クエリの各検索タームの中の各検索ワードについて、インデックスドキュメント集合が取り出される。例えば、検索ワードについてのインデックスドキュメント集合は、１つ以上の既定のインデックステーブルを照会することによって取り出される。したがって、検索ターム「浙江」の場合は、「浙」についてインデックスドキュメント集合が取り出され、「江」について別のインデックスドキュメント集合が取り出される。検索ターム「杭州」の場合は、「杭」についてインデックスドキュメント集合が取り出され、「州」について別のインデックスドキュメント集合が取り出される。検索ターム「Ｔ１檬茶」の場合は、「Ｔ１」について第１のインデックスドキュメント集合が取り出され、「檬」について第２のインデックスドキュメント集合が取り出され、「茶」について第３のインデックスドキュメント集合が取り出される。この例では、各検索タームについて、インデックスドキュメント集合の１つが任意に選択される。
【００７５】
検索ターム「浙江」の場合は、「江」について取り出されたインデックスドキュメント集合が、１２のインデックスドキュメントを含み、この検索タームについての検索結果として任意に選択される。例に示されるように、「浙」を含むボックスは、「浙」について取り出されたインデックスドキュメント集合がこれ以上は使用されないことを表すために、網掛けされている。検索ターム「浙江」についての検索結果のインデックスドキュメントは、それぞれ「江」を含み、Ａ１、Ａ３、Ａ５、Ａ６、Ａ１１、Ａ１３、Ａ１４、Ａ１５、Ａ１７、Ａ１８、Ａ２１、及びＡ２２におけるそのそれぞれのアドレスによって識別されてよい。検索ターム「杭州」の場合は、「杭」について取り出されたインデックスドキュメント集合が、１０のインデックスドキュメントを含み、この検索タームについての検索結果として任意に選択される。例に示されるように、「州」を含むボックスは、「州」について取り出されたインデックスドキュメント集合がこれ以上は使用されないことを表すために、網掛けされている。検索ターム「杭州」についての検索結果のインデックスドキュメントは、それぞれ「杭」を含み、Ａ１、Ａ２、Ａ３、Ａ５、Ａ７、Ａ１０、Ａ１８、及びＡ２３におけるそのそれぞれのアドレスによって識別されてよい。検索ターム「Ｔ１檬茶」の場合は、「檬」について取り出されたインデックスドキュメント集合が、５つのインデックスドキュメントを含み、この検索タームについての検索結果として任意に選択される。例に示されるように、「Ｔ１」及び「茶」を含むボックスは、「Ｔ１」及び「茶」について取り出されたインデックスドキュメント集合がこれ以上は使用されないことを表すために、網掛けされている。検索ターム「Ｔ１檬茶」についての検索結果のインデックスドキュメントは、それぞれ「檬」を含み、Ａ１、Ａ２、Ａ３、Ａ５、及びＡ１８におけるそのそれぞれのアドレスによって識別されてよい。
【００７６】
ステップ８０８では、各インデックスドキュメントが少なくとも「江」、「杭」、及び「檬」を１つずつ含むような結果ドキュメント集合を得るために、「浙江」、「杭州」、及び「Ｔ１檬茶」についての検索結果に対して積集合動作が実施される。先の例に戻ると、得られた結果ドキュメント集合は、インデックスドキュメントＡ１と、インデックスドキュメントＡ３とを含む。
【００７７】
ステップ８１０では、結果ドキュメント集合の第１のインデックスドキュメントが、それが各検索ターム「浙江」、「杭州」、及び「Ｔ１檬茶」を含むかどうかを決定するためにスキャンされ、第１のインデックスドキュメントがこれらの各検索タームを含む場合は、第１のインデックスドキュメントはユーザに返されるものと決定され、第１のインデックスドキュメントがこれらの検索タームの少なくとも１つを含まない場合は、第１のインデックスドキュメントはユーザに返されないものと決定される。先の例に戻ると、インデックスドキュメントＡ１及びＡ３は、それが「浙江」、「杭州」、及び「Ｔ１檬茶」を少なくとも１つずつ含むかどうかを決定するために、それぞれチェックされる。もし含むならば、このインデックスドキュメントは、検索クエリに一致するものと決定され、ユーザに返される。そうでなく、もし、インデックスドキュメントが「浙江」、「杭州」、及び「Ｔ１檬茶」の少なくとも１つを含まないならば、このインデックスドキュメントは、ユーザに返されない。この例では、インデックスドキュメントＡ１及びインデックスドキュメントＡ３は、ともに、それぞれ３つの検索タームを全て含むものと決定され、したがって、両ドキュメントとも、ユーザに返される。
【００７８】
各検索タームについての検索結果として機能させるために、１つのインデックスドキュメント集合のみを選択することによって、積集合動作を実施される必要があるインデックスドキュメントが減少し、したがって、関連情報の検索が更に効率的になる。
【００７９】
図９は、一致するインデックスドキュメントを見つけるためのプロセスの一例を示す図である。
【００８０】
プロセス８００が、検索タームについての検索結果として機能させるために任意の一インデックスドキュメントを選択する例を使用しているのに対し、プロセス９００は、最も少ない数のインデックスドキュメントを関連付けられているインデックスドキュメント集合を検索タームについての検索結果として選ぶ別の例を示している。プロセス９００は、プロセス８００のステップ８０２及び８０４によって実行に移されてよく、また、プロセス８００のステップ８０６、８０８、及び８１０を差し替えてあると考えられる。
【００８１】
ステップ９０６では、各検索タームの各検索ワードに対応するインデックスドキュメントが取り出され、検索タームに関連付けられている検索ワードに属するインデックスドキュメント集合から、その検索タームについての検索結果を構成するものとして１つのインデックスドキュメント集合が選択される。ここで、選択されるインデックスドキュメント集合は、その検索タームに属する検索ワードに関連付けられているインデックスドキュメントの数が最も少ない集合である。
【００８２】
先ず、検索クエリの各検索タームの中の各検索ワードについて、インデックスドキュメント集合が取り出される。例えば、検索文字／ワードについてのインデックスドキュメント集合は、１つ以上の既定のインデックステーブルを照会することによって取り出されてよい。したがって、検索ターム「浙江」の場合は、１０のインデックスドキュメントを含むインデックスドキュメント集合が「浙」について取り出され、１２のインデックスドキュメントを含む別のインデックスドキュメント集合が「江」について取り出され、したがって、検索タームについての検索結果としては、より少ないインデックスドキュメントを含む「浙」のインデックスドキュメント集合が選択される。検索ターム「杭州」の場合は、８のインデックスドキュメントを含むインデックスドキュメント集合が「杭」について取り出され、１０のインデックスドキュメントを含む別のインデックスドキュメント集合が「州」について取り出され、したがって、検索タームについての検索結果としては、より少ないインデックスドキュメントを含む「杭」のインデックスドキュメント集合が選択される。検索ターム「Ｔ１檬茶」の場合は、６のインデックスドキュメントを含む第１のインデックスドキュメント集合が「Ｔ１」について取り出され、５のインデックスドキュメントを含む第２のインデックスドキュメント集合が「檬」について取り出され、９のインデックスドキュメントを含む第３のインデックスドキュメント集合が「茶」について取り出され、したがって、検索タームについての検索結果としては、最も少ないインデックスドキュメントを含む「檬」のインデックスドキュメント集合が選択される。
【００８３】
ステップ９０８では、各インデックスドキュメントが少なくとも「浙」、「杭」、及び「檬」を１つずつ含むような結果ドキュメント集合を得るために、「浙江」、「杭州」、及び「Ｔ１檬茶」についての検索結果に対して積集合動作が実施される。先の例に戻ると、得られた結果ドキュメント集合は、インデックスドキュメントＡ１と、インデックスドキュメントＡ２と、インデックスドキュメントＡ３とを含む。
【００８４】
ステップ９１０では、結果ドキュメント集合の第１のインデックスドキュメントが、それが各検索ターム「浙江」、「杭州」、及び「Ｔ１檬茶」を含むかどうかを決定するためにスキャンされ、第１のインデックスドキュメントがこれらの各検索タームを含む場合は、第１のインデックスドキュメントはユーザに返されるものと決定され、第１のインデックスドキュメントがこれらの検索タームの少なくとも１つを含まない場合は、第１のインデックスドキュメントはユーザに返されないものと決定される。先の例に戻ると、インデックスドキュメントＡ１及びＡ３は、それが「浙江」、「杭州」、及び「Ｔ１檬茶」を少なくとも１つずつ含むかどうかを決定するために、それぞれチェックされる。もし含むならば、このインデックスドキュメントは、検索クエリに一致するものと決定され、ユーザに返される。そうでなく、もし、インデックスドキュメントが「浙江」、「杭州」、及び「Ｔ１檬茶」の少なくとも１つを含まないならば、このインデックスドキュメントは、ユーザに返されない。この例では、インデックスドキュメントＡ１及びインデックスドキュメントＡ３は、それぞれ３つの検索タームを全て含むものと決定されるが、インデックスドキュメントＡ２は、３つ全ての検索タームを含んではいないので、インデックスドキュメントＡ１及びＡ３のみが、ユーザに返されるだろう。
【００８５】
各検索タームについての検索結果として機能させるために、最も少ない数のインデックスドキュメントに関連付けられている１つのインデックスドキュメント集合のみを選択することによって、積集合動作を実施される必要があるインデックスドキュメントが減少し、したがって、関連情報の検索が更に効率的になる。
【００８６】
図１０は、一致するインデックスドキュメントを見つけるためのプロセスの一例を示す図である。一部の実施形態では、プロセス１０００は、システム３００において実行に移される。
【００８７】
プロセス１０００は、プロセス４００を適用する一具体例を示している。プロセス１０００は、より効率的な検索を生み出すために、積集合動作を実施されるインデックスドキュメントの数を減少させるための複数の技術の混合を使用することを示している。プロセス１０００は、プロセス８００のステップ８０２及び８０４によって実行に移されてよく、また、プロセス８００のステップ８０６、８０８、及び８１０を差し替えてあると考えられる。
【００８８】
この例では、ユーザが、浙江省杭州のレモンティーに関する情報を検索しようとしている。したがって、ユーザは、中国語の検索クエリ「浙江杭州Ｔ１檬茶」（「浙江省杭州のレモンティー」の意味）を入力する。
【００８９】
ステップ１００２では、検索ターム「浙江」の検索文字「浙」及び「江」に対応するインデックスドキュメントを求めてインデックステーブルが照会され、「浙」に対応する１０のインデックスドキュメントと、「江」に対応する１２のインデックスドキュメントとが取り出される。
【００９０】
ステップ１００４では、検索ターム「浙江」について、「浙」に対応するインデックスドキュメント集合は、「江」についてのインデックスドキュメント集合よりも少ない数のインデックスドキュメントを有するゆえに、「浙江」についての検索結果を構成するものと決定される。この例では、この検索結果の１０のドキュメントのアドレスは、Ａ１、Ａ２、Ａ３、Ａ４、Ａ７、Ａ８、Ａ１０、Ａ１２、Ａ１７、及びＡ２０である。
【００９１】
ステップ１００６では、検索ターム「杭州」の検索文字「杭」及び「州」に対応するインデックスドキュメントを求めてインデックステーブルが照会され、「杭」に対応する８のインデックスドキュメントと、「州」に対応する１０のインデックスドキュメントとが取り出される。
【００９２】
ステップ１００８では、「杭州」について取り出されたインデックスドキュメント集合が、２つの群に分けられる。この例では、２つの検索文字「杭州」について取り出されたインデックスドキュメント集合が２つのみであるので、第１の群は、「杭」に対応する８のインデックスドキュメントを含み、第２の群は、「州」に対応する１０のインデックスドキュメントを含む。
【００９３】
ステップ１０１０では、それぞれが「杭」及び「州」の両方を含むような２つのインデックスドキュメントを得るために、第１の群及び第２の群に対して積集合動作が実施される。この例において、第１の群及び第２の群に対して積集合を実行することによって得られる結果は、アドレスＡ１及びＡ３に位置して「杭」及び「州」の両方をそれぞれ含んでいる２つのインデックスドキュメントである。
【００９４】
ステップ１０１２では、検索ターム「Ｔ１檬茶」の検索文字「Ｔ１」、「檬」、及び「茶」に対応するインデックスドキュメント集合を求めてインデックステーブルが照会され、取り出された３つのインデックスドキュメント集合は、２つの群に分けられる。ここで、第１の群は、「Ｔ１」に対応するインデックスドキュメント集合と、「檬」に対応するインデックスドキュメント集合とを含み、第２の群は、「茶」に対応するインデックスドキュメント集合を含む。
【００９５】
ステップ１０１４では、それぞれが「Ｔ１」及び「檬」の両方を含むような３つのインデックスドキュメントを得るために、「Ｔ１」に対応するインデックスドキュメント集合及び「檬」に対応するインデックスドキュメント集合に対して積集合動作が実施される。ここで、これら３つのインデックスドキュメント集合は、第１のドキュメント集合を構成し、「茶」に対応するインデックスドキュメント集合は、第２のドキュメント集合を構成する。
【００９６】
ステップ１０１６では、「茶」に関連付けられている第２のドキュメント集合よりも少ない数のインデックスドキュメントに関連付けられているゆえに、第１のドキュメント集合が、検索ターム「Ｔ１檬茶」についての検索結果を構成するものと決定される。この例では、検索ターム「Ｔ１檬茶」についての検索結果として機能するために選択された第１のドキュメント集合の３つのインデックスドキュメントは、アドレスＡ１、Ａ３、及びＡ５に位置している。
【００９７】
ステップ１０１８では、各インデックスドキュメントが少なくとも「浙」、「杭」、「州」、「Ｔ１」、及び「檬」を１つずつ含むような結果ドキュメント集合を得るために、「浙江」、「杭州」、及び「Ｔ１檬茶」についての検索結果に対して積集合動作が実施される。この例では、得られた結果ドキュメント集合は、インデックスドキュメントＡ１と、インデックスドキュメントＡ３とを含む。
【００９８】
ステップ    １０２０では、結果ドキュメント集合の第１のインデックスドキュメントが、それが各検索ターム「浙江」、「杭州」、及び「Ｔ１檬茶」を含むかどうかを決定するためにスキャンされ、第１のインデックスドキュメントがこれらの各検索タームを含む場合は、第１のインデックスドキュメントはユーザに返されるものと決定され、第１のインデックスドキュメントがこれらの検索タームの少なくとも１つを含まない場合は、第１のインデックスドキュメントはユーザに返されないものと決定される。先の例に戻ると、インデックスドキュメントＡ１及びＡ３は、それが「浙江」、「杭州」、及び「Ｔ１檬茶」を少なくとも１つずつ含むかどうかを決定するために、それぞれチェックされる。もし含むならば、このインデックスドキュメントは、検索クエリに一致するものと決定され、ユーザに返される。そうでなく、もし、インデックスドキュメントが「浙江」、「杭州」、及び「Ｔ１檬茶」の少なくとも１つを含まないならば、このインデックスドキュメントは、ユーザに返されない。この例では、インデックスドキュメントＡ１及びインデックスドキュメントＡ３は、ともに、それぞれ３つの検索タームを全て含むものと決定され、したがって、両ドキュメントとも、ユーザに返されるだろう。
【００９９】
一部の実施形態では、受信された検索クエリが、１つ以上の既定の文法規則にしたがっているかどうかをチェックされる。一部の実施形態では、既定の文法規則は、１つ以上の言語に関連付けられていてよい。一部の実施形態では、同じ既定の文法規則が複数の検索システムに関連付けられていてよい、及び／又は異なる検索システムには異なる既定の文法規則が関連付けられていてよい。検索クエリが、検索が行われている検索システム用に予め定められた文法規則にしたがっていない場合は、その検索システムは、正確な検索結果を返さないかもしれない。したがって、上述された検索を向上させるやり方は、受信された検索クエリに一致するインデックスドキュメントを見つける前に、その検索クエリが既定の文法規則にしたがっているかどうかをチェックすることを含む。もし、検索クエリが、１つ以上の既定の文法規則にしたがっていないならば、ユーザは、修正した検索クエリをサブミットしなおすように促される。検索クエリの処理は、一般に、意味のない余分な文字（空白、矢印、及びその他の同様な制御文字など）を検索クエリから排除することを含んでいてもよい。以下は、既定の文法規則にしたがっているかどうかについて検索クエリをチェックする一例である。
【０１００】
検索クエリが読み出され、取り出された既定の文法規則と比較される。検索クエリが、少なくとも１つの文法規則にしたがっていない場合は、エラーが生成され、入力をサブミットしなおすように促すプロンプトがユーザに提示される。例えば、検索クエリが、「検索ターム１  ＡＮＤ  ＡＮＤ  検索ターム２」であるとする。２つの論理ターム「ＡＮＤ  ＡＮＤ」の間には、論理層関係が示されていないので、このクエリは、文法規則にしたがっていない。したがって、エラーが報告され、ユーザは、修正を行うように要求される。もし、サブミットしなおした検索クエリが、既定の文法規則にしたがっているならば、その検索クエリは、単純化処理を施される。例えば、単純化処理は、検索クエリが論理タームでもワード文字でもない記号を含むかどうかを評価することを含んでいてよい。もし含むならば、追加の記号が排除される。例えば、もし、１つの空白があればよいところに２つの空白があるならば、検索クエリから１つの空白が削除されるだろう。一部の実施形態では、規則にしたがっている及び／又は単純化された検索クエリが、既定の文法規則に基づいて区分されてもよい。
【０１０１】
一部の実施形態では、ユーザの検索履歴に基づいて、検索クエリからの２つ以上の検索タームが１つの検索タームにまとめられてよい。検索タームをまとめた結果、検索タームの数が減少し、したがって、積集合動作を実施される検索結果の数も減少し、これは、検索の効率を向上させるだろう。一部の実施形態では、検索タームのまとめは、各検索タームの各検索ワードに対応するインデックスドキュメントを求めてインデックステーブルを照会する前に実施されてよい。
【０１０２】
図１１は、２つ以上の検索タームを１つの検索タームにまとめるかどうかを決定するためにユーザの検索履歴を使用する一例を示すフローチャートである。一部の実施形態では、プロセス１１００は、システム３００において実行に移されてよい。
【０１０３】
プロセス１１００は、ユーザによって入力された現行の検索クエリから区分された第１の検索タームと第２の検索タームとが１つの検索タームにまとめられるべきかどうかを決定するために使用されてよい。
【０１０４】
ステップ１１０２では、ユーザによって入力された過去の検索クエリの中で第１の検索タームと第２の検索タームとが併せて使用されている頻度が決定される。例えば、頻度は、同じ検索クエリの中で第１の検索タームと第２の検索タームとが併せて使用されていた頻度の記録を含むユーザ検索履歴テーブルを照会することによって決定されてよい。一部の実施形態では、ユーザ検索履歴テーブルは、特定の一ユーザに又は複数の異なるユーザに関連付けられている履歴情報のみを含んでいてよい。
【０１０５】
ステップ１１０４では、頻度が既定の閾値を超えるかどうかが決定される。既定の閾値を超えている場合は、第１の検索ターム及び第２の検索タームは、１つの検索タームにまとめられ、既定の閾値を超えていない場合は、第１の検索ターム及び第２の検索タームは、１つの検索タームにまとめられない。
【０１０６】
ユーザの検索履歴は、ユーザによる検索の傾向及び関心を反映することができる。検索履歴の統計的解析は、検索タームをいつまとめるのが適切であるかを決定するのに役立つことができる。もし、ユーザの検索履歴の再考察によって、検索ターム１と検索ターム２とがユーザによる検索において併せて使用されるのが通常であることがわかったならば、検索ターム１と検索ターム２とを２つの独立した検索タームとして扱う必要はなく、その代わりに、これらの２つの検索タームは、各検索タームについてのインデックスドキュメント集合を取り出す前に、１つの検索タームにまとめられる。したがって、もし、取り出されたインデックスドキュメントの処理における選択動作が、最も少ない数のインデックスドキュメントに関連付けられている検索タームインデックスドキュメント集合をその検索タームについての検索結果として機能させるために選択することを含んでいるならば、もとは２つの検索タームだったものが１つになったことによって、各種検索タームの積集合動作を実施される検索結果のインデックスドキュメントの数が低減される。
【０１０７】
図１２は、検索タームがまとめられるべきかどうかを決定するために使用される検索履歴テーブルの一例である。例として、ユーザが、中国語検索クエリ「Ｔ４利知Ｔ６普及程度」（特許知識普及レベルという意味）を使用して検索を行うとする。中国語文法の文法規則にしたがうと、検索クエリは、以下の４つの検索ターム、すなわち「Ｔ４利」（特許）、「知Ｔ６」（知識）、「普及」（普及）、及び「程度」（レベル）に区分される。検索タームがまとめられるべきかどうかの決定を伴わない場合は、４つの検索タームのそれぞれについて取り出されたインデックスドキュメント集合から、そのそれぞれの検索タームについての検索結果として機能するためにインデックスドキュメント集合が１つずつ選択され、次いで、それら４つのインデックスドキュメント集合に対して積集合動作が実施されるだろう。しかしながら、ユーザの検索履歴を使用して、４つの検索タームのうちの少なくとも幾つかがまとめられてよい。図１２に示された検索履歴テーブルを参照すると、２つの検索ターム「Ｔ４利」（特許）及び「知Ｔ６」（知識）は、過去の検索の８０％において併せて使用されており、２つの検索ターム「普及」（普及）及び「程度」（レベル）は、検索の６０％において併せて使用されていた。もし、既定の頻度閾値が７０％であるならば、「Ｔ４利」（特許）及び「知Ｔ６」（知識）は１つの検索タームにまとめられるものと決定されるが、「普及」（普及）及び「程度」（レベル）はそうでない。まとめられた後、検索クエリは、３つの検索ターム、すなわち「Ｔ４利知Ｔ６」（特許知識）、「普及」（普及）、及び「程度」（レベル）のみを有することになり、したがって、３つの検索タームについてのそれぞれの検索結果として機能するために、３つのインデックスドキュメント集合が選択されればよい。これら３つの検索結果は、次いで、積集合動作を経ることになり、こうして、積集合動作を実施される検索結果内のインデックスドキュメント集合の数が低減される。
【０１０８】
一部の実施形態では、検索タームをまとめる基準は、ユーザ検索履歴に限定されない。例えば、検索タームをまとめる別の基準として、所定の言語使用相関（例えば、２つ以上の検索ターム間の固有な関係）が挙げられる。例えば、もし、所定の言語使用相関に基づくと、検索ターム３が検索ターム４と併せて使用されることが多いならば、検索ターム３と検索ターム４とを２つの独立した検索タームとして扱う必要はなく、その代わりに、これら２つの検索タームは１つにまとめられてよい。
【０１０９】
図１３は、２つ以上の検索タームを１つの検索タームにまとめるかどうかを決定するためにそれら２つ以上の検索ターム間における所定の固有な関係を使用する一例を示すフローチャートである。一部の実施形態では、プロセス１３００は、システム３００において実行に移されてよい。一部の実施形態では、プロセス１３００は、プロセス４００の、ステップ４０４の後ろで且つ４０６の前に追加されてよい。
【０１１０】
ステップ１３０２では、検索クエリから検索ターム１と検索ターム２とが区分される。
【０１１１】
ステップ１３０４では、第１の検索タームと第２の検索タームとの間に固有な関係が存在するかどうかを決定するために、既定の固有検索ターム関係に関するテーブルがチェックされ、固有な関係が存在する場合は、第１の検索ターム及び第２の検索タームは１つの検索タームにまとめられ、固有な関係が存在しない場合は、第１の検索ターム及び第２の検索タームは１つの検索タームにまとめられない。
【０１１２】
例えば、中国語の検索クエリ「西藏布Ｔ７拉Ｔ８」（チベットポタラ宮殿という意味）をとりあげる。この検索クエリは、自然言語法則にしたがって、以下の２つの検索ターム、すなわち「西藏」（チベット）と「布Ｔ７拉Ｔ８」（ポタラ宮殿）とに区分される。しかしながら、ポタラ宮殿が１つしかないことは常識であり、修飾語「西藏」（チベット）は省略されてよい。したがって、これら２つの検索タームは、１つの検索ターム「布Ｔ７拉Ｔ８」（ポタラ宮殿）にまとめることができる。
【０１１３】
一部の実施形態では、検索クエリから区分された検索タームは、標準化処理を施される。本明細書で言う標準化処理は、検索タームの検索ワードに対して実施される言語処理である。一部の実施形態では、検索タームは、検索文字／ワードについてのインデックスドキュメントの取り出しが便利に行えるように、既定のインデックステーブルのインデックス文字／ワードに一致させやすい形式に標準化される。ある文字／ワード検索インデックスシステム用にインデックテーブルが作成されるとき、場合によっては、そこで使用されるインデックス文字／ワードは、所定の従来の形式をとっている。これらは、自然言語で見られる時制、複数形、大文字表記などに関する変化を持たない。それでも、ユーザによって入力される検索クエリは、対応するインデックス文字／ワードから僅かに変化した形の検索ワードを含むことがある。したがって、検索タームの検索ワードに対応するインデックスドキュメントの取り出しを促進するために、検索ワードは、インデックス文字／ワードの形式に一致するように標準化されてよい。一部の実施形態では、検索ワードが辞書で調べられ、もし、それらの検索ワードが標準形式でないならば、それらは、インデックス文字／ワードに関連付けられている同じ標準形式に変換される。次いで、ある検索ワードについて、標準化された検索ワードに見合うインデックス文字／ワードに対応するインデックスドキュメント集合が取り出されるように、標準化された検索ワードと、それらに見合うインデックス文字／ワードとの間に対応関係が確立されてよい。例えば、ユーザが、「GO」、「went」、及びその他の同様な検索ターム要素を検索クエリに入力する。しかしながら、インデックスを付けられた文字／ワードは、「go」のみであるので、「GO」及び「went」は無視され、それらについてのインデックスドキュメントは取り出されないだろう。これは、検索エラーを招くことを避けられない。したがって、インデックス文字／ワード「go」に関連付けられているインデックスドキュメント集合が、等価な検索ワード「GO」及び「went」についても取り出されるように、「GO」及び「went」と、インデックス文字／ワード「go」との間に対応関係を確立することが必要である。
【０１１４】
一部の実施形態では、ユーザの検索クエリに応答してユーザに返されるものとして決定される結果インデックスドキュメントが、先ず、ランク付けされる。一部の実施形態では、ランク付けは、インデックスドキュメント内におけるワード組み合わせの重みを計算することと、ワード組み合わせに関連付けられている計算された重みに基づいて、各インデックスドキュメントについてのドキュメント相関スコアを計算することと、ドキュメント相関スコアに基づいてインデックスドキュメントをランク付けすることと、を含む。ランク付けプロセスの一例は、以下のとおりである。
【０１１５】
第１のステップ：あるインデックスドキュメントに含まれる各ワード組み合わせについて、そのワード組み合わせ重みが決定される。総じて、１つのドキュメント内にワード組み合わせが出現する頻度（ワード組み合わせ頻度、「tf」で示される）が高いほど、このワード組み合わせは重要であると見なされ、頻度が低いほど、このワード組み合わせは重要でないと見なされる。その結果、高頻度のワード組み合わせは、より大きい重みを付けられ、ドキュメント間相関スコアの計算において、より大きな役割を演じる。ユーザに返されるべき結果インデックスドキュメントの中では、それらのドキュメント内にワード組み合わせが出現する頻度（ドキュメント頻度、「df」で示される）が高いほど、このワード組み合わせは重要でないとされる。なぜならば、このようなワード組み合わせは、ありふれすぎていて、ドキュメントどうしを差別化するのに不十分であるかもしれないからである。
【０１１６】
以下は、ワード組み合わせのワード組み合わせ重みを決定するために使用される式の一例である。
【０１１７】
【数１】
0005746426.tif 000002
【０１１８】
ｔｆt,d成分は、ドキュメントｄ内における第ｔ番目のワード組み合わせの頻度を指しており、ｄｆtは、第ｔ番目のワード組み合わせを含むドキュメントの数を指しており、ｎは、ドキュメントの総数を指しており、ｗt,dは、ドキュメントｄ内における第ｔ番目のワード組み合わせの重みを指している。
【０１１９】
式（１）は、ワード組み合わせ重みを決定するために使用される式の一候補に過ぎず、その他の任意の適切な式も使用可能である。
【０１２０】
第２のステップ：検索クエリ（例えば検索クエリ）に対する各インデックスドキュメントのドキュメント相関スコアが計算される。ドキュメント相関の計算には多くの技術が存在するが、この例では、説明を目的として、ベクトル空間モデル（ＶＳＭ）技術が使用される。総じて、ドキュメント相関は、そのドキュメントに含まれるワード組み合わせの重要性に基づいて決定される。
【０１２１】
ドキュメントは、一連のワード組み合わせで構成されていると考えることができる。各ワード組み合わせは、上述された技術で計算された対応する重みを有する。ワード組み合わせは、ドキュメント内におけるそのそれぞれの重みに基づいて、そのドキュメントのドキュメント相関スコアに影響を及ぼすことができる。ドキュメント内における全てのワード組み合わせの重みは、ベクトルを形成していてよい。
【０１２２】
ドキュメント＝｛組み合わせ１，組み合わせ２，．．．，組み合わせＮ｝
【０１２３】
ドキュメントベクトル＝｛重み１，重み２，．．．，重みＮ｝
【０１２４】
クエリもまた、同様に、単純なドキュメントとして考えられてよく、そのベクトルは、以下のように表される。
【０１２５】
クエリ＝｛ターム１，ターム２，．．．，タームＮ｝
【０１２６】
クエリベクトル＝｛重み１，重み２，．．．，重みＮ｝
【０１２７】
図１４は、ドキュメントベクトル及びクエリベクトルをＮ次元空間で示す一例である。この例に示されるように、ドキュメントベクトルとクエリベクトルとの間には、角度（∠）が決定されてよい。２つのベクトルによって形成される角度が小さいほど、検索クエリに対するドキュメントの相関が大きい。したがって、２つのベクトル間の角度のコサインを計算することによって、ドキュメント相関についてのスコアが割り当てられてよい。角度が小さいほど、コサインの値、スコア、及び相関が大きくなる。以下は、ドキュメントのドキュメント相関スコアを決定するために使用される式の一例である。
【０１２８】
【数２】
0005746426.tif 000003
【０１２９】
ベクトルＶqは、検索クエリｑの中の各検索ワードの重みから構成されたベクトルであり、ベクトルＶdは、ドキュメントｄに含まれる各ワード組み合わせの重みから構成されたベクトルであり、Ｗi,qは、検索クエリｑの中の第ｉ番目の検索ワードの重みを指しており、Ｗi,dは、ドキュメントｄの中の第ｉ番目のワード組み合わせの重みを指しており、スコア（ｑ，ｄ）は、ドキュメントｄを検索及び取得するために検索クエリｑが使用されるときの相関スコアを指している。
【０１３０】
第３のステップ：インデックスドキュメントが、そのそれぞれのドキュメント相関スコアによってランク付けされる。インデックスドキュメントは、そのそれぞれのランクに基づいてユーザに返されてよい及び／又は提示されてよい。
【０１３１】
図１５は、一致するインデックスドキュメントを見つけるためのシステムの一実施形態を示す図である。
【０１３２】
モジュール及びサブモジュールは、１つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、プログラム可能なロジックデバイス及び／若しくは特定の機能を実行するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、モジュール及びサブモジュールは、本発明の実施形態で説明される方法を（パソコン、サーバ、ネットワーク機器などの）コンピュータデバイスに実行させるための命令を含み尚且つ（光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの）不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化することができる。モジュール及びサブモジュールは、１つのデバイスに実装されてよい、又は複数のデバイスに分散されてよい。
【０１３３】
この例では、システム１５００は、検索クエリ受信モジュール１５０１と、ワード列抽出・区分モジュール１５０２と、インデックスドキュメント集合取得モジュール１５０３と、インデックスドキュメント集合処理モジュール１５０４と、積集合動作モジュール１５０５と、評価モジュール１５０６とを含む。
【０１３４】
検索クエリ受信モジュール１５０１は、ユーザによって入力された検索クエリを受信するように構成される。
【０１３５】
文字列抽出・区分モジュール１５０２は、各検索クエリから文字列を抽出し、この文字列を、１つ以上の検索ワードをそれぞれ含む１つ以上の検索タームに区分するように構成される。
【０１３６】
インデックスドキュメント集合取得モジュール１５０３は、各検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取得するために、インデックステーブルを照会するように構成される。
【０１３７】
インデックスドキュメント集合処理モジュール１５０４は、各検索タームに関連付けられている取得されたインデックスドキュメント集合を処理するように構成され、この処理は、その検索タームについて取り出された全てのインデックスドキュメント集合の中から処理を実施されるべき部分集合を選択することを含む。各検索タームについての処理結果は、その検索タームについての検索結果と呼ばれる。
【０１３８】
積集合動作モジュール１５０５は、各検索タームについての検索結果に対して積集合動作を実施し、結果ドキュメント集合を生成するように構成される。
【０１３９】
評価モジュール１５０６は、結果ドキュメント集合の中の各インデックスドキュメントが検索クエリの全ての検索タームを含むかどうかを決定するように構成される。結果ドキュメント集合の中で全ての検索タームを含むインデックスドキュメントのみが、クエリ元のユーザに返される。
【０１４０】
一部の実施形態では、システム１５００は、以下のように動作するように構成される。すなわち、検索クエリ受信モジュール１５０１は、ユーザによって入力された検索クエリを受信した後、その文を、文字列抽出・区分モジュール１５０２に送信する。文字列抽出・区分モジュール１５０２は、検索クエリから文字列を抽出した後、その文字列に、自然文法規則にしたがった検索ターム区分を施す。検索タームは、検索ワードを含み、検索ワードは、単一ワード、ワード組み合わせ、及び／又は言い回しであってよい。検索ターム区分が完了した後、インデックスドキュメント集合取得モジュール１５０３は、検索タームの検索ワードにしたがってインデックステーブルを照会し、対応するインデックスドキュメント集合を取得する。次いで、インデックスドキュメント集合処理モジュール１５０４は、取得されたインデックスドキュメント集合を処理し、この処理は、取得された全てのインデックスドキュメント集合の中から、処理するべき部分集合を選択することを含む。インデックスドキュメント集合処理モジュール１５０４は、また、検索タームについての選択されたインデックスドキュメント集合の部分集合を処理した結果がその検索タームについての検索結果を構成することを決定する。検索タームの検索結果は、積集合動作モジュール１５０５に入力され、このモジュールは、受信された検索結果に対して積集合動作を実施し、それを評価モジュール１５０６に送信する。評価モジュール１５０６は、結果ドキュメント集合の中の各インデックスドキュメントが検索クエリの全ての検索タームを含むかどうかを決定する。結果ドキュメント集合のうち、全ての検索タームを含むインデックスドキュメントのみが、クエリ元のユーザに返される。
【０１４１】
インデックスドキュメント集合処理モジュール１５０４は、多くの異なる種類の処理技術を使用してよい。異なる技術は、異なる具体的構造に対応していてよい。例えば、システム１５００は、更に、インデックスドキュメント量比較サブモジュールと、インデックスドキュメント集合選択サブモジュールとを含んでいてよい。インデックスドキュメント量比較サブモジュールは、検索タームについて取り出された各インデックスドキュメント集合の中のインデックスドキュメントの数を比較するように構成される。インデックスドキュメント集合選択サブモジュールは、最も少ない数のインデックスドキュメントを有するインデックスドキュメント集合を、その検索タームについての処理結果として機能させるために選択するように構成される。
【０１４２】
図１６は、システム１５００のインデックスドキュメント集合処理モジュール１５０４の一実施形態を示す図である。この例では、インデックスドキュメント集合処理モジュール１５０４は、インデックスドキュメント集合分割サブモジュール１５０４１と、第１の積集合動作サブモジュール１５０４２と、インデックスドキュメント量比較サブモジュール１５０４３と、第１の選択サブモジュール１５０４４とを含む。
【０１４３】
インデックスドキュメント集合分割サブモジュール１５０４１は、検索タームのインデックスドキュメント集合を少なくとも２つの群に分けるように構成される。
【０１４４】
第１の積集合動作サブモジュール１５０４２は、各群の積集合動作結果ドキュメント集合を得るために、各群内のインデックスドキュメント集合に対して積集合動作を実行するように構成される。
【０１４５】
インデックスドキュメント量比較サブモジュール１５０４３は、各群の積集合動作結果ドキュメント集合の中のインデックスドキュメントの数を互いに比較するように構成される。
【０１４６】
第１の選択サブモジュール１５０４４は、最も少ない数のインデックスドキュメントを有する積集合動作結果ドキュメント集合を、その検索タームについての処理結果として機能させるために選択するように構成される。
【０１４７】
別の一実施形態では、インデックスドキュメント集合処理モジュール１５０４は、更に、インデックスドキュメント集合分割サブモジュールと、インデックスドキュメント量比較サブモジュールと、第２の選択サブモジュールと、第２の積集合動作サブモジュールとを含み、インデックスドキュメント集合分割サブモジュールは、検索タームのインデックスドキュメント集合を少なくとも２つの群に分けるように構成され、インデックスドキュメント量比較サブモジュールは、各群内のインデックスドキュメント集合の中のインデックスドキュメントの数を比較するように構成され、第２の選択サブモジュールは、最も少ない数のインデックスドキュメントを有するインデックスドキュメント集合を、その群についての選択結果ドキュメント集合として機能させるために選択するためのものであり、第２の積集合動作サブモジュールは、各群の選択結果ドキュメント集合に積集合動作を施して、積集合動作結果を検索タームについての処理結果として使用するように構成される。これら２つの実施形態は、以下の点で異なる。すなわち、選択動作及び（１つ以上の）積集合動作は、異なる順序に配されている。インデックスドキュメント集合処理モジュール１５０４は、小さい群に分けられた検索タームについて取り出されたインデックスドキュメント集合に対して先ず積集合動作を実施し、次いで、それらの群についての積集合動作結果に対して選択動作を実施してよい。インデックスドキュメント集合処理モジュール１５０４は、また、小さい群に分けられた検索タームについて取り出されたインデックスドキュメント集合に対して選択動作を実施し、次いで、各群の選択結果ドキュメント集合に対して積集合動作を実行する。
【０１４８】
図１５に戻り、システム１５００は、更に、文法検査モジュール１５０７を含んでいてよい。文法検査モジュールは、文法チェック及び単純化処理を含む。システム１５００は、また、区分された検索タームを既定の規則にしたがってまとめるための検索タームまとめモジュール１５０８も含んでいてよい。システム１５００は、また、検索クエリ及び検索タームに対して言語処理を実行するための標準化処理モジュール１５０９も含んでいてよい。システム１５００は、また、評価モジュール１５０６による評価のために送り返されたドキュメントを保存するための保存モジュール１５１０も含んでいてよい。保存媒体は、ネットワークハードドライブ、メールボックス、及びその他の外部ストレージ機器であってよい。システム１５００は、また、評価モジュール１５０６によって評価されて検索タームを含むものと決定されたドキュメントをランク付けするように構成されたランク付けモジュール１５１１も含んでいてよい。
【０１４９】
図１７は、システム１５００のランク付けモジュール１５１１の一例を示す図である。この例では、ランク付けモジュール１５１１は、各検索タームの重みを、返された結果ドキュメント集合のドキュメント内にその検索タームが出現する頻度に基づいて計算するように構成された検索ターム重み計算サブモジュール１５１１１と、送り返されたドキュメントのドキュメント相関スコアを、計算された重みに基づいて計算するように構成されたドキュメントスコア計算サブモジュール１５１１２と、返されたドキュメントを、そのそれぞれのドキュメントスコアにしたがってランク付けするように構成されたランク付けサブモジュール１５１１３と、を含んでいてよい。
【０１５０】
上述された本発明の実施形態は、本発明による保護の範囲を制限するものではなく、本発明の主旨及び原理の範囲内でなされるあらゆる変更、均等物、置き換え、又は改良が、本発明の特許請求の範囲による保護下に入るものとされる。
【０１５１】
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、与えられた詳細に限定されず、本発明を実現するには、多くの代替的手法がある。開示された実施形態は、例示的なものであり、非限定的である。
適用例１：インデックスドキュメントを見つけるためのシステムであって、１つ以上のプロセッサであって、検索クエリを受信し、前記検索クエリから文字列を抽出し、前記文字列を、１つ以上の検索ワードをそれぞれ含む複数の検索タームに区分し、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出し、前記複数の検索タームの第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、選択動作に少なくとも部分的に基づいて処理し、前記選択動作は、前記第１の検索タームについて取り出された全てのインデックスドキュメントのうちのいずれの部分集合が処理されるべきかを示し、前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合の前記部分集合の処理結果は、前記第１の検索タームについての検索結果を構成し、結果ドキュメント集合を生成するために、前記複数の検索タームに対応する検索結果に対して積集合動作を実行し、前記結果ドキュメント集合のうち、前記複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第１の部分集合を決定し、返すように構成されている、１つ以上プロセッサと、前記１つ以上のプロセッサに接続され、前記１つ以上のプロセッサに命令を提供するように構成されている１つ以上のメモリと、を備えるシステム。
適用例２：適用例１に記載のシステムであって、前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を互いに比較することと、最も少ない数のインデックスドキュメントに関連付けられている前記インデックスドキュメント集合を、前記第１の検索タームについての検索結果を構成する集合として選択することと、を含む、システム。
適用例３：適用例１に記載のシステムであって、前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第１の群と第２の群とに分けることと、第１のドキュメント集合を作成するために前記第１の群の１つ以上のインデックスドキュメントに対して積集合動作を実行し、第２のドキュメント集合を作成するために前記第２の群の１つ以上のインデックスドキュメントに対して積集合動作を実行することと、前記第１のドキュメント集合及び前記第２のドキュメント集合のうち、最も少ない数のインデックスドキュメントに関連付けられている方の集合を、前記第１の検索タームについての検索結果を構成する集合として選択することと、を含む、システム。
適用例４：適用例１に記載のシステムであって、前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第１の群と第２の群とに分けることと、前記第１の群から第１のインデックスドキュメント集合を及び前記第２の群から第２のインデックスドキュメント集合を選択することと、前記第１及び第２のインデックスドキュメント集合に対して積集合動作を実効し、前記積集合動作の結果を、前記第１の検索タームについての検索結果を構成する集合として決定することと、を含む、システム。
適用例５：適用例１に記載のシステムであって、１つ以上のインデックスワードに対応するインデックスドキュメントを示す１つ以上の既定のインデックステーブルを照会することによって、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合の少なくとも一部分集合が取り出される、システム。
適用例６：適用例１に記載のシステムであって、前記検索タームは、言い回し、言い習わし、慣用句、短文、及びワード組み合わせのうちの１つ以上を含む、システム。
適用例７：適用例１に記載のシステムであって、前記１つ以上のプロセッサは、更に、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出す前に、前記複数の検索タームからの前記第１の検索タームを前記複数の検索タームからの第２の検索タームとまとめて１つの検索タームにするように構成されている、システム。
適用例８：適用例７に記載のシステムであって、前記第１の検索タームと前記第２の検索タームとをまとめることは、ユーザによって入力された過去の検索クエリの中で前記第１の検索タームと前記第２の検索タームとが併せて使用されている頻度を決定し、前記頻度が既定の閾値を超えているかどうかを決定し、前記既定の閾値を超えている場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめ、前記既定の閾値を超えていない場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめない、こと、を含む、システム。
適用例９：適用例７に記載のシステムであって、前記第１の検索タームと前記第２の検索タームとをまとめることは、前記第２の検索タームと前記第２の検索タームとの間に固有な関係が存在するかどうかを決定するために、既定の固有な検索ターム関係するテーブルをチェックし、前記固有な関係が存在している場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめ、前記固有な関係が存在していない場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめない、ことを含む、システム。
適用例１０：適用例１に記載のシステムであって、前記１つ以上のプロセッサは、更に、インデックスドキュメントに含まれる各ワード組み合わせについてのワード組み合わせ重みを計算し、前記インデックスドキュメント内に存在するワード組み合わせに関連付けられている前記計算された重みに基づいて、各インデックスドキュメントについてのドキュメント相関スコアを計算し、前記第１の部分集合の中の前記インデックスドキュメントを、前記対応するドキュメント相関スコアに基づいてランク付けすること、によって前記第１の部分集合の中のインデックスドキュメントをランク付けするように構成されている、システム。
適用例１１：適用例１に記載の方法であって、前記１つ以上の検索ワードの少なくとも１つは、検索文字を含む、方法。
適用例１２：インデックスドキュメントを見つけるための方法であって、検索クエリを受信することと、前記検索クエリから文字列を抽出し、前記文字列を、１つ以上の検索ワードをそれぞれ含む複数の検索タームに区分することと、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出すことと、前記複数の検索タームの第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、選択動作に少なくとも部分的に基づいて処理することと、前記選択動作は、前記第１の検索タームについて取り出された全てのインデックスドキュメントのうちのいずれの部分集合が処理されるべきかを示し、前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合の前記部分集合の処理結果は、前記第１の検索タームについての検索結果を構成することと、結果ドキュメント集合を生成するために、前記複数の検索タームに対応する検索結果に対して積集合動作を実行することと、前記結果ドキュメント集合のうち、前記複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第１の部分集合を決定し、返すことと、を備える方法。
適用例１３：適用例１２に記載の方法であって、前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を互いに比較することと、最も少ない数のインデックスドキュメントに関連付けられている前記インデックスドキュメント集合を、前記第１の検索タームについての検索結果を構成する集合として選択することと、を含む、方法。
適用例１４：適用例１２に記載の方法であって、前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第１の群と第２の群とに分けることと、第１のドキュメント集合を作成するために前記第１の群の１つ以上のインデックスドキュメントに対して及び第２のドキュメント集合を作成するために前記第２の群の１つ以上のインデックスドキュメントに対して積集合動作を実行することと、前記第１のドキュメント集合及び前記第２のドキュメント集合のうち、最も少ない数のインデックスドキュメントに関連付けられている方の集合を、前記第１の検索タームについての検索結果を構成する集合として選択することと、を含む、方法。
適用例１５：適用例１２に記載の方法であって、前記複数の検索タームの前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第１の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第１の群と第２の群とに分けることと、前記第１の群から第１のインデックスドキュメント集合を及び前記第２の群から第２のインデックスドキュメント集合を選択することと、前記第１及び第２のインデックスドキュメント集合に対して積集合動作を実施し、前記積集合動作の結果を、前記第１の検索タームについての検索結果を構成するものとして決定することと、を含む、方法。
適用例１６：適用例１２に記載の方法であって、更に、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出す前に、前記複数の検索タームからの前記第１の検索タームを前記複数の検索タームからの第２の検索タームとまとめて１つの検索タームにすることを備える方法。
適用例１７：適用例１６に記載の方法であって、前記第１の検索タームと前記第２の検索タームとをまとめることは、ユーザによって入力された過去の検索クエリの中で前記第１の検索タームと前記第２の検索タームとが併せて使用されている頻度を決定することと、前記頻度が既定の閾値を超えているか否かを決定し、前記既定の閾値を超えている場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめ、前記既定の閾値を超えていない場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめない、ことと、を含む、方法。
適用例１８：適用例１６に記載の方法であって、前記第１の検索タームと前記第２の検索タームとをまとめることは、前記第２の検索タームと前記第２の検索タームとの間に固有な関係が存在するかどうかを決定するために、既定の固有な検索ターム関係に関するテーブルをチェックし、前記固有な関係が存在している場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめ、前記固有な関係が存在していない場合は、前記第１の検索タームと前記第２の検索タームとを１つの検索タームにまとめない、ことを含む、方法。
適用例１９：適用例１２に記載の方法であって、更に、インデックスドキュメントに含まれる各ワード組み合わせについてのワード組み合わせ重みを計算することと、前記インデックスドキュメント内に存在するワード組み合わせに関連付けられている前記計算された重みに基づいて、各インデックスドキュメントについてのドキュメント相関スコアを計算することと、前記対応するドキュメント相関スコアに基づいて、前記インデックスドキュメントをランク付けすることと、を備える方法。
適用例２０：コンピュータ読み取り可能ストレージ媒体に実装された、インデックスドキュメントを見つけるためのコンピュータプログラム製品であって、検索クエリを受信するためのコンピュータ命令と、前記検索クエリから文字列を抽出し、前記文字列を、１つ以上の検索ワードをそれぞれ含む複数の検索タームに区分するためのコンピュータ命令と、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出すためのコンピュータ命令と、前記複数の検索タームの第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、選択動作に少なくとも部分的に基づいて処理するためのコンピュータ命令と、前記選択動作は、前記第１の検索タームについて取り出された全てのインデックスドキュメントのうちのいずれの部分集合が処理されるべきかを示し、前記第１の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合の前記部分集合の処理結果は、前記第１の検索タームについての検索結果を構成し、結果ドキュメント集合を生成するために、前記複数の検索タームに対応する検索結果に対して積集合動作を実行するためのコンピュータ命令と、前記結果ドキュメント集合のうち、前記複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第１の部分集合を決定し、返すためのコンピュータ命令と、
を備えるコンピュータプログラム製品。
【０１５２】
【表１】
0005746426.tif 000004
【図１】
0005746426.tif 000005
【図２】
0005746426.tif 000006
【図３】
0005746426.tif 000007
【図４】
0005746426.tif 000008
【図５】
0005746426.tif 000009
【図６】
0005746426.tif 000010
【図７】
0005746426.tif 000011
【図８】
0005746426.tif 000012
【図９】
0005746426.tif 000013
【図１０】
0005746426.tif 000014
【図１１】
0005746426.tif 000015
【図１２】
0005746426.tif 000016
【図１３】
0005746426.tif 000017
【図１４】
0005746426.tif 000018
【図１５】
0005746426.tif 000019
【図１６】
0005746426.tif 000020
【図１７】
0005746426.tif 000021