(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0024】
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能ストレージ媒体に実装されたコンピュータプログラム製品、並びに/又は結合先のメモリに保存された命令及び/若しくは結合先のメモリによって提供される命令を実行するように構成されたプロセッサのようなプロセッサなどの、数々の形態で実現することができる。本明細書では、これらの実現形態又は本発明がとりうるその他のあらゆる形態が、技術と称されてよい。総じて、開示されたプロセスのステップの順序は、発明の範囲内で変更されてよい。別途明記されない限り、タスクを実行するように構成されたものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実行するように一時的に構成された汎用コンポーネントとして、又はタスクを実行するように製造された特殊コンポーネントとして実装されてよい。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された1つ以上のデバイス、回路、並びに/又は処理コアを言う。
【0025】
本発明の原理を例示す添付の図面とともに、以下で、本発明の1つ以上の実施形態の詳細な説明が提供される。本発明は、このような実施形態との関わりのもとで説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、及び均等物を網羅している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記される。これらの詳細は、例示を目的として提供されるものであり、本発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施することができる。明瞭さを期するために、本発明に関係する技術分野において知られる技術要素は、本発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
【0026】
インデックスドキュメントを効率的に見つけることが、本明細書で説明される。様々な実施形態において、検索クエリは、検索タームに区分される。例えば、検索タームは、1つ以上の検索ワードを含んでいてよい。検索ワードは、いずれか1つの言語に特有である必要はなく、任意の言語の形態素を指していてよい。例えば、中国語などの言語における検索ワードは、1つの文字を指していてよく、英語などの言語における検索ワードは、一連の文字を指していてよい。一部の実施形態では、検索クエリの各検索タームの各検索ワードについて、対応するインデックスドキュメント集合が見つけられる。一部の実施形態では、特定の検索タームに属する(1つ以上の)検索ワードについて見つけられたインデックスドキュメント集合が、その特定の検索タームについて取り出されたインデックスドキュメント集合と称されてよい。一部の実施形態では、各検索タームについて見つけられた対応するインデックスドキュメント集合について、1つ以上の選択動作が実施される。例えば、各特定の検索タームについて取り出されたインデックスドキュメント集合は、少なくとも1つの選択動作を含む処理によって処理され、この選択操作は、例えば、検索タームについて取り出された全てのインデックスドキュメント集合から、その検索タームについての検索結果として機能させるための部分集合を選択してよい、又は検索タームについて取り出されたインデックスドキュメント集合の部分群に対して実施された積集合動作の結果から、その検索タームについての検索結果として機能させるための部分集合を選択してよい。一部の実施形態では、選択動作は、システム管理者によって設定される。使用される選択動作のタイプにかかわらず、積集合動作は、検索タームについて取り出された全てのインデックスドキュメント集合よりも少ない数のインデックスドキュメント集合に対して実施される。一部の実施形態では、積集合動作は、検索クエリの全ての検索タームを含む、クエリ元ユーザに返されるべきインデックスドキュメントを得るために、検索クエリの全ての検索タームに対応する検索結果に対して実施される。
【0027】
選択動作の使用は、計算コストがかかる積集合動作が実施される回数を減らせるだろう。更に、選択動作の使用は、積集合動作を実施されるインデックスドキュメント集合の中のインデックスドキュメントの数も最少にできるだろう。積集合動作の計算コストは、動作を実施されるインデックスドキュメントの数ととともに増加するので、これは、効率を向上させる。したがって、積集合動作の回数を減少させることによって及び/又は積集合動作を実施されるインデックスドキュメントの数を最少にすることによって、検索クエリに一致するインデックスドキュメントを見つける効率が向上されるだろう。
【0028】
図3は、一致するインデックスドキュメントを見つけるためのシステムの一実施形態を示す図である。システム300は、クライアント302と、ネットワーク304と、検索サーバ306と、データベース308とを含む。ネットワーク304は、1つ以上の高速データネットワーク及び/又は電気通信ネットワークを含んでいてよい。
【0029】
クライアント302は、検索クエリを受信し、それらを検索サーバ306に送信するように構成される。クライアント302は、ラップトップコンピュータとして示されているが、クライアント302のその他の例として、デスクトップコンピュータ、モバイル機器、スマートフォン、タブレット端末、及び/又はその他の任意の計算装置が挙げられる。ユーザは、検索クエリに一致するドキュメント(例えば、ウェブページ、ファイル、データベースエントリ)を受信するために、クライアント302においてウェブブラウザアプリケーションを使用し、検索エンジン及び/又はその他の任意の種類の検索ツールに検索クエリを入力してよい。一部の実施形態では、インデックスドキュメントは、検索クエリに含まれる全てのワードを含む場合に検索クエリに一致する。
【0030】
検索サーバ306は、クライアント302から受信された検索クエリを使用して検索を実施し、一致するインデックスドキュメントをクライアント302に返すように構成される。一部の実施形態では、検索サーバ306は、オンライン検索エンジンを運営するウェブサーバを含む。一部の実施形態では、検索サーバ306は、受信された検索クエリを、少なくとも1つの検索ワードをそれぞれ含む1つ以上の検索タームに区分するように構成される。検索サーバ306は、各検索ワードに一致する1つ以上のインデックスドキュメントを見つけるように構成される。例えば、インデックスドキュメントは、検索サーバ306に及び/又はデータベース308などのその他の場所に記憶されてよい。例えば、検索サーバ306は、データベース308に記憶されうる(テーブル100などの)1つ以上の既定のインデックステーブルを照会することによって、検索ワードに対応するインデックスドキュメントを見つけてよい。次いで、同じ検索タームに属する検索ワードについて返されたインデックスドキュメントが処理される。この処理は、ある検索タームについて取り出されたインデックスドキュメント集合から(例えば選択動作を使用して)部分集合を選択すること、及び/又は選択されたインデックスドキュメント部分集合に対して処理(例えば積集合動作)を実行することを含む。検索タームについて取り出された全てのインデックスドキュメントに対して積集合動作を実行するのではなく、その検索タームについて取り出されたインデックスドキュメント集合の部分集合を処理することによって、検索における効率が向上される。各検索タームについての処理結果は、その検索タームについての検索結果と称される。検索サーバ306は、次いで、結果ドキュメント集合を生成するために、検索クエリの各検索タームについて作成された検索結果に対して積集合動作を実行する。次いで、結果ドキュメント集合のインデックスドキュメントが全ての検索タームを含むことを検証するために、このような各インデックスドキュメントは、全ての検索タームが存在するかどうかを決定するために検索サーバ306によってスキャンされる。検索サーバ306は、結果ドキュメント集合のうち、検索クエリの全ての検索タームを含むインデックスドキュメントのみをクライアント302に返す。
【0031】
図4は、一致するインデックスドキュメントを見つけるためのプロセスの一実施形態を示す図である。一部の実施形態では、プロセス400は、システム300において実行に移されてよい。
【0032】
プロセス400は、ユーザによってサブミットされた検索クエリに一致するインデックスドキュメントを効率的に返すために使用される。例えば、検索タームに一致するためには、インデックスドキュメントは、クエリに含まれる各ワードを少なくとも1つずつ含んでいなければならない。検索タームについて取り出された全てのインデックスドキュメント集合を(例えば積集合動作を使用して)処理するのではなく、設定可能な少なくとも1つの選択動作によって全てのインデックスドキュメント集合よりも少ない数のインデックスドキュメント集合が、検索タームについての検索結果として機能するために処理及び/又は選択される。検索タームごとに処理されるインデックスドキュメントの数及び/又は検索タームごとに実施される積集合動作の回数を減らすために選択動作を使用することによって、(例えば(1つ以上の)積集合動作を実行する)処理の複雑度、時間、及び量が全て大幅に低減され、これは、ユーザに返されるべき一致するインデックスドキュメントを見つけるために検索エンジンが必要とする時間も短縮する。
【0033】
積集合動作に関して述べると、例えば、集合A及び集合Bに対する積集合動作の実施(例えば、集合Aと集合Bとの積集合は、A∩Bで示される)は、A及びBの両方を構成する全ての要素からなる集合を決定する。インデックスドキュメント集合に対して積集合動作を適用する状況では、一部の実施形態において、インデックスワードAに対応する第1のインデックスドキュメント集合(例えば、第1の集合の各インデックスドキュメントは、ワードAを少なくとも1つ含む)及びインデックスワードBに対応する第2のインデックスドキュメント集合(例えば、第2の集合の各インデックスドキュメントは、ワードBを少なくとも1つ含む)に対する積集合動作の実施は、第1及び第2のインデックスドキュメント集合のうち、ワードA及びワードBの両方に対応するインデックスドキュメントからなる部分集合である第3のインデックスドキュメント集合を生み出すだろう(例えば、第3の集合の各インデックスドキュメントは、ワードAを少なくとも1つ及びワードBをすくなくとも1つ含む)。別の例では、集合A、集合B、及び集合Cに対する積集合動作の実施(例えば、集合Aと、集合Bと、集合Cとの積集合は、A∩(B∩C)で示される)は、A、B、及びCを構成する全ての要素からなる集合を決定する。
【0034】
以下は、ワードA、ワードB、及びワードCにそれぞれ対応するインデックスドキュメント集合に対して積集合動作を実行する一例である。この例では、各インデックスドキュメントは、番号(例えば1)によって識別される。特定のワードに対応するインデックスドキュメントの識別子は、この例では、リンクリストなどのデータ構造の中に記憶される。この構造では、各ノードが、1つのインデックスドキュメントに関連付けられている識別子を記憶しており、リンクリストのノードは、そのそれぞれのインデックスドキュメント識別子に基づいて分類されている。例えば、ワードAに関連付けられているリンクリストは、分類されたノード:1、2、3、4、5、8、及び10を含み(これは、ワードAが、インデックスドキュメント1、2、3、4、5、8、及び10のそれぞれの中で見つかることを意味する)、ワードBに関連付けられているリンクリストは、分類されたノード:2、4、8、及び9を含み、ワードCに関連付けられているリンクリストは、分類されたノード:3、4、8、及び10を含む。リンクリストは、3つ全てのリンクリストに共通する値を決定するために比較される。先ず、3つ全てのリンクリストの第1のノードの値(ワードAのリストからの1、ワードBのリストからの2、及びワードCのリストからの3)が比較される。3つ全ての値が同じではないので、少なくとも一部のリンクリストが後続ノードにトラバースされる。最も大きい値3は、ワードCに対応しているので、ワードA及びワードBに対応するリンクリストは、それぞれ、少なくとも3の値に達するまでトラバースされる。ワードAのリンクリストは、値3を含む第3のノードまでトラバースされ、ワードBのリンクリストは、値4を含む第2のノードまでトラバースされる。いま一度、3つ全てのリンクリストの現行ノードの値が再び比較される。3つ全ての値が同じではないので、リンクリストの更なるトラバースが必要である。最も大きい値4は、ワードBに対応しているので、ワードA及びワードCに対応するリンクリストは、それぞれ、少なくとも4の値に達するまでトラバースされる。ワードAのリンクリストは、値4を含む第4のノードまでトラバースされ、ワードCのリンクリストは、値4を含む第2のノードまでトラバースされる。3つ全てのリンクリストの現ノードの値が再び比較される。3つ全ての値が同じであるので、識別子値4に関連付けられているインデックスドキュメントは、ワードA、ワードB、及びワードCを全て含むものと決定され、この積集合動作の結果集合に含められる。各リンクリストの次のノードが互いに比較され、プロセスは、いずれかのリンクリストがその最終ノードにトラバースされるまで、3つ全てのリンクリストに共通する値を見つけるために続けられる。
【0035】
ステップ402では、検索クエリが受信される。様々な実施形態において、検索クエリは、一連の自然言語形態素と、これらの形態素間の論理的関係性を記述する論理タームとを含む。形態素は、言語における意味的に有意な最小単位である。例えば、形態素は、中国語のワードを含んでいてよい。論理タームは、検索クエリの形態素に一致するインデックスドキュメントに対して実施される論理動作の種類を示していてよい。例えば、論理タームは、「AND」などのブール演算子を含んでいてよい。一部の実施形態において、検索クエリの中の2つの形態素間に論理タームが存在しないときは、使用されるデフォルトの論理タームは「AND」である。
【0036】
ステップ404では、検索クエリから文字列が抽出され、この文字列は、1つ以上の検索ワードをそれぞれ含む複数の検索タームに区分される。
【0037】
一部の実施形態では、検索クエリから文字のみを抽出しその他の記号は抽出しないことによって、検索クエリから文字列が抽出される。文字列は、次いで、検索タームに区分される。各検索タームは、1つ以上の検索ワードからなる集合を含んでいてよい。各検索タームは、例えば、単一ワード、言い回し、複数ワードの有意な組み合わせ、慣用句、及び短文を含んでいてよい。文字列を区分する法則は、検索システム及び言語環境によって異なってよい。一部の実施形態では、文字列は、検索クエリに使用されている言語の文法体系にしたがって区分される。本明細書で説明される検索クエリが中国語である例では、各検索ワードは、検索文字と呼ばれることもある。以下、中国語文字の一部については記号T+番号で表し、各記号+番号と中国語文字との対応関係は文末の表1に示す。
【0038】
例えば、中国語で構築された検索クエリ「浙江杭州T1檬茶」(「浙江省杭州のレモンティー」)を考える。このクエリは、3つの検索ターム、すなわち「浙江」(「浙江」は、中国の省)、「杭州」(「杭州」は、浙江省の一都市)、及び「T1檬茶」(「T1檬茶」は、「レモンティー」の意味)に区分される。これらの検索タームは、「浙江杭」、「州T1檬」(州レモン)、及び「茶」(ティー)には区分されないだろう。なぜならば、このような分割は、自然な中国語の慣習にそぐわないからである。別の例では、中国語で構築された検索クエリ「利比T2岌岌可危」(「リビアは危機的な状態にある」という意味)を考える。この検索クエリは、2つの検索ターム、すなわち国名「利比T2」(「リビア」)及び言い習わし「岌岌可危」(「危機的な状態にある」)に区分される。更なる例として、中国語で構築された検索クエリ「他山之石可以攻玉的出T3」(この言い習わしの由来は、「よその山の石でも自分の玉を磨くのに使用することができる」)を検討してみる。この検索クエリは、3つの検索ターム、すなわち「他山之石可以攻玉」(「他山の石とする」)、単一文字「的」(「の」)、及び文字組み合わせ「出T3」(「由来」)に区分されてよい。
【0039】
ステップ406では、複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合が取り出される。
【0040】
各検索タームは、1つ以上の検索ワードを含む。例えば、検索ターム「浙江」は、2つの検索文字「浙」及び「江」を含む。一部の実施形態では、検索クエリの各検索タームに含まれる各検索ワードについてのインデックスドキュメント集合を取り出すために、既定のインデックステーブルが照会されてよい。上記のように、既定のインデックステーブルは、各インデックス文字/ワードに対応するインデックスドキュメントと、これらの対応するインデックスドキュメントのそれぞれのアドレスとを含んでいてよい。例えば、検索文字「浙」について、1つ以上の既定のインデックステーブルが照会され、「浙」を含む第1の集合のインデックスドキュメント(と、例えばそのそれぞれのアドレスと)が返されてよい。また、1つ以上の既定のインデックステーブルは、検索文字「江」についても照会され、「江」を含む第2の集合のインデックスドキュメント(と、例えばそのそれぞれのアドレスと)が返されてよい。
【0041】
ステップ408では、複数の検索タームのうちの第1の検索タームに関連付けられている取り出されたインデックスドキュメント集合が、選択動作に少なくとも部分的に基づいて処理される。第1の検索タームに関連付けられている取り出されたインデックスドキュメント集合の処理結果は、その第1の検索タームについての検索結果を構成する。
【0042】
各検索タームについて取り出されたインデックスドキュメント集合を処理することと、設定可能な少なくとも1つの選択動作を使用し、処理する(例えば積集合動作を実行する)インデックスドキュメントの数を最少にする及び/又はプロセスの(例えば積集合動作を実行する)回数を減らすこととが実施される。様々な実施形態において、検索タームについて取り出されたインデックスドキュメント集合を処理すること、及び設定可能な少なくとも1つの選択動作を使用することによって、積集合動作は、その検索タームについて取り出された全てのインデックスドキュメント集合よりも少ない数のインデックスドキュメント集合に対して実施される。
【0043】
一部の実施形態では、処理するインデックスドキュメントの量を減らすために、選択動作は、もし処理が必要であるならば、検索タームについて取り出された全てのインデックスドキュメント集合の一部分集合をその検索タームについて処理されるものとして選び出すように指示する。そして、インデックスドキュメント集合の部分集合が処理された後は、その処理結果が、検索タームの検索結果として機能するように指定される。
【0044】
一部の実施形態では、選択動作は、検索タームについて取り出された全てのインデックスドキュメント集合が複数の群に分けられ、各群が処理されるように指示し、次いで、それらの群の処理結果からの部分集合が、その検索タームの検索結果として機能するように指定される。
【0045】
一部の実施形態では、選択動作は、検索タームについて取り出されたインデックスドキュメント集合が複数の群に分けられ、各群から、(1つ以上の)インデックスドキュメント集合からなる部分集合が選択されるように指示する。各群から選択された(1つ以上の)インデックスドキュメントは、次いで、処理され、その処理結果は、その検索タームの検索結果として機能するように指定される。
【0046】
取り出されたインデックスドキュメント集合を選択動作に基づいて処理する様々な例が、以下で、少なくとも
図5、
図6、及び
図7において説明される。
【0047】
ステップ410では、結果ドキュメント集合を生成するために、複数の検索タームに対応する検索結果に対して積集合動作が実施される。
【0048】
一部の実施形態では、積集合動作は、結果ドキュメント集合を得るために、検索クエリの各検索タームの検索結果に対して実施される。
【0049】
ステップ412では、結果ドキュメント集合のうち、複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第1の部分集合が決定され、返される。
【0050】
一部の実施形態では、結果ドキュメントのうちどのドキュメントが検索クエリのどの検索タームも含んでいるかが決定される。検索タームの検索結果の中のインデックスドキュメントは、選択動作ゆえに、その検索タームのどの検索ワードも含んでいるとは限らないので、結果ドキュメント集合の中のインデックスドキュメントには、検索クエリの全ての検索ワードよりも少ない数の検索ワードを含むものもあるだろう。したがって、結果ドキュメント集合の中の各インデックスドキュメントは、実際に検索クエリの全ての検索ワードを含んでいるかどうかを検証される。もし、結果ドキュメント集合の中のあるインデックスドキュメントが、検索クエリのどの検索タームも含んでいるならば、そのドキュメントは、結果ドキュメント集合のうち、検索クエリに応答してユーザに返される第1のインデックスドキュメント部分集合に含められるものと決定される。しかしながら、もし、あるインデックスドキュメントが、少なくとも1つの検索タームを含んでいないならば、そのインデックスドキュメントは、第1の部分集合から除外される。例えば、結果ドキュメント集合のうち、ユーザに返される第1の部分集合は、検索クエリのどの検索タームも(したがってどの検索ワードも)少なくとも1つずつ含んでいる。結果ドキュメント集合のうち、検索クエリの少なくとも1つの検索タームを除かれたドキュメントは、第1のインデックスドキュメント部分集合に含められない。
【0051】
例えば、検索クエリ「浙江杭州T1檬茶」について決定された結果ドキュメント集合の中のあるインデックスドキュメントが、「浙」及び「杭」を含むが「浙江」及び「杭州」を含まない場合、このインデックスドキュメントは、ユーザに返される第1のインデックスドキュメント部分集合から除外される。もし、このインデックスドキュメントが、「浙江」及び「杭州」はもちろん「T1檬茶」も含むならば、そのインデックスドキュメントは、第1の部分集合に含められ、ユーザに返される。ユーザに返された後、それらのインデックスドキュメントは、ユーザによって様々な媒体(例えば、ネットワークハードドライブ、メールボックス、及びその他の外部ストレージ機器)に保存されてよい。
【0052】
図5は、検索タームに関連付けられているインデックスドキュメント集合に対して選択動作を実行する一実施形態を示すフローチャートである。一部の実施形態では、プロセス500は、システム300において実行に移されてよい。一部の実施形態では、プロセス500は、プロセス400のステップ408を実行に移すために使用されてよい。
【0053】
上記のように、プロセス400のステップ408における選択動作に基づくインデックスドキュメント集合の処理は、様々なやり方で実行に移されてよい。一部の実施形態では、選択動作は、特定の検索タームに属する検索ワードについて取り出された1つのインデックスドキュメント集合を、その検索タームの検索結果として選択することであってよい。プロセス500は、このような選択動作の一具体例を示しており、ここでは、選択動作は、第1の検索タームに属する検索ワードに関連付けられているインデックスドキュメント集合のうち、インデックスドキュメントの数が最も少ないインデックスドキュメント集合を、第1の検索タームについての検索結果を構成するものとして選択する。
【0054】
ステップ502では、第1の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合が、互いに比較される。例えば、第1の検索タームが、検索文字「浙」及び「江」を含む「浙江」であるとする。この例では、「浙」について取り出されたインデックスドキュメント集合は、34のドキュメントを含み、「江」について取り出されたインデックスドキュメント集合は、16のインデックスドキュメントを含んでいるだろう。
【0055】
ステップ504では、最も少ない数のインデックスドキュメントに関連付けられているインデックスドキュメント集合が、第1の検索タームについての検索結果を構成するものとして選択される。上記の例に戻ると、「江」について取り出されたインデックスドキュメント集合は、「浙」について取り出されたインデックスドキュメント集合(34)よりも少ない数のインデックスドキュメント集合(16)を含むので、「江」について取り出されたインデックスドキュメント集合が、検索ターム「浙江」についての検索結果であると見なされ、その一方で、「浙」について取り出されたインデックスドキュメント集合は、使用されない/無視される。
【0056】
以下は、プロセス400を使用して、なかでも特にステップ408を実行に移すためにプロセス500を使用してインデックスドキュメントを見つけることを示す別の例である。ユーザが、クエリ「浙江杭州」によって検索を行うとする。(例えば、既定のインデックステーブルでの調べによると、)「浙」について取り出されたインデックスドキュメント集合の中のインデックスドキュメントの数は、N1であり、「江」について取り出されたインデックスドキュメント集合の中のインデックスドキュメントの数は、M1であり、「杭」について取り出されたインデックスドキュメント集合の中のインデックスドキュメントの数は、N2であり、「州」について取り出されたインデックスドキュメント集合の中のインデックスドキュメントの数は、M2である。検索クエリ「浙江杭州」が2つの検索ターム「浙江」及び「杭州」に区分された後は、「浙」をインデックスとしたN1のインデックスドキュメントが、検索ターム「浙江」についての検索結果として機能するために選択され、「杭」をインデックスとしたN2のインデックスドキュメントが、検索ターム「杭州」についての検索結果として選択される。次いで、各ドキュメントが「浙」及び「杭」を少なくとも1つずつ含むような結果ドキュメント集合を得るために、検索ターム「浙江」及び「杭州」についてのこれら2つの検索結果に対して積集合動作が実施される。従来の技術に基づくと、少なくともN1×M1+N2×M2の積集合動作が実施される必要があったが、プロセス500のようなプロセスでは、実施される必要がある積集合動作は、僅かN1×N2である。したがって、実施される動作の数が大幅に減少している。この例において、とりわけもしM1>N1で且つM2>N2であるならば、積集合動作を実施されるインデックスドキュメントの数が減少するゆえに、計算時間は尚も更に短縮される。
【0057】
図6は、検索タームに関連付けられているインデックスドキュメント集合に対して選択動作を実行する一実施形態を示すフローチャートである。一部の実施形態では、プロセス600は、システム300において実行に移されてよい。一部の実施形態では、プロセス600は、プロセス400のステップ408を実行に移すために使用されてよい。
【0058】
上記のように、プロセス400のステップ408における選択動作に基づくインデックスドキュメント集合の処理は、様々なやり方で実行に移されてよい。一部の実施形態では、選択動作は、先ず、特定の検索タームについてのインデックスドキュメント集合を2つの群に分けることと、第1のドキュメント集合及び第2のドキュメントを作成するために、各群のインデックスドキュメント集合に対して積集合動作を実行することと、第1のドキュメント集合及び第2のドキュメント集合のうちで少ない数のインデックスドキュメントを含んでいる方のドキュメント集合を、その検索タームについての検索結果として選ぶことと、を含んでいてよい。一部の実施形態では、特定の検索タームについて取り出されたインデックスドキュメント集合は、3つ以上の群に分けられて同様に処理されてもよい。
【0059】
ステップ602では、第1の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合が、第1の群と第2の群とに分けられる。一部の実施形態では、第1の検索タームの検索ワードについて取り出されたインデックスドキュメント集合は、任意の適切な基準に基づいて2つの群に分けられてよい。例えば、もし、偶数のインデックスドキュメント集合があるならば、それらのインデックスドキュメント集合は、集合数が等しい2つの群に分けられてよい。或いは、もし、奇数のインデックスドキュメント集合があるならば、それらのインデックスドキュメント集合は、一方の群がもう一方の群よりも1つ多くの集合を有する2つの群に分けられてよい。
【0060】
ステップ604では、第1のドキュメント集合を作成するために第1の群の1つ以上のインデックスドキュメント集合に対して及び第2のドキュメント集合を作成するために第2の群の1つ以上のインデックスドキュメント集合に対して積集合動作が実施される。積集合動作は、第1の群の各インデックスドキュメントに含まれる各検索ワードを各インデックスドキュメントが少なくとも1つずつ含むような第1のドキュメント集合を作成するために、第1の群のインデックスドキュメント集合に対して実施され、また、第2の群の各インデックスドキュメントに含まれる各検索ワードを各インデックスドキュメントが少なくとも1つずつ含むような第2のドキュメント集合を作成するために、第2の群のインデックスドキュメント集合に対しても実施される。
【0061】
ステップ606では、第1のドキュメント集合及び第2のドキュメント集合のうち、少ない数のインデックスドキュメントの数に関連付けられた方のドキュメント集合が、第1の検索タームについての検索結果を構成するものとして選択される。
【0062】
プロセス600では、検索タームについて取り出された全てのインデックスドキュメント集合に対して一気に積集合動作が実施されるのではなく、検索タームについてのインデックスドキュメント集合のうちの部分群に対してのみ一度に積集合動作が実施される。これは、効率を向上させる。なぜならば、積集合動作を一度に実行する必要があるインデックスドキュメントの数が減少し、動作が短縮されるとともに、その計算効率が高まるからである。以下の例は、プロセス400を使用して、そしてなかでも特にステップ408を実行に移すためにプロセス600を使用してインデックスドキュメントを見つける効率を示す一例である。ユーザが、クエリ「T4利申T5文件」(特許出願書類という意味)によって検索を行うとする。個々の検索文字(「T4」、「利」、「申」、「T5」、「文」、及び「件」)は、それぞれ1、3、5、2、4、及び6のインデックスドキュメント数に関連付けられているとする。もし、検索タームについて取り出された全てのインデックスドキュメント集合に対して積集合動作が実施されたならば、積集合動作の回数は、1×3×5×2×4×6=720になるだろう。しかしながら、プロセス600では、前半3文字「T4利申」のインデックスドキュメント集合が第1の群に分けられてよく、後半3文字「T5文件」のインデックスドキュメント集合が第2の群に分けられてよい。したがって、第1の群に対して実施される積集合動作の回数は、1×3×5=15になり、第2の群に対して実施される積集合動作の回数は、2×4×6=48になるだろう。したがって、検索タームについて実施される積集合動作の合計回数は、1×3×5+2×4×6=63である。したがって、検索タームに関連付けられているインデックスドキュメント集合の部分群に対して積集合動作を実行することによって、積集合動作の回数が大幅に低減されている。
【0063】
図7は、検索タームに関連付けられているインデックスドキュメント集合に対して選択動作を実行する一実施形態を示すフローチャートである。一部の実施形態では、プロセス700は、システム300において実行に移されてよい。一部の実施形態では、プロセス700は、プロセス700のステップ408を実行に移すために使用されてよい。
【0064】
上記のように、プロセス400のステップ408における選択動作に基づくインデックスドキュメント集合の処理は、様々なやり方で実行に移されてよい。一部の実施形態では、選択動作は、先ず、特定の検索タームについてのインデックスドキュメント集合を2つの群に分けることと、各群から1つずつインデックスドキュメント集合を選ぶことと、選択された2つのインデックスドキュメント集合に対して積集合動作を実行することと、積集合動作からの結果を、その検索タームについての検索結果として機能させるために使用すること、とを含んでいてよい。一部の実施形態では、特定の検索タームについてのインデックスドキュメント集合は、3つ以上の群に分けられて同様に処理されてもよい。
【0065】
ステップ702では、第1の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合が、第1の群と第2の群とに分けられる。一部の実施形態では、第1の検索タームの検索ワードについて取り出されたインデックスドキュメント集合は、任意の適切な基準に基づいて2つの群に分けられてよい。
【0066】
ステップ704では、第1の群から第1のインデックスドキュメント集合が選択され、第2の群から第2のインデックスドキュメント集合が選択される。2つの群のそれぞれから、任意の適切な基準に基づいてインデックスドキュメント集合が1つずつ選択されてよい。例えば、群のなかで最も少ない数のインデックスドキュメントに関連付けられているインデックスドキュメント集合が、その群から選択されてよい。
【0067】
ステップ706では、第1のインデックスドキュメント集合及び第2のインデックスドキュメント集合に対して積集合動作が実施され、それらの積集合動作の結果が、第1の検索タームについての検索結果を構成するものとして決定される。第1の群及び第2の群から選択された2つのインデックスドキュメント集合に対する積集合動作の結果は、それぞれ、選択された第1のインデックスドキュメント集合に関連付けられている検索ワードを少なくとも1つと、選択された第2のインデックスドキュメント集合に関連付けられている検索ワードを少なくとも1つとを含む。積集合動作の結果は、第1の検索タームについての検索結果として機能する。
【0068】
以下の例は、プロセス400を使用して、そしてなかでも特にステップ408を実行に移すためにプロセス700を使用してインデックスドキュメントを見つけることを示す一例である。ユーザが、クエリ「T4利申T5文件」(特許出願書類という意味)によって検索を行うとする。個々の検索文字(「T4」、「利」、「申」、「T5」、「文」、及び「件」)は、それぞれ1、3、5、2、4、及び6のインデックスドキュメント数に関連付けられているとする。検索文字「T4」、「利」、及び「申」に対応するインデックスドキュメント集合が第1の群を構成し、検索文字「T5」、「文」、及び「件」に対応するインデックスドキュメント集合が第2の群を構成する。もし、検索タームについて取り出された全てのインデックスドキュメント集合に対して積集合動作が実施されたならば、積集合動作の回数は、1×3×5×2×4×6=720になるだろう。しかしながら、プロセス700において、各群のインデックスドキュメント集合のインデックスドキュメントの数が互いに比較された後、第1の群について選択されたインデックスドキュメント集合は、検索文字「T4」に対応し、1つのインデックスドキュメントを含み、第2の群について選択されたインデックスドキュメント集合は、「T5」に対応し、2つのインデックスドキュメントを含む。したがって、選択された第1のドキュメント集合及び第2のドキュメント集合に対する積集合動作の回数は、1×2=2である。たとえもし、最も多くのインデックスドキュメントを有するインデックスドキュメント集合(第1の群の中では「申」に対応する集合及び第2の群の中では「件」に対応する集合)が選択されたとしても、積集合動作の回数は、僅か5×6=30であり、これは、依然として、そうでなければ必要とされるだろう720回の積集合動作よりも大幅に少ない。
【0069】
図8は、一致するインデックスドキュメントを見つけるためのプロセスの一例を示す図である。一部の実施形態では、プロセス800は、システム300において実行に移される。
【0070】
プロセス800は、プロセス400を適用する一具体例を示している。この例では、ユーザが、浙江省杭州のレモンティーに関する情報を検索しようとしている。したがって、ユーザは、中国語の検索クエリ「浙江杭州T1檬茶」(「浙江省杭州のレモンティー」という意味)を入力する。
【0071】
ステップ802では、検索クエリ「浙江杭州T1檬茶」が受信される。例えば、検索クエリ「浙江杭州T1檬茶」は、ユーザによって、検索エンジンのクエリボックスに入力されてよい。
【0072】
ステップ804では、検索クエリ「浙江杭州T1檬茶」は、中国語の文法規則に少なくとも部分的に基づいて、3つの検索ターム、すなわち「浙江」、「杭州」、及び「T1檬茶」(「レモンティー」の意味)に区分される。
【0073】
ステップ806では、各検索タームの各検索ワードに対応するインデックスドキュメント集合が取り出され、検索タームについて取り出されたインデックスドキュメント集合からの1つのインデックスドキュメント集合が、その検索タームについての検索結果を構成するものとして選択される。
【0074】
先ず、検索クエリの各検索タームの中の各検索ワードについて、インデックスドキュメント集合が取り出される。例えば、検索ワードについてのインデックスドキュメント集合は、1つ以上の既定のインデックステーブルを照会することによって取り出される。したがって、検索ターム「浙江」の場合は、「浙」についてインデックスドキュメント集合が取り出され、「江」について別のインデックスドキュメント集合が取り出される。検索ターム「杭州」の場合は、「杭」についてインデックスドキュメント集合が取り出され、「州」について別のインデックスドキュメント集合が取り出される。検索ターム「T1檬茶」の場合は、「T1」について第1のインデックスドキュメント集合が取り出され、「檬」について第2のインデックスドキュメント集合が取り出され、「茶」について第3のインデックスドキュメント集合が取り出される。この例では、各検索タームについて、インデックスドキュメント集合の1つが任意に選択される。
【0075】
検索ターム「浙江」の場合は、「江」について取り出されたインデックスドキュメント集合が、12のインデックスドキュメントを含み、この検索タームについての検索結果として任意に選択される。例に示されるように、「浙」を含むボックスは、「浙」について取り出されたインデックスドキュメント集合がこれ以上は使用されないことを表すために、網掛けされている。検索ターム「浙江」についての検索結果のインデックスドキュメントは、それぞれ「江」を含み、A1、A3、A5、A6、A11、A13、A14、A15、A17、A18、A21、及びA22におけるそのそれぞれのアドレスによって識別されてよい。検索ターム「杭州」の場合は、「杭」について取り出されたインデックスドキュメント集合が、10のインデックスドキュメントを含み、この検索タームについての検索結果として任意に選択される。例に示されるように、「州」を含むボックスは、「州」について取り出されたインデックスドキュメント集合がこれ以上は使用されないことを表すために、網掛けされている。検索ターム「杭州」についての検索結果のインデックスドキュメントは、それぞれ「杭」を含み、A1、A2、A3、A5、A7、A10、A18、及びA23におけるそのそれぞれのアドレスによって識別されてよい。検索ターム「T1檬茶」の場合は、「檬」について取り出されたインデックスドキュメント集合が、5つのインデックスドキュメントを含み、この検索タームについての検索結果として任意に選択される。例に示されるように、「T1」及び「茶」を含むボックスは、「T1」及び「茶」について取り出されたインデックスドキュメント集合がこれ以上は使用されないことを表すために、網掛けされている。検索ターム「T1檬茶」についての検索結果のインデックスドキュメントは、それぞれ「檬」を含み、A1、A2、A3、A5、及びA18におけるそのそれぞれのアドレスによって識別されてよい。
【0076】
ステップ808では、各インデックスドキュメントが少なくとも「江」、「杭」、及び「檬」を1つずつ含むような結果ドキュメント集合を得るために、「浙江」、「杭州」、及び「T1檬茶」についての検索結果に対して積集合動作が実施される。先の例に戻ると、得られた結果ドキュメント集合は、インデックスドキュメントA1と、インデックスドキュメントA3とを含む。
【0077】
ステップ810では、結果ドキュメント集合の第1のインデックスドキュメントが、それが各検索ターム「浙江」、「杭州」、及び「T1檬茶」を含むかどうかを決定するためにスキャンされ、第1のインデックスドキュメントがこれらの各検索タームを含む場合は、第1のインデックスドキュメントはユーザに返されるものと決定され、第1のインデックスドキュメントがこれらの検索タームの少なくとも1つを含まない場合は、第1のインデックスドキュメントはユーザに返されないものと決定される。先の例に戻ると、インデックスドキュメントA1及びA3は、それが「浙江」、「杭州」、及び「T1檬茶」を少なくとも1つずつ含むかどうかを決定するために、それぞれチェックされる。もし含むならば、このインデックスドキュメントは、検索クエリに一致するものと決定され、ユーザに返される。そうでなく、もし、インデックスドキュメントが「浙江」、「杭州」、及び「T1檬茶」の少なくとも1つを含まないならば、このインデックスドキュメントは、ユーザに返されない。この例では、インデックスドキュメントA1及びインデックスドキュメントA3は、ともに、それぞれ3つの検索タームを全て含むものと決定され、したがって、両ドキュメントとも、ユーザに返される。
【0078】
各検索タームについての検索結果として機能させるために、1つのインデックスドキュメント集合のみを選択することによって、積集合動作を実施される必要があるインデックスドキュメントが減少し、したがって、関連情報の検索が更に効率的になる。
【0079】
図9は、一致するインデックスドキュメントを見つけるためのプロセスの一例を示す図である。
【0080】
プロセス800が、検索タームについての検索結果として機能させるために任意の一インデックスドキュメントを選択する例を使用しているのに対し、プロセス900は、最も少ない数のインデックスドキュメントを関連付けられているインデックスドキュメント集合を検索タームについての検索結果として選ぶ別の例を示している。プロセス900は、プロセス800のステップ802及び804によって実行に移されてよく、また、プロセス800のステップ806、808、及び810を差し替えてあると考えられる。
【0081】
ステップ906では、各検索タームの各検索ワードに対応するインデックスドキュメントが取り出され、検索タームに関連付けられている検索ワードに属するインデックスドキュメント集合から、その検索タームについての検索結果を構成するものとして1つのインデックスドキュメント集合が選択される。ここで、選択されるインデックスドキュメント集合は、その検索タームに属する検索ワードに関連付けられているインデックスドキュメントの数が最も少ない集合である。
【0082】
先ず、検索クエリの各検索タームの中の各検索ワードについて、インデックスドキュメント集合が取り出される。例えば、検索文字/ワードについてのインデックスドキュメント集合は、1つ以上の既定のインデックステーブルを照会することによって取り出されてよい。したがって、検索ターム「浙江」の場合は、10のインデックスドキュメントを含むインデックスドキュメント集合が「浙」について取り出され、12のインデックスドキュメントを含む別のインデックスドキュメント集合が「江」について取り出され、したがって、検索タームについての検索結果としては、より少ないインデックスドキュメントを含む「浙」のインデックスドキュメント集合が選択される。検索ターム「杭州」の場合は、8のインデックスドキュメントを含むインデックスドキュメント集合が「杭」について取り出され、10のインデックスドキュメントを含む別のインデックスドキュメント集合が「州」について取り出され、したがって、検索タームについての検索結果としては、より少ないインデックスドキュメントを含む「杭」のインデックスドキュメント集合が選択される。検索ターム「T1檬茶」の場合は、6のインデックスドキュメントを含む第1のインデックスドキュメント集合が「T1」について取り出され、5のインデックスドキュメントを含む第2のインデックスドキュメント集合が「檬」について取り出され、9のインデックスドキュメントを含む第3のインデックスドキュメント集合が「茶」について取り出され、したがって、検索タームについての検索結果としては、最も少ないインデックスドキュメントを含む「檬」のインデックスドキュメント集合が選択される。
【0083】
ステップ908では、各インデックスドキュメントが少なくとも「浙」、「杭」、及び「檬」を1つずつ含むような結果ドキュメント集合を得るために、「浙江」、「杭州」、及び「T1檬茶」についての検索結果に対して積集合動作が実施される。先の例に戻ると、得られた結果ドキュメント集合は、インデックスドキュメントA1と、インデックスドキュメントA2と、インデックスドキュメントA3とを含む。
【0084】
ステップ910では、結果ドキュメント集合の第1のインデックスドキュメントが、それが各検索ターム「浙江」、「杭州」、及び「T1檬茶」を含むかどうかを決定するためにスキャンされ、第1のインデックスドキュメントがこれらの各検索タームを含む場合は、第1のインデックスドキュメントはユーザに返されるものと決定され、第1のインデックスドキュメントがこれらの検索タームの少なくとも1つを含まない場合は、第1のインデックスドキュメントはユーザに返されないものと決定される。先の例に戻ると、インデックスドキュメントA1及びA3は、それが「浙江」、「杭州」、及び「T1檬茶」を少なくとも1つずつ含むかどうかを決定するために、それぞれチェックされる。もし含むならば、このインデックスドキュメントは、検索クエリに一致するものと決定され、ユーザに返される。そうでなく、もし、インデックスドキュメントが「浙江」、「杭州」、及び「T1檬茶」の少なくとも1つを含まないならば、このインデックスドキュメントは、ユーザに返されない。この例では、インデックスドキュメントA1及びインデックスドキュメントA3は、それぞれ3つの検索タームを全て含むものと決定されるが、インデックスドキュメントA2は、3つ全ての検索タームを含んではいないので、インデックスドキュメントA1及びA3のみが、ユーザに返されるだろう。
【0085】
各検索タームについての検索結果として機能させるために、最も少ない数のインデックスドキュメントに関連付けられている1つのインデックスドキュメント集合のみを選択することによって、積集合動作を実施される必要があるインデックスドキュメントが減少し、したがって、関連情報の検索が更に効率的になる。
【0086】
図10は、一致するインデックスドキュメントを見つけるためのプロセスの一例を示す図である。一部の実施形態では、プロセス1000は、システム300において実行に移される。
【0087】
プロセス1000は、プロセス400を適用する一具体例を示している。プロセス1000は、より効率的な検索を生み出すために、積集合動作を実施されるインデックスドキュメントの数を減少させるための複数の技術の混合を使用することを示している。プロセス1000は、プロセス800のステップ802及び804によって実行に移されてよく、また、プロセス800のステップ806、808、及び810を差し替えてあると考えられる。
【0088】
この例では、ユーザが、浙江省杭州のレモンティーに関する情報を検索しようとしている。したがって、ユーザは、中国語の検索クエリ「浙江杭州T1檬茶」(「浙江省杭州のレモンティー」の意味)を入力する。
【0089】
ステップ1002では、検索ターム「浙江」の検索文字「浙」及び「江」に対応するインデックスドキュメントを求めてインデックステーブルが照会され、「浙」に対応する10のインデックスドキュメントと、「江」に対応する12のインデックスドキュメントとが取り出される。
【0090】
ステップ1004では、検索ターム「浙江」について、「浙」に対応するインデックスドキュメント集合は、「江」についてのインデックスドキュメント集合よりも少ない数のインデックスドキュメントを有するゆえに、「浙江」についての検索結果を構成するものと決定される。この例では、この検索結果の10のドキュメントのアドレスは、A1、A2、A3、A4、A7、A8、A10、A12、A17、及びA20である。
【0091】
ステップ1006では、検索ターム「杭州」の検索文字「杭」及び「州」に対応するインデックスドキュメントを求めてインデックステーブルが照会され、「杭」に対応する8のインデックスドキュメントと、「州」に対応する10のインデックスドキュメントとが取り出される。
【0092】
ステップ1008では、「杭州」について取り出されたインデックスドキュメント集合が、2つの群に分けられる。この例では、2つの検索文字「杭州」について取り出されたインデックスドキュメント集合が2つのみであるので、第1の群は、「杭」に対応する8のインデックスドキュメントを含み、第2の群は、「州」に対応する10のインデックスドキュメントを含む。
【0093】
ステップ1010では、それぞれが「杭」及び「州」の両方を含むような2つのインデックスドキュメントを得るために、第1の群及び第2の群に対して積集合動作が実施される。この例において、第1の群及び第2の群に対して積集合を実行することによって得られる結果は、アドレスA1及びA3に位置して「杭」及び「州」の両方をそれぞれ含んでいる2つのインデックスドキュメントである。
【0094】
ステップ1012では、検索ターム「T1檬茶」の検索文字「T1」、「檬」、及び「茶」に対応するインデックスドキュメント集合を求めてインデックステーブルが照会され、取り出された3つのインデックスドキュメント集合は、2つの群に分けられる。ここで、第1の群は、「T1」に対応するインデックスドキュメント集合と、「檬」に対応するインデックスドキュメント集合とを含み、第2の群は、「茶」に対応するインデックスドキュメント集合を含む。
【0095】
ステップ1014では、それぞれが「T1」及び「檬」の両方を含むような3つのインデックスドキュメントを得るために、「T1」に対応するインデックスドキュメント集合及び「檬」に対応するインデックスドキュメント集合に対して積集合動作が実施される。ここで、これら3つのインデックスドキュメント集合は、第1のドキュメント集合を構成し、「茶」に対応するインデックスドキュメント集合は、第2のドキュメント集合を構成する。
【0096】
ステップ1016では、「茶」に関連付けられている第2のドキュメント集合よりも少ない数のインデックスドキュメントに関連付けられているゆえに、第1のドキュメント集合が、検索ターム「T1檬茶」についての検索結果を構成するものと決定される。この例では、検索ターム「T1檬茶」についての検索結果として機能するために選択された第1のドキュメント集合の3つのインデックスドキュメントは、アドレスA1、A3、及びA5に位置している。
【0097】
ステップ1018では、各インデックスドキュメントが少なくとも「浙」、「杭」、「州」、「T1」、及び「檬」を1つずつ含むような結果ドキュメント集合を得るために、「浙江」、「杭州」、及び「T1檬茶」についての検索結果に対して積集合動作が実施される。この例では、得られた結果ドキュメント集合は、インデックスドキュメントA1と、インデックスドキュメントA3とを含む。
【0098】
ステップ 1020では、結果ドキュメント集合の第1のインデックスドキュメントが、それが各検索ターム「浙江」、「杭州」、及び「T1檬茶」を含むかどうかを決定するためにスキャンされ、第1のインデックスドキュメントがこれらの各検索タームを含む場合は、第1のインデックスドキュメントはユーザに返されるものと決定され、第1のインデックスドキュメントがこれらの検索タームの少なくとも1つを含まない場合は、第1のインデックスドキュメントはユーザに返されないものと決定される。先の例に戻ると、インデックスドキュメントA1及びA3は、それが「浙江」、「杭州」、及び「T1檬茶」を少なくとも1つずつ含むかどうかを決定するために、それぞれチェックされる。もし含むならば、このインデックスドキュメントは、検索クエリに一致するものと決定され、ユーザに返される。そうでなく、もし、インデックスドキュメントが「浙江」、「杭州」、及び「T1檬茶」の少なくとも1つを含まないならば、このインデックスドキュメントは、ユーザに返されない。この例では、インデックスドキュメントA1及びインデックスドキュメントA3は、ともに、それぞれ3つの検索タームを全て含むものと決定され、したがって、両ドキュメントとも、ユーザに返されるだろう。
【0099】
一部の実施形態では、受信された検索クエリが、1つ以上の既定の文法規則にしたがっているかどうかをチェックされる。一部の実施形態では、既定の文法規則は、1つ以上の言語に関連付けられていてよい。一部の実施形態では、同じ既定の文法規則が複数の検索システムに関連付けられていてよい、及び/又は異なる検索システムには異なる既定の文法規則が関連付けられていてよい。検索クエリが、検索が行われている検索システム用に予め定められた文法規則にしたがっていない場合は、その検索システムは、正確な検索結果を返さないかもしれない。したがって、上述された検索を向上させるやり方は、受信された検索クエリに一致するインデックスドキュメントを見つける前に、その検索クエリが既定の文法規則にしたがっているかどうかをチェックすることを含む。もし、検索クエリが、1つ以上の既定の文法規則にしたがっていないならば、ユーザは、修正した検索クエリをサブミットしなおすように促される。検索クエリの処理は、一般に、意味のない余分な文字(空白、矢印、及びその他の同様な制御文字など)を検索クエリから排除することを含んでいてもよい。以下は、既定の文法規則にしたがっているかどうかについて検索クエリをチェックする一例である。
【0100】
検索クエリが読み出され、取り出された既定の文法規則と比較される。検索クエリが、少なくとも1つの文法規則にしたがっていない場合は、エラーが生成され、入力をサブミットしなおすように促すプロンプトがユーザに提示される。例えば、検索クエリが、「検索ターム1 AND AND 検索ターム2」であるとする。2つの論理ターム「AND AND」の間には、論理層関係が示されていないので、このクエリは、文法規則にしたがっていない。したがって、エラーが報告され、ユーザは、修正を行うように要求される。もし、サブミットしなおした検索クエリが、既定の文法規則にしたがっているならば、その検索クエリは、単純化処理を施される。例えば、単純化処理は、検索クエリが論理タームでもワード文字でもない記号を含むかどうかを評価することを含んでいてよい。もし含むならば、追加の記号が排除される。例えば、もし、1つの空白があればよいところに2つの空白があるならば、検索クエリから1つの空白が削除されるだろう。一部の実施形態では、規則にしたがっている及び/又は単純化された検索クエリが、既定の文法規則に基づいて区分されてもよい。
【0101】
一部の実施形態では、ユーザの検索履歴に基づいて、検索クエリからの2つ以上の検索タームが1つの検索タームにまとめられてよい。検索タームをまとめた結果、検索タームの数が減少し、したがって、積集合動作を実施される検索結果の数も減少し、これは、検索の効率を向上させるだろう。一部の実施形態では、検索タームのまとめは、各検索タームの各検索ワードに対応するインデックスドキュメントを求めてインデックステーブルを照会する前に実施されてよい。
【0102】
図11は、2つ以上の検索タームを1つの検索タームにまとめるかどうかを決定するためにユーザの検索履歴を使用する一例を示すフローチャートである。一部の実施形態では、プロセス1100は、システム300において実行に移されてよい。
【0103】
プロセス1100は、ユーザによって入力された現行の検索クエリから区分された第1の検索タームと第2の検索タームとが1つの検索タームにまとめられるべきかどうかを決定するために使用されてよい。
【0104】
ステップ1102では、ユーザによって入力された過去の検索クエリの中で第1の検索タームと第2の検索タームとが併せて使用されている頻度が決定される。例えば、頻度は、同じ検索クエリの中で第1の検索タームと第2の検索タームとが併せて使用されていた頻度の記録を含むユーザ検索履歴テーブルを照会することによって決定されてよい。一部の実施形態では、ユーザ検索履歴テーブルは、特定の一ユーザに又は複数の異なるユーザに関連付けられている履歴情報のみを含んでいてよい。
【0105】
ステップ1104では、頻度が既定の閾値を超えるかどうかが決定される。既定の閾値を超えている場合は、第1の検索ターム及び第2の検索タームは、1つの検索タームにまとめられ、既定の閾値を超えていない場合は、第1の検索ターム及び第2の検索タームは、1つの検索タームにまとめられない。
【0106】
ユーザの検索履歴は、ユーザによる検索の傾向及び関心を反映することができる。検索履歴の統計的解析は、検索タームをいつまとめるのが適切であるかを決定するのに役立つことができる。もし、ユーザの検索履歴の再考察によって、検索ターム1と検索ターム2とがユーザによる検索において併せて使用されるのが通常であることがわかったならば、検索ターム1と検索ターム2とを2つの独立した検索タームとして扱う必要はなく、その代わりに、これらの2つの検索タームは、各検索タームについてのインデックスドキュメント集合を取り出す前に、1つの検索タームにまとめられる。したがって、もし、取り出されたインデックスドキュメントの処理における選択動作が、最も少ない数のインデックスドキュメントに関連付けられている検索タームインデックスドキュメント集合をその検索タームについての検索結果として機能させるために選択することを含んでいるならば、もとは2つの検索タームだったものが1つになったことによって、各種検索タームの積集合動作を実施される検索結果のインデックスドキュメントの数が低減される。
【0107】
図12は、検索タームがまとめられるべきかどうかを決定するために使用される検索履歴テーブルの一例である。例として、ユーザが、中国語検索クエリ「T4利知T6普及程度」(特許知識普及レベルという意味)を使用して検索を行うとする。中国語文法の文法規則にしたがうと、検索クエリは、以下の4つの検索ターム、すなわち「T4利」(特許)、「知T6」(知識)、「普及」(普及)、及び「程度」(レベル)に区分される。検索タームがまとめられるべきかどうかの決定を伴わない場合は、4つの検索タームのそれぞれについて取り出されたインデックスドキュメント集合から、そのそれぞれの検索タームについての検索結果として機能するためにインデックスドキュメント集合が1つずつ選択され、次いで、それら4つのインデックスドキュメント集合に対して積集合動作が実施されるだろう。しかしながら、ユーザの検索履歴を使用して、4つの検索タームのうちの少なくとも幾つかがまとめられてよい。
図12に示された検索履歴テーブルを参照すると、2つの検索ターム「T4利」(特許)及び「知T6」(知識)は、過去の検索の80%において併せて使用されており、2つの検索ターム「普及」(普及)及び「程度」(レベル)は、検索の60%において併せて使用されていた。もし、既定の頻度閾値が70%であるならば、「T4利」(特許)及び「知T6」(知識)は1つの検索タームにまとめられるものと決定されるが、「普及」(普及)及び「程度」(レベル)はそうでない。まとめられた後、検索クエリは、3つの検索ターム、すなわち「T4利知T6」(特許知識)、「普及」(普及)、及び「程度」(レベル)のみを有することになり、したがって、3つの検索タームについてのそれぞれの検索結果として機能するために、3つのインデックスドキュメント集合が選択されればよい。これら3つの検索結果は、次いで、積集合動作を経ることになり、こうして、積集合動作を実施される検索結果内のインデックスドキュメント集合の数が低減される。
【0108】
一部の実施形態では、検索タームをまとめる基準は、ユーザ検索履歴に限定されない。例えば、検索タームをまとめる別の基準として、所定の言語使用相関(例えば、2つ以上の検索ターム間の固有な関係)が挙げられる。例えば、もし、所定の言語使用相関に基づくと、検索ターム3が検索ターム4と併せて使用されることが多いならば、検索ターム3と検索ターム4とを2つの独立した検索タームとして扱う必要はなく、その代わりに、これら2つの検索タームは1つにまとめられてよい。
【0109】
図13は、2つ以上の検索タームを1つの検索タームにまとめるかどうかを決定するためにそれら2つ以上の検索ターム間における所定の固有な関係を使用する一例を示すフローチャートである。一部の実施形態では、プロセス1300は、システム300において実行に移されてよい。一部の実施形態では、プロセス1300は、プロセス400の、ステップ404の後ろで且つ406の前に追加されてよい。
【0110】
ステップ1302では、検索クエリから検索ターム1と検索ターム2とが区分される。
【0111】
ステップ1304では、第1の検索タームと第2の検索タームとの間に固有な関係が存在するかどうかを決定するために、既定の固有検索ターム関係に関するテーブルがチェックされ、固有な関係が存在する場合は、第1の検索ターム及び第2の検索タームは1つの検索タームにまとめられ、固有な関係が存在しない場合は、第1の検索ターム及び第2の検索タームは1つの検索タームにまとめられない。
【0112】
例えば、中国語の検索クエリ「西藏布T7拉T8」(チベットポタラ宮殿という意味)をとりあげる。この検索クエリは、自然言語法則にしたがって、以下の2つの検索ターム、すなわち「西藏」(チベット)と「布T7拉T8」(ポタラ宮殿)とに区分される。しかしながら、ポタラ宮殿が1つしかないことは常識であり、修飾語「西藏」(チベット)は省略されてよい。したがって、これら2つの検索タームは、1つの検索ターム「布T7拉T8」(ポタラ宮殿)にまとめることができる。
【0113】
一部の実施形態では、検索クエリから区分された検索タームは、標準化処理を施される。本明細書で言う標準化処理は、検索タームの検索ワードに対して実施される言語処理である。一部の実施形態では、検索タームは、検索文字/ワードについてのインデックスドキュメントの取り出しが便利に行えるように、既定のインデックステーブルのインデックス文字/ワードに一致させやすい形式に標準化される。ある文字/ワード検索インデックスシステム用にインデックテーブルが作成されるとき、場合によっては、そこで使用されるインデックス文字/ワードは、所定の従来の形式をとっている。これらは、自然言語で見られる時制、複数形、大文字表記などに関する変化を持たない。それでも、ユーザによって入力される検索クエリは、対応するインデックス文字/ワードから僅かに変化した形の検索ワードを含むことがある。したがって、検索タームの検索ワードに対応するインデックスドキュメントの取り出しを促進するために、検索ワードは、インデックス文字/ワードの形式に一致するように標準化されてよい。一部の実施形態では、検索ワードが辞書で調べられ、もし、それらの検索ワードが標準形式でないならば、それらは、インデックス文字/ワードに関連付けられている同じ標準形式に変換される。次いで、ある検索ワードについて、標準化された検索ワードに見合うインデックス文字/ワードに対応するインデックスドキュメント集合が取り出されるように、標準化された検索ワードと、それらに見合うインデックス文字/ワードとの間に対応関係が確立されてよい。例えば、ユーザが、「GO」、「went」、及びその他の同様な検索ターム要素を検索クエリに入力する。しかしながら、インデックスを付けられた文字/ワードは、「go」のみであるので、「GO」及び「went」は無視され、それらについてのインデックスドキュメントは取り出されないだろう。これは、検索エラーを招くことを避けられない。したがって、インデックス文字/ワード「go」に関連付けられているインデックスドキュメント集合が、等価な検索ワード「GO」及び「went」についても取り出されるように、「GO」及び「went」と、インデックス文字/ワード「go」との間に対応関係を確立することが必要である。
【0114】
一部の実施形態では、ユーザの検索クエリに応答してユーザに返されるものとして決定される結果インデックスドキュメントが、先ず、ランク付けされる。一部の実施形態では、ランク付けは、インデックスドキュメント内におけるワード組み合わせの重みを計算することと、ワード組み合わせに関連付けられている計算された重みに基づいて、各インデックスドキュメントについてのドキュメント相関スコアを計算することと、ドキュメント相関スコアに基づいてインデックスドキュメントをランク付けすることと、を含む。ランク付けプロセスの一例は、以下のとおりである。
【0115】
第1のステップ:あるインデックスドキュメントに含まれる各ワード組み合わせについて、そのワード組み合わせ重みが決定される。総じて、1つのドキュメント内にワード組み合わせが出現する頻度(ワード組み合わせ頻度、「tf」で示される)が高いほど、このワード組み合わせは重要であると見なされ、頻度が低いほど、このワード組み合わせは重要でないと見なされる。その結果、高頻度のワード組み合わせは、より大きい重みを付けられ、ドキュメント間相関スコアの計算において、より大きな役割を演じる。ユーザに返されるべき結果インデックスドキュメントの中では、それらのドキュメント内にワード組み合わせが出現する頻度(ドキュメント頻度、「df」で示される)が高いほど、このワード組み合わせは重要でないとされる。なぜならば、このようなワード組み合わせは、ありふれすぎていて、ドキュメントどうしを差別化するのに不十分であるかもしれないからである。
【0116】
以下は、ワード組み合わせのワード組み合わせ重みを決定するために使用される式の一例である。
【0118】
tf
t,d成分は、ドキュメントd内における第t番目のワード組み合わせの頻度を指しており、df
tは、第t番目のワード組み合わせを含むドキュメントの数を指しており、nは、ドキュメントの総数を指しており、w
t,dは、ドキュメントd内における第t番目のワード組み合わせの重みを指している。
【0119】
式(1)は、ワード組み合わせ重みを決定するために使用される式の一候補に過ぎず、その他の任意の適切な式も使用可能である。
【0120】
第2のステップ:検索クエリ(例えば検索クエリ)に対する各インデックスドキュメントのドキュメント相関スコアが計算される。ドキュメント相関の計算には多くの技術が存在するが、この例では、説明を目的として、ベクトル空間モデル(VSM)技術が使用される。総じて、ドキュメント相関は、そのドキュメントに含まれるワード組み合わせの重要性に基づいて決定される。
【0121】
ドキュメントは、一連のワード組み合わせで構成されていると考えることができる。各ワード組み合わせは、上述された技術で計算された対応する重みを有する。ワード組み合わせは、ドキュメント内におけるそのそれぞれの重みに基づいて、そのドキュメントのドキュメント相関スコアに影響を及ぼすことができる。ドキュメント内における全てのワード組み合わせの重みは、ベクトルを形成していてよい。
【0122】
ドキュメント={組み合わせ1,組み合わせ2,...,組み合わせN}
【0123】
ドキュメントベクトル={重み1,重み2,...,重みN}
【0124】
クエリもまた、同様に、単純なドキュメントとして考えられてよく、そのベクトルは、以下のように表される。
【0125】
クエリ={ターム1,ターム2,...,タームN}
【0126】
クエリベクトル={重み1,重み2,...,重みN}
【0127】
図14は、ドキュメントベクトル及びクエリベクトルをN次元空間で示す一例である。この例に示されるように、ドキュメントベクトルとクエリベクトルとの間には、角度(∠)が決定されてよい。2つのベクトルによって形成される角度が小さいほど、検索クエリに対するドキュメントの相関が大きい。したがって、2つのベクトル間の角度のコサインを計算することによって、ドキュメント相関についてのスコアが割り当てられてよい。角度が小さいほど、コサインの値、スコア、及び相関が大きくなる。以下は、ドキュメントのドキュメント相関スコアを決定するために使用される式の一例である。
【0129】
ベクトルV
qは、検索クエリqの中の各検索ワードの重みから構成されたベクトルであり、ベクトルV
dは、ドキュメントdに含まれる各ワード組み合わせの重みから構成されたベクトルであり、W
i,qは、検索クエリqの中の第i番目の検索ワードの重みを指しており、W
i,dは、ドキュメントdの中の第i番目のワード組み合わせの重みを指しており、スコア(q,d)は、ドキュメントdを検索及び取得するために検索クエリqが使用されるときの相関スコアを指している。
【0130】
第3のステップ:インデックスドキュメントが、そのそれぞれのドキュメント相関スコアによってランク付けされる。インデックスドキュメントは、そのそれぞれのランクに基づいてユーザに返されてよい及び/又は提示されてよい。
【0131】
図15は、一致するインデックスドキュメントを見つけるためのシステムの一実施形態を示す図である。
【0132】
モジュール及びサブモジュールは、1つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、プログラム可能なロジックデバイス及び/若しくは特定の機能を実行するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、モジュール及びサブモジュールは、本発明の実施形態で説明される方法を(パソコン、サーバ、ネットワーク機器などの)コンピュータデバイスに実行させるための命令を含み尚且つ(光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの)不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化することができる。モジュール及びサブモジュールは、1つのデバイスに実装されてよい、又は複数のデバイスに分散されてよい。
【0133】
この例では、システム1500は、検索クエリ受信モジュール1501と、ワード列抽出・区分モジュール1502と、インデックスドキュメント集合取得モジュール1503と、インデックスドキュメント集合処理モジュール1504と、積集合動作モジュール1505と、評価モジュール1506とを含む。
【0134】
検索クエリ受信モジュール1501は、ユーザによって入力された検索クエリを受信するように構成される。
【0135】
文字列抽出・区分モジュール1502は、各検索クエリから文字列を抽出し、この文字列を、1つ以上の検索ワードをそれぞれ含む1つ以上の検索タームに区分するように構成される。
【0136】
インデックスドキュメント集合取得モジュール1503は、各検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取得するために、インデックステーブルを照会するように構成される。
【0137】
インデックスドキュメント集合処理モジュール1504は、各検索タームに関連付けられている取得されたインデックスドキュメント集合を処理するように構成され、この処理は、その検索タームについて取り出された全てのインデックスドキュメント集合の中から処理を実施されるべき部分集合を選択することを含む。各検索タームについての処理結果は、その検索タームについての検索結果と呼ばれる。
【0138】
積集合動作モジュール1505は、各検索タームについての検索結果に対して積集合動作を実施し、結果ドキュメント集合を生成するように構成される。
【0139】
評価モジュール1506は、結果ドキュメント集合の中の各インデックスドキュメントが検索クエリの全ての検索タームを含むかどうかを決定するように構成される。結果ドキュメント集合の中で全ての検索タームを含むインデックスドキュメントのみが、クエリ元のユーザに返される。
【0140】
一部の実施形態では、システム1500は、以下のように動作するように構成される。すなわち、検索クエリ受信モジュール1501は、ユーザによって入力された検索クエリを受信した後、その文を、文字列抽出・区分モジュール1502に送信する。文字列抽出・区分モジュール1502は、検索クエリから文字列を抽出した後、その文字列に、自然文法規則にしたがった検索ターム区分を施す。検索タームは、検索ワードを含み、検索ワードは、単一ワード、ワード組み合わせ、及び/又は言い回しであってよい。検索ターム区分が完了した後、インデックスドキュメント集合取得モジュール1503は、検索タームの検索ワードにしたがってインデックステーブルを照会し、対応するインデックスドキュメント集合を取得する。次いで、インデックスドキュメント集合処理モジュール1504は、取得されたインデックスドキュメント集合を処理し、この処理は、取得された全てのインデックスドキュメント集合の中から、処理するべき部分集合を選択することを含む。インデックスドキュメント集合処理モジュール1504は、また、検索タームについての選択されたインデックスドキュメント集合の部分集合を処理した結果がその検索タームについての検索結果を構成することを決定する。検索タームの検索結果は、積集合動作モジュール1505に入力され、このモジュールは、受信された検索結果に対して積集合動作を実施し、それを評価モジュール1506に送信する。評価モジュール1506は、結果ドキュメント集合の中の各インデックスドキュメントが検索クエリの全ての検索タームを含むかどうかを決定する。結果ドキュメント集合のうち、全ての検索タームを含むインデックスドキュメントのみが、クエリ元のユーザに返される。
【0141】
インデックスドキュメント集合処理モジュール1504は、多くの異なる種類の処理技術を使用してよい。異なる技術は、異なる具体的構造に対応していてよい。例えば、システム1500は、更に、インデックスドキュメント量比較サブモジュールと、インデックスドキュメント集合選択サブモジュールとを含んでいてよい。インデックスドキュメント量比較サブモジュールは、検索タームについて取り出された各インデックスドキュメント集合の中のインデックスドキュメントの数を比較するように構成される。インデックスドキュメント集合選択サブモジュールは、最も少ない数のインデックスドキュメントを有するインデックスドキュメント集合を、その検索タームについての処理結果として機能させるために選択するように構成される。
【0142】
図16は、システム1500のインデックスドキュメント集合処理モジュール1504の一実施形態を示す図である。この例では、インデックスドキュメント集合処理モジュール1504は、インデックスドキュメント集合分割サブモジュール15041と、第1の積集合動作サブモジュール15042と、インデックスドキュメント量比較サブモジュール15043と、第1の選択サブモジュール15044とを含む。
【0143】
インデックスドキュメント集合分割サブモジュール15041は、検索タームのインデックスドキュメント集合を少なくとも2つの群に分けるように構成される。
【0144】
第1の積集合動作サブモジュール15042は、各群の積集合動作結果ドキュメント集合を得るために、各群内のインデックスドキュメント集合に対して積集合動作を実行するように構成される。
【0145】
インデックスドキュメント量比較サブモジュール15043は、各群の積集合動作結果ドキュメント集合の中のインデックスドキュメントの数を互いに比較するように構成される。
【0146】
第1の選択サブモジュール15044は、最も少ない数のインデックスドキュメントを有する積集合動作結果ドキュメント集合を、その検索タームについての処理結果として機能させるために選択するように構成される。
【0147】
別の一実施形態では、インデックスドキュメント集合処理モジュール1504は、更に、インデックスドキュメント集合分割サブモジュールと、インデックスドキュメント量比較サブモジュールと、第2の選択サブモジュールと、第2の積集合動作サブモジュールとを含み、インデックスドキュメント集合分割サブモジュールは、検索タームのインデックスドキュメント集合を少なくとも2つの群に分けるように構成され、インデックスドキュメント量比較サブモジュールは、各群内のインデックスドキュメント集合の中のインデックスドキュメントの数を比較するように構成され、第2の選択サブモジュールは、最も少ない数のインデックスドキュメントを有するインデックスドキュメント集合を、その群についての選択結果ドキュメント集合として機能させるために選択するためのものであり、第2の積集合動作サブモジュールは、各群の選択結果ドキュメント集合に積集合動作を施して、積集合動作結果を検索タームについての処理結果として使用するように構成される。これら2つの実施形態は、以下の点で異なる。すなわち、選択動作及び(1つ以上の)積集合動作は、異なる順序に配されている。インデックスドキュメント集合処理モジュール1504は、小さい群に分けられた検索タームについて取り出されたインデックスドキュメント集合に対して先ず積集合動作を実施し、次いで、それらの群についての積集合動作結果に対して選択動作を実施してよい。インデックスドキュメント集合処理モジュール1504は、また、小さい群に分けられた検索タームについて取り出されたインデックスドキュメント集合に対して選択動作を実施し、次いで、各群の選択結果ドキュメント集合に対して積集合動作を実行する。
【0148】
図15に戻り、システム1500は、更に、文法検査モジュール1507を含んでいてよい。文法検査モジュールは、文法チェック及び単純化処理を含む。システム1500は、また、区分された検索タームを既定の規則にしたがってまとめるための検索タームまとめモジュール1508も含んでいてよい。システム1500は、また、検索クエリ及び検索タームに対して言語処理を実行するための標準化処理モジュール1509も含んでいてよい。システム1500は、また、評価モジュール1506による評価のために送り返されたドキュメントを保存するための保存モジュール1510も含んでいてよい。保存媒体は、ネットワークハードドライブ、メールボックス、及びその他の外部ストレージ機器であってよい。システム1500は、また、評価モジュール1506によって評価されて検索タームを含むものと決定されたドキュメントをランク付けするように構成されたランク付けモジュール1511も含んでいてよい。
【0149】
図17は、システム1500のランク付けモジュール1511の一例を示す図である。この例では、ランク付けモジュール1511は、各検索タームの重みを、返された結果ドキュメント集合のドキュメント内にその検索タームが出現する頻度に基づいて計算するように構成された検索ターム重み計算サブモジュール15111と、送り返されたドキュメントのドキュメント相関スコアを、計算された重みに基づいて計算するように構成されたドキュメントスコア計算サブモジュール15112と、返されたドキュメントを、そのそれぞれのドキュメントスコアにしたがってランク付けするように構成されたランク付けサブモジュール15113と、を含んでいてよい。
【0150】
上述された本発明の実施形態は、本発明による保護の範囲を制限するものではなく、本発明の主旨及び原理の範囲内でなされるあらゆる変更、均等物、置き換え、又は改良が、本発明の特許請求の範囲による保護下に入るものとされる。
【0151】
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、与えられた詳細に限定されず、本発明を実現するには、多くの代替的手法がある。開示された実施形態は、例示的なものであり、非限定的である。
適用例1:インデックスドキュメントを見つけるためのシステムであって、1つ以上のプロセッサであって、検索クエリを受信し、前記検索クエリから文字列を抽出し、前記文字列を、1つ以上の検索ワードをそれぞれ含む複数の検索タームに区分し、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出し、前記複数の検索タームの第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、選択動作に少なくとも部分的に基づいて処理し、前記選択動作は、前記第1の検索タームについて取り出された全てのインデックスドキュメントのうちのいずれの部分集合が処理されるべきかを示し、前記第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合の前記部分集合の処理結果は、前記第1の検索タームについての検索結果を構成し、結果ドキュメント集合を生成するために、前記複数の検索タームに対応する検索結果に対して積集合動作を実行し、前記結果ドキュメント集合のうち、前記複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第1の部分集合を決定し、返すように構成されている、1つ以上プロセッサと、前記1つ以上のプロセッサに接続され、前記1つ以上のプロセッサに命令を提供するように構成されている1つ以上のメモリと、を備えるシステム。
適用例2:適用例1に記載のシステムであって、前記複数の検索タームの前記第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第1の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を互いに比較することと、最も少ない数のインデックスドキュメントに関連付けられている前記インデックスドキュメント集合を、前記第1の検索タームについての検索結果を構成する集合として選択することと、を含む、システム。
適用例3:適用例1に記載のシステムであって、前記複数の検索タームの前記第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第1の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第1の群と第2の群とに分けることと、第1のドキュメント集合を作成するために前記第1の群の1つ以上のインデックスドキュメントに対して積集合動作を実行し、第2のドキュメント集合を作成するために前記第2の群の1つ以上のインデックスドキュメントに対して積集合動作を実行することと、前記第1のドキュメント集合及び前記第2のドキュメント集合のうち、最も少ない数のインデックスドキュメントに関連付けられている方の集合を、前記第1の検索タームについての検索結果を構成する集合として選択することと、を含む、システム。
適用例4:適用例1に記載のシステムであって、前記複数の検索タームの前記第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第1の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第1の群と第2の群とに分けることと、前記第1の群から第1のインデックスドキュメント集合を及び前記第2の群から第2のインデックスドキュメント集合を選択することと、前記第1及び第2のインデックスドキュメント集合に対して積集合動作を実効し、前記積集合動作の結果を、前記第1の検索タームについての検索結果を構成する集合として決定することと、を含む、システム。
適用例5:適用例1に記載のシステムであって、1つ以上のインデックスワードに対応するインデックスドキュメントを示す1つ以上の既定のインデックステーブルを照会することによって、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合の少なくとも一部分集合が取り出される、システム。
適用例6:適用例1に記載のシステムであって、前記検索タームは、言い回し、言い習わし、慣用句、短文、及びワード組み合わせのうちの1つ以上を含む、システム。
適用例7:適用例1に記載のシステムであって、前記1つ以上のプロセッサは、更に、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出す前に、前記複数の検索タームからの前記第1の検索タームを前記複数の検索タームからの第2の検索タームとまとめて1つの検索タームにするように構成されている、システム。
適用例8:適用例7に記載のシステムであって、前記第1の検索タームと前記第2の検索タームとをまとめることは、ユーザによって入力された過去の検索クエリの中で前記第1の検索タームと前記第2の検索タームとが併せて使用されている頻度を決定し、前記頻度が既定の閾値を超えているかどうかを決定し、前記既定の閾値を超えている場合は、前記第1の検索タームと前記第2の検索タームとを1つの検索タームにまとめ、前記既定の閾値を超えていない場合は、前記第1の検索タームと前記第2の検索タームとを1つの検索タームにまとめない、こと、を含む、システム。
適用例9:適用例7に記載のシステムであって、前記第1の検索タームと前記第2の検索タームとをまとめることは、前記第2の検索タームと前記第2の検索タームとの間に固有な関係が存在するかどうかを決定するために、既定の固有な検索ターム関係するテーブルをチェックし、前記固有な関係が存在している場合は、前記第1の検索タームと前記第2の検索タームとを1つの検索タームにまとめ、前記固有な関係が存在していない場合は、前記第1の検索タームと前記第2の検索タームとを1つの検索タームにまとめない、ことを含む、システム。
適用例10:適用例1に記載のシステムであって、前記1つ以上のプロセッサは、更に、インデックスドキュメントに含まれる各ワード組み合わせについてのワード組み合わせ重みを計算し、前記インデックスドキュメント内に存在するワード組み合わせに関連付けられている前記計算された重みに基づいて、各インデックスドキュメントについてのドキュメント相関スコアを計算し、前記第1の部分集合の中の前記インデックスドキュメントを、前記対応するドキュメント相関スコアに基づいてランク付けすること、によって前記第1の部分集合の中のインデックスドキュメントをランク付けするように構成されている、システム。
適用例11:適用例1に記載の方法であって、前記1つ以上の検索ワードの少なくとも1つは、検索文字を含む、方法。
適用例12:インデックスドキュメントを見つけるための方法であって、検索クエリを受信することと、前記検索クエリから文字列を抽出し、前記文字列を、1つ以上の検索ワードをそれぞれ含む複数の検索タームに区分することと、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出すことと、前記複数の検索タームの第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、選択動作に少なくとも部分的に基づいて処理することと、前記選択動作は、前記第1の検索タームについて取り出された全てのインデックスドキュメントのうちのいずれの部分集合が処理されるべきかを示し、前記第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合の前記部分集合の処理結果は、前記第1の検索タームについての検索結果を構成することと、結果ドキュメント集合を生成するために、前記複数の検索タームに対応する検索結果に対して積集合動作を実行することと、前記結果ドキュメント集合のうち、前記複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第1の部分集合を決定し、返すことと、を備える方法。
適用例13:適用例12に記載の方法であって、前記複数の検索タームの前記第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第1の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を互いに比較することと、最も少ない数のインデックスドキュメントに関連付けられている前記インデックスドキュメント集合を、前記第1の検索タームについての検索結果を構成する集合として選択することと、を含む、方法。
適用例14:適用例12に記載の方法であって、前記複数の検索タームの前記第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第1の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第1の群と第2の群とに分けることと、第1のドキュメント集合を作成するために前記第1の群の1つ以上のインデックスドキュメントに対して及び第2のドキュメント集合を作成するために前記第2の群の1つ以上のインデックスドキュメントに対して積集合動作を実行することと、前記第1のドキュメント集合及び前記第2のドキュメント集合のうち、最も少ない数のインデックスドキュメントに関連付けられている方の集合を、前記第1の検索タームについての検索結果を構成する集合として選択することと、を含む、方法。
適用例15:適用例12に記載の方法であって、前記複数の検索タームの前記第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、前記選択動作に少なくとも部分的に基づいて処理することは、前記第1の検索タームに属する検索ワードについて取り出されたインデックスドキュメント集合を、第1の群と第2の群とに分けることと、前記第1の群から第1のインデックスドキュメント集合を及び前記第2の群から第2のインデックスドキュメント集合を選択することと、前記第1及び第2のインデックスドキュメント集合に対して積集合動作を実施し、前記積集合動作の結果を、前記第1の検索タームについての検索結果を構成するものとして決定することと、を含む、方法。
適用例16:適用例12に記載の方法であって、更に、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出す前に、前記複数の検索タームからの前記第1の検索タームを前記複数の検索タームからの第2の検索タームとまとめて1つの検索タームにすることを備える方法。
適用例17:適用例16に記載の方法であって、前記第1の検索タームと前記第2の検索タームとをまとめることは、ユーザによって入力された過去の検索クエリの中で前記第1の検索タームと前記第2の検索タームとが併せて使用されている頻度を決定することと、前記頻度が既定の閾値を超えているか否かを決定し、前記既定の閾値を超えている場合は、前記第1の検索タームと前記第2の検索タームとを1つの検索タームにまとめ、前記既定の閾値を超えていない場合は、前記第1の検索タームと前記第2の検索タームとを1つの検索タームにまとめない、ことと、を含む、方法。
適用例18:適用例16に記載の方法であって、前記第1の検索タームと前記第2の検索タームとをまとめることは、前記第2の検索タームと前記第2の検索タームとの間に固有な関係が存在するかどうかを決定するために、既定の固有な検索ターム関係に関するテーブルをチェックし、前記固有な関係が存在している場合は、前記第1の検索タームと前記第2の検索タームとを1つの検索タームにまとめ、前記固有な関係が存在していない場合は、前記第1の検索タームと前記第2の検索タームとを1つの検索タームにまとめない、ことを含む、方法。
適用例19:適用例12に記載の方法であって、更に、インデックスドキュメントに含まれる各ワード組み合わせについてのワード組み合わせ重みを計算することと、前記インデックスドキュメント内に存在するワード組み合わせに関連付けられている前記計算された重みに基づいて、各インデックスドキュメントについてのドキュメント相関スコアを計算することと、前記対応するドキュメント相関スコアに基づいて、前記インデックスドキュメントをランク付けすることと、を備える方法。
適用例20:コンピュータ読み取り可能ストレージ媒体に実装された、インデックスドキュメントを見つけるためのコンピュータプログラム製品であって、検索クエリを受信するためのコンピュータ命令と、前記検索クエリから文字列を抽出し、前記文字列を、1つ以上の検索ワードをそれぞれ含む複数の検索タームに区分するためのコンピュータ命令と、前記複数の検索タームに含まれる検索ワードに対応するインデックスドキュメント集合を取り出すためのコンピュータ命令と、前記複数の検索タームの第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合を、選択動作に少なくとも部分的に基づいて処理するためのコンピュータ命令と、前記選択動作は、前記第1の検索タームについて取り出された全てのインデックスドキュメントのうちのいずれの部分集合が処理されるべきかを示し、前記第1の検索タームに関連付けられている前記取り出されたインデックスドキュメント集合の前記部分集合の処理結果は、前記第1の検索タームについての検索結果を構成し、結果ドキュメント集合を生成するために、前記複数の検索タームに対応する検索結果に対して積集合動作を実行するためのコンピュータ命令と、前記結果ドキュメント集合のうち、前記複数の検索タームの各タームをそれぞれ含むインデックスドキュメントからなる第1の部分集合を決定し、返すためのコンピュータ命令と、
を備えるコンピュータプログラム製品。