(57)【特許請求の範囲】
【請求項１】
ドキュメントを検索するための条件を受け付ける受付部と、
ドキュメントごとに付与されるドキュメント番号であって、前記条件を含むドキュメントに対応するドキュメント番号を昇順に配列したリストである第１リストを、当該条件ごとに取得する取得部と、
少なくとも前記ドキュメントが検索されるための条件として最小限必要となる条件の数である最小条件数を満たす数量のドキュメント番号であって、前記取得部によって取得された条件ごとの前記第１リストの各々の先頭のドキュメント番号を第２リストに抽出し、前記第２リストに属するドキュメント番号のうち最大のドキュメント番号と、前記第２リストに含まれる他のドキュメント番号が一致した場合、当該他のドキュメント番号を当該第２リストに保持し、他のドキュメント番号が最大のドキュメント番号と一致しない場合、当該他のドキュメント番号の属する第１リスト内のいずれかのドキュメント番号と当該他のドキュメント番号とを置き換えることで、当該第２リストにおける所定のドキュメント番号の数量が最小条件数を満たすような所定のドキュメント番号を検索する検索部と、
を備えたことを特徴とする検索装置。
【請求項２】
前記検索部は、
前記第１リストの各々の先頭のドキュメント番号を格納するキューから、前記第２リストに含まれるドキュメント番号の数量が前記最小条件数を少なくとも満たすように、当該キューに格納されているドキュメント番号を昇順に第２リストへと抽出し、当該抽出の後に、当該第２リストに属するドキュメント番号のうち最大のドキュメント番号と一致するドキュメント番号が当該キューに格納されている場合には、当該キューに格納されている当該最大のドキュメント番号を当該第２リストへとさらに抽出する
ことを特徴とする請求項１に記載の検索装置。
【請求項３】
前記検索部は、
前記第２リストに属するドキュメント番号のうち最大のドキュメント番号と前記他のドキュメント番号が一致しない場合には、当該他のドキュメント番号の属する第１リストに含まれるドキュメント番号を整列順に検索し、当該最大のドキュメント番号と一致する番号のドキュメント番号が検索されない場合には、当該他のドキュメント番号の属する第１リストの先頭を、当該他のドキュメント番号の属する第１リスト内のドキュメント番号であって当該最大のドキュメント番号を超える最小のドキュメント番号に置き換えて前記キューへと返し、当該最大のドキュメント番号と一致するドキュメント番号が検索された場合には、当該第１リストに含まれるドキュメント番号であって、当該最大のドキュメント番号と一致するドキュメント番号を当該他のドキュメント番号と置き換えて、当該第２リストに保持する
ことを特徴とする請求項２に記載の検索装置。
【請求項４】
前記検索部は、
置き換えた前記第１リストの先頭のドキュメント番号を前記キューへと返した後に、前記第２リストに含まれるドキュメント番号の数量が前記最小条件数を満たさない場合には、当該第２リストに含まれるドキュメント番号の数量が少なくとも当該最小条件数を満たすように、当該キューに格納されているドキュメント番号を昇順に第２リストへと抽出する
ことを特徴とする請求項３に記載の検索装置。
【請求項５】
前記検索部は、
前記第２リストに属するドキュメント番号のうち最大のドキュメント番号と一致するドキュメント番号の数量が前記最小条件数を満たした場合には、当該最大のドキュメント番号を前記所定のドキュメント番号として抽出する
ことを特徴とする請求項２〜４のいずれか一つに記載の検索装置。
【請求項６】
前記検索部は、
前記受付部によって受け付けられた条件又は条件の組み合わせが、抽出した前記所定のドキュメント番号に対応するドキュメントに設定された条件式に適合するか否かを判定し、当該判定後、当該所定のドキュメント番号の属する各々の第１リストの先頭を、当該所定のドキュメント番号を超える最小のドキュメント番号に置き換えて、キューへと返す
ことを特徴とする請求項５に記載の検索装置。
【請求項７】
前記検索部は、
前記判定後、前記所定のドキュメント番号以外のドキュメント番号が前記第２リストに含まれていた場合には、前記第２リストに含まれる前記所定のドキュメント番号以外のドキュメント番号の属する第１リストの先頭を、前記所定のドキュメント番号を超える最小のドキュメント番号に置き換えて、キューへと返す
ことを特徴とする請求項６に記載の検索装置。
【請求項８】
前記検索部は、
前記第２リストに含まれるドキュメント番号の数量が、当該第２リストに属するドキュメント番号のうち最大のドキュメント番号に設定された最小条件数、又は、前記受付部によって受け付けられた条件に設定された最小条件数を満たすように、前記キューからドキュメント番号を当該第２リストへ新たに抽出できない場合には、前記所定のドキュメント番号を検索する処理を終了する、
ことを特徴とする請求項２〜７のいずれか一つに記載の検索装置。
【請求項９】
前記ドキュメントを検索するための条件を送信した送信元に対して、前記検索部によって検索された前記所定のドキュメント番号に対応するドキュメントを配信する配信部、
をさらに備え、
前記検索部は、
前記所定のドキュメント番号に対応するドキュメントとして、検索されるための条件が設定された広告コンテンツを検索し、
前記配信部は、
前記検索部によって検索された広告コンテンツを前記送信元に対して配信する、
ことを特徴とする請求項１〜８のいずれか一つに記載の検索装置。
【請求項１０】
コンピュータが実行する検索方法であって、
ドキュメントを検索するための条件を受け付ける受付工程と、
ドキュメントごとに付与されるドキュメント番号であって、前記条件を含むドキュメントに対応するドキュメント番号を昇順に配列したリストである第１リストを、当該条件ごとに取得する取得工程と、
少なくとも前記ドキュメントが検索されるための条件として最小限必要となる条件の数である最小条件数を満たす数量のドキュメント番号であって、前記取得工程によって取得された条件ごとの前記第１リストの各々の先頭のドキュメント番号を第２リストに抽出し、前記第２リストに属するドキュメント番号のうち最大のドキュメント番号と、前記第２リストに含まれる他のドキュメント番号が一致した場合、当該他のドキュメント番号を当該第２リストに保持し、他のドキュメント番号が最大のドキュメント番号と一致しない場合、当該他のドキュメント番号の属する第１リスト内のいずれかのドキュメント番号と当該他のドキュメント番号とを置き換えることで、当該第２リストにおける所定のドキュメント番号の数量が最小条件数を満たすような所定のドキュメント番号を検索する検索工程と、
を含んだことを特徴とする検索方法。
【請求項１１】
ドキュメントを検索するための条件を受け付ける受付手順と、
ドキュメントごとに付与されるドキュメント番号であって、前記条件を含むドキュメントに対応するドキュメント番号を昇順に配列したリストである第１リストを、当該条件ごとに取得する取得手順と、
少なくとも前記ドキュメントが検索されるための条件として最小限必要となる条件の数である最小条件数を満たす数量のドキュメント番号であって、前記取得手順によって取得された条件ごとの前記第１リストの各々の先頭のドキュメント番号を第２リストに抽出し、前記第２リストに属するドキュメント番号のうち最大のドキュメント番号と、前記第２リストに含まれる他のドキュメント番号が一致した場合、当該他のドキュメント番号を当該第２リストに保持し、他のドキュメント番号が最大のドキュメント番号と一致しない場合、当該他のドキュメント番号の属する第１リスト内のいずれかのドキュメント番号と当該他のドキュメント番号とを置き換えることで、当該第２リストにおける所定のドキュメント番号の数量が最小条件数を満たすような所定のドキュメント番号を検索する検索手順と、
をコンピュータに実行させることを特徴とする検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索装置、検索方法及び検索プログラムに関する。
【背景技術】
【０００２】
近年、インターネットの飛躍的な普及に伴い、ネットワークを介して取得される情報に基づいた広告配信が盛んに行われている。かかる広告配信においては、宣伝効果を高めるために、ユーザの嗜好、性別、年齢、住所、職業などのユーザ情報を広告主が予め登録しておき、ユーザ情報に対応する広告を選択的に配信するターゲティング配信が行われている。このようなターゲティング配信においては、広告主が所望するユーザ属性に基づいて、広告コンテンツ側に、広告配信の対象ユーザを選別するための論理式が設定される場合がある。
【０００３】
そして、ユーザ情報をクエリとして受け付けた際に、論理式が設定された広告コンテンツ群の中から、クエリに適合する論理式が設定された広告コンテンツを迅速に検索する手法として、転置インデックス等のデータ構造が利用されている。転置インデックスとは、ドキュメントに設定された論理式に含まれるキーワード（単語）から、ドキュメントを抽出するためのデータ構造である。この転置インデックスを利用して、クエリが検索対象のドキュメントにヒットするための必要条件を満たすか否かを判定することで、ドキュメントを迅速に検索する手法が開示されている（例えば、非特許文献１、２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Steven  Euijong  Whang、Hector  GarciaMolina、Chad  Brower、Jayavel  Shanmugasundaram、Sergei  Vassilvitskii、Erik  Vee、Ramana  Yerneni、“Indexing  Boolean  Expressions”［online］、［２０１６年２月１６日検索］、インターネット（http://theory.stanford.edu/~sergei/papers/vldb09-indexing.pdf）
【非特許文献２】Marcus  Fontoura、Suhas  Sadanandan、Jayavel  Shanmugasundaram、Sergei  Vassilvitski、Erik  Vee、Srihari  Venkatesan、Jason  Zien、“Efficiently  Evaluating  Complex  Boolean  Expressions”［online］、［２０１６年２月１６日検索］、インターネット（http://theory.stanford.edu/~sergei/papers/sigmod10-index.pdf）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術では、転置インデックスを利用してドキュメントを検索する場合の検索効率を向上させることが困難であった。具体的には、上記従来の技術では、転置インデックス中のドキュメントを検索する場合に、ヒットするための必要条件を満たさないドキュメントの検索を無駄に続ける場合があり、検索効率が悪いという問題があった。
【０００６】
本願は、上記に鑑みてなされたものであって、転置インデックスを利用してドキュメントを検索する場合の検索効率を向上させることができる検索装置、検索方法及び検索プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る検索装置は、ドキュメントを検索するための条件を受け付ける受付部と、ドキュメントごとに付与されるドキュメント番号であって、前記条件を含むドキュメントに対応するドキュメント番号を昇順に配列したリストである第１リストを、当該条件ごとに取得する取得部と、少なくとも前記ドキュメントが検索されるための条件として最小限必要となる条件の数である最小条件数を満たす数量のドキュメント番号であって、前記取得部によって取得された条件ごとの前記第１リストの各々の先頭のドキュメント番号を第２リストに抽出し、前記第２リストに属するドキュメント番号のうち最大のドキュメント番号と、前記第２リストに含まれる他のドキュメント番号が一致した場合、当該他のドキュメント番号を当該第２リストに保持し、他のドキュメント番号が最大のドキュメント番号と一致しない場合、当該他のドキュメント番号の属する第１リスト内のいずれかのドキュメント番号と当該他のドキュメント番号とを置き換えることで、当該第２リストにおける所定のドキュメント番号の数量が最小条件数を満たすような所定のドキュメント番号を検索する検索部と、を備えることを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、転置インデックスを利用してドキュメントを検索する場合の検索効率を向上させることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る最小条件数の一例を説明するための図である。
【図２】図２は、実施形態に係る転置インデックスおよびポスティングリストの一例を説明するための図である。
【図３】図３は、従来技術の一例を説明するための図である。
【図４】図４は、実施形態に係る検索処理の一例を説明するための図である。
【図５】図５は、実施形態に係る検索処理システムの構成例を示す図である。
【図６】図６は、実施形態に係る広告装置の構成例を示す図である。
【図７】図７は、実施形態に係る広告情報記憶部の一例を示す図である。
【図８】図８は、実施形態に係るユーザ情報記憶部の一例を示す図である。
【図９】図９は、実施形態に係る広告装置による検索処理手順を示すフローチャートである。
【図１０】図１０は、配信候補の広告コンテンツを検索する処理の処理手順を示すフローチャートである。
【図１１】図１１は、優先度付キューを初期化する処理の処理手順を示すフローチャートである。
【図１２】図１２は、ヒット候補のドキュメント番号を選択する処理の処理手順を示すフローチャートである。
【図１３】図１３は、広告装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る検索装置、検索方法及び検索プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る検索装置、検索方法及び検索プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１１】
〔１．検索処理の一例〕
本願に係る検索装置に対応する広告装置１００（図５参照）は、ユーザ端末１０（図５参照）から送信されるクエリに基づいて、論理式が設定されたドキュメント群の中から、クエリと適合する論理式が設定されたドキュメントを検索するサーバ装置である。なお、クエリは、ドキュメントの検索に用いられる問い合わせ情報である。図１の例の場合、ドキュメントは、広告コンテンツである。また、広告コンテンツに設定される論理式は、広告主によって、配信対象のユーザを選別するために設定される。また、実施形態において、クエリは、クエリの送信元であるユーザ端末１０を操作するユーザに関する情報や、広告コンテンツが表示される広告面（例えば、ウェブページ）に関する情報等を含む。
【００１２】
まず、図１を用いて、実施形態に係る最小条件数について説明する。図１は、実施形態に係る最小条件数の一例を説明するための図である。最小条件数とは、クエリがドキュメントに適合するための条件として最小限必要となる条件の数である。図１に示した例では、最小条件数は、クエリがドキュメントに設定された論理式にヒットするために、クエリに最低限含まれていなければならない属性情報の数である。また、ユーザ端末１０から送信されるクエリには、ユーザ端末１０を操作するユーザの属性（例えば、性別や、年齢層など）が含まれる。なお、以下では、「クエリがドキュメントに設定された論理式にヒットする」を、単に「クエリがドキュメントにヒットする」と表記する場合がある。
【００１３】
図１に示すように、検索対象となる広告コンテンツ５０、５１および５２には、配信対象のユーザを選別するための論理式が設定されている。広告コンテンツ５０、５１および５２に設定された論理式は、ユーザの属性情報と論理演算子の組み合わせによって構成される。具体的には、広告コンテンツ５０、広告コンテンツ５１および広告コンテンツ５２には、「男性∧（２０代∨３０代）」、「女性∨２０代」、「女性∧１０代」という論理式がそれぞれ設定されている。ここでは、「∧」と「∨」は、それぞれ「ＡＮＤ」、「ＯＲ」の論理演算子である。
【００１４】
例えば、広告コンテンツ５０に設定された論理式は、クエリが広告コンテンツ５０にヒットするためには、「性別（男性）」および「年齢層（２０代∨３０代）」という、少なくとも二つの属性情報が必要であることを示している。すなわち、広告コンテンツ５０に設定された最小条件数は、「２」である。また、広告コンテンツ５１に設定された論理式は、クエリが広告コンテンツ５１にヒットするためには、「性別（女性）」もしくは「年齢層（２０代）」という、少なくとも一つの属性情報が必要であることを示している。すなわち、広告コンテンツ５１に設定された最小条件数は、「１」である。また、広告コンテンツ５２に設定された論理式は、クエリが広告コンテンツ５２にヒットするためには、「性別（女性）」および「年齢層（１０代）」という、少なくとも二つの属性情報が必要であることを示している。すなわち、広告コンテンツ５２に設定された最小条件数は、「２」である。
【００１５】
図１に示した例では、ユーザＵ０１は、「２０代」および「男性」という二つの属性情報を含むクエリを、広告コンテンツを検索する装置側へ送信するものとする。上記のように、広告コンテンツ５０、広告コンテンツ５１および広告コンテンツ５２に設定された最小条件数は、それぞれ「２」、「１」、「２」である。ユーザＵ０１が送信したクエリに含まれる属性情報の数は「２」であるため、ユーザＵ０１が送信したクエリは、広告コンテンツ５０、広告コンテンツ５１および広告コンテンツ５２に設定された最小条件数の条件を満たす。ゆえに、ユーザＵ０１が送信したクエリは、広告コンテンツ５０、広告コンテンツ５１、および広告コンテンツ５２の全てにヒットする可能性がある。
【００１６】
ここで、広告装置１００は、ヒットする可能性のある広告コンテンツ５０、５１および５２について、論理式の正確な評価を行う。広告コンテンツ５０に設定された論理式は、「男性∧（２０代∨３０代）」である。ユーザＵ０１から送信されたクエリのうち、「男性」は、広告コンテンツ５０に設定された論理式の「男性」を満たす。また、ユーザＵ０１からの送信されたクエリのうち、「２０代」は、広告コンテンツ５０に設定された論理式の「（２０代∨３０代）」を満たす。したがって、ユーザＵ０１から送信されたクエリは、広告コンテンツ５０にヒットする。
【００１７】
また、広告コンテンツ５１に設定された論理式は、「女性∨２０代」である。ユーザＵ０１から送信されたクエリのうち、「２０代」は、広告コンテンツ５１に設定された論理式の「女性∨２０代」を満たす。したがって、ユーザＵ０１から送信されたクエリは、広告コンテンツ５１にヒットする。
【００１８】
一方、広告コンテンツ５２に設定された論理式は、「女性∧１０代」である。ユーザＵ０１から送信されたクエリのうち、「２０代」は、広告コンテンツ５１に設定された論理式「１０代」を満たさない。また、ユーザＵ０１から送信されたクエリのうち、「男性」は、広告コンテンツ５１に設定された論理式「女性」を満たさない。したがって、ユーザＵ０１から送信されたクエリは、広告コンテンツ５２にヒットしない。
【００１９】
続いて、ユーザＵ０２の例について説明する。図１に示した例では、ユーザＵ０２は、「女性」という一つの属性情報を含むクエリを、広告コンテンツを検索する装置側へ送信するものとする。上記のように、広告コンテンツ５０、広告コンテンツ５１および広告コンテンツ５２に設定された最小条件数は、それぞれ「２」、「１」、「２」である。ユーザＵ０２が送信したクエリに含まれる属性情報の数は「１」であるため、ユーザＵ０１が送信したクエリは、広告コンテンツ５１に設定された最小条件数の条件を満たす。ゆえに、ユーザＵ０２が送信したクエリは、広告コンテンツ５１にヒットする可能性がある。
【００２０】
一方、ユーザＵ０２が送信したクエリに含まれる属性情報の数は「１」であるため、ユーザＵ０２が送信したクエリは、広告コンテンツ５０および広告コンテンツ５２に設定された最小条件数の条件を満たさない。ゆえに、ユーザＵ０２が送信したクエリは、広告コンテンツ５０および広告コンテンツ５２にヒットする可能性がない。
【００２１】
ここで、ヒットする可能性のある広告コンテンツ５１について、論理式の正確な評価を行う。広告コンテンツ５１に設定された論理式は、「女性∨２０代」である。ユーザＵ０２から送信されたクエリのうち、「女性」は、広告コンテンツ５１に設定された論理式の「女性」を満たす。したがって、ユーザＵ０２から送信されたクエリは、広告コンテンツ５１にヒットする。
【００２２】
このように、論理式を用いる検索手法においては、最小条件数に基づいて、論理式の正確な評価を行うことなく、クエリにヒットする可能性がない広告コンテンツを検出することができる。
【００２３】
次に、図２を用いて、実施形態に係る転置インデックスおよびポスティングリストについて説明する。図２は、実施形態に係る転置インデックスおよびポスティングリストの一例を示す図である。
【００２４】
実施形態に係る広告装置１００は、ドキュメントを識別する識別番号として、ドキュメント番号を使用する。このドキュメント番号は、ドキュメント番号の増加にともない最小条件数が増加するように、ドキュメントに予め付与される番号である。
【００２５】
図２に示すように、リスト６０では、ドキュメント番号に対応するドキュメントに、論理式がそれぞれ設定されている。具体的には、ドキュメント番号９１、ドキュメント番号９２およびドキュメント番号９３に対応するドキュメントに、「３０代∨男性」、「３０代∧女性」、「（２０代∧男性）∨（３０代∧女性）」という論理式がそれぞれ設定されている。なお、以下では、「ドキュメント番号に対応するドキュメントに設定された最小条件数」を、単に、「ドキュメント番号に設定された最小条件数」と表記する場合がある。
【００２６】
転置インデックスは、ドキュメントに含まれるキーワード（単語）とドキュメントの対応付けを行うデータ構造である。図２に示した例では、転置インデックスは、ドキュメントに設定された論理式に含まれる属性情報から、ドキュメントを探し出すためのデータ構造である。図２に示した例において、リスト６０の転置インデックスは、転置インデックス７０である。図２に示すように、転置インデックス７０には、リスト６０の論理式に含まれる属性情報ごとに、ドキュメント番号が格納されている。
【００２７】
転置インデックスは、ドキュメントに設定された論理式に含まれる属性情報が、どのドキュメントに設定された論理式に含まれるかを示したポスティングリストの集合からなる。図２に示した例において、ポスティングリストは、転置インデックス７０の一つの属性情報に対応するドキュメント番号のリストである。例えば、図２の例では、「３０代」のポスティングリストは、「９１」、「９２」、「９３」である。なお、ポスティングリストの要素には、ドキュメント番号が昇順に並ぶものとする。
【００２８】
〔１−１．従来技術における検索処理〕
次に、図３を用いて、論理式が設定されたドキュメントを検索する従来技術について説明する。図３は、従来技術の一例を説明するための図である。従来技術に係る検索手法（以下、「従来手法」と表記する）は、まず、クエリを受け付けた際に、検索対象となるドキュメントが含まれる所定の転置インデックスから、クエリに含まれるキーワードに対応するポスティングリストを参照する（ステップＳ１０１）。そして、従来手法は、図１に示した例のように、ドキュメント番号の最小条件数に基づいて、クエリにヒットする可能性があるドキュメントに対応するドキュメント番号を抽出する。
【００２９】
ここでは説明の便宜上、検索対象となるドキュメントに設定された最小条件数は全て「３」とし、受け付けたクエリに含まれるキーワードを、ｔｅｒｍ１〜ｔｅｒｍ７と表記する。また、検索対象となるドキュメントが含まれる所定の転置インデックスには、ｔｅｒｍ１〜ｔｅｒｍ７のポスティングリストが含まれるものとする。ｔｅｒｍ１〜ｔｅｒｍ７のポスティングリストは、図３に示すように、各キーワードに対応するドキュメント番号をそれぞれ有する。なお、図２に示した例のように、各ポスティングリストの要素には、ドキュメント番号が昇順に並ぶものとする。
【００３０】
各ポスティングリストに格納されたドキュメント番号の数量が、かかるドキュメント番号に設定された最小条件数の条件を満たした場合、かかるドキュメント番号に対応するドキュメントは、クエリにヒットする可能性がある。例えば、図３に示すように、ドキュメント番号５は、ｔｅｒｍ２、ｔｅｒｍ３およびｔｅｒｍ７のポスティングリストにそれぞれ格納されている（ステップＳ１０４）。すなわち、ドキュメント番号５に設定された論理式には、ｔｅｒｍ２、ｔｅｒｍ３およびｔｅｒｍ７のキーワードが含まれることを示している。ここで、ドキュメント番号５に設定された最小条件数は３であるため、ｔｅｒｍ２、ｔｅｒｍ３およびｔｅｒｍ７の三つのキーワードが含まれるクエリは、ドキュメント番号５に対応するドキュメントにヒットする可能性がある。なお、以下では、「クエリがドキュメント番号に対応するドキュメントにヒットする」ことを、単に、「クエリがドキュメント番号にヒットする」と表記する場合がある。
【００３１】
続いて、従来手法は、ポスティングリスト先頭のドキュメント番号が、ポスティングリストの集合の先頭から見て昇順になるように、ポスティングリストをソートする（ステップＳ１０２）。具体的には、従来手法は、図３に示すように、ポスティングリスト先頭のドキュメント番号が最も小さいｔｅｒｍ７のポスティングリストが一番上になるように、ｔｅｒｍ１〜ｔｅｒｍ７のポスティングリストをソート（整列）する。
【００３２】
図３の例では、ドキュメント番号１は、ｔｅｒｍ７のポスティングリスト先頭の要素にしか含まれない。このため、ドキュメント番号１の数量は、ドキュメント番号「１」に設定された最小条件数（ここでは、３）の数を満たさない。すなわち、ドキュメント番号１がクエリにヒットする可能性はない。
【００３３】
また、図３に示すように、ドキュメント番号２は、ｔｅｒｍ３のポスティングリスト先頭の要素に含まれる。ここで、ｔｅｒｍ７のポスティングリスト先頭の要素は、ドキュメント番号１である。このため、ｔｅｒｍ７のポスティングリストには、先頭の要素以降に、ドキュメント番号２が含まれている可能性がある。しかし、ｔｅｒｍ７のポスティングリストにおいて、先頭の要素以降に、ドキュメント番号２が含まれていた場合でも、ドキュメント番号２は２個しか揃わない。このため、ドキュメント番号２の数量は、ドキュメント番号２に設定された最小条件数の数を満たさない。すなわち、ドキュメント番号２がクエリにヒットする可能性はない。
【００３４】
また、図３に示すように、ドキュメント番号４は、ｔｅｒｍ１のポスティングリスト先頭の要素に含まれる。ここで、ｔｅｒｍ７およびｔｅｒｍ３のポスティングリスト先頭の要素は、それぞれドキュメント番号１、ドキュメント番号２である。このため、ｔｅｒｍ７およびｔｅｒｍ３のポスティングリストには、先頭の要素以降に、ドキュメント番号４が含まれている可能性がある。ｔｅｒｍ７およびｔｅｒｍ３のポスティングリストにおいて、ポスティングリスト先頭の要素以降に、ドキュメント番号４が含まれていた場合、ドキュメント番号４の数量は、ドキュメント番号４に設定された最小条件数の数を満たす。すなわち、ドキュメント番号４は、ヒット候補のドキュメント番号である。
【００３５】
続いて、従来手法は、先頭の要素以降にヒット候補のドキュメント番号が含まれている可能性があるポスティングリストにおいて、ポスティングリスト先頭の要素がヒット候補のドキュメント番号以上になるまで、参照するドキュメント番号を進める（ステップＳ１０３）。具体的には、従来手法は、ｔｅｒｍ７およびｔｅｒｍ３のポスティングリストにおいて、ポスティングリスト先頭の要素が、４以上のドキュメント番号になるまで、参照するドキュメント番号を進める。また、参照するドキュメント番号を進める処理の後に、ポスティングリスト先頭のドキュメント番号が、ポスティングリストの集合の先頭から見て昇順になるように、ポスティングリストをソートする。
【００３６】
参照するドキュメント番号を進めた結果、ドキュメント番号４は、ｔｅｒｍ１のポスティングリスト先頭の要素にしか含まれない。このため、ドキュメント番号４の数量は、ドキュメント番号４に設定された最小条件数の数を満たさない。すなわち、ドキュメント番号４がクエリにヒットする可能性はない。
【００３７】
続いて、従来手法は、外れたヒット候補のドキュメント番号が格納されているポスティングリストにおいて、外れたヒット候補の次のドキュメント番号まで、参照するドキュメント番号を進める（ステップＳ１０４）。具体的には、従来手法は、ｔｅｒｍ１のポスティングリストにおいて、ポスティングリスト先頭の要素が、４の次の番号になるように、参照するドキュメント番号を進める。また、参照するドキュメント番号を進める処理の後に、ポスティングリスト先頭のドキュメント番号が、ポスティングリストの集合の先頭から見て降順になるように、ポスティングリストをソートする。
【００３８】
参照するドキュメント番号を進めた結果、ドキュメント番号５は、ｔｅｒｍ２、ｔｅｒｍ３およびｔｅｒｍ７のポスティングリスト先頭の要素の中に含まれる。このため、ドキュメント番号５の数量は、ドキュメント番号５に設定された最小条件数の数を満たす。すなわち、ドキュメント番号５は、クエリにヒットする可能性がある。そして、従来手法は、ヒット候補のドキュメント番号の数量が、ヒット候補のドキュメント番号に設定された最小条件数の数を満たした場合、ヒット候補のドキュメント番号に対応するドキュメントに設定された論理式の正確な評価を行い、実際にクエリがドキュメントにヒットするかを判定する。
【００３９】
ところで、従来手法は、例えば、ステップＳ１０３のように、ヒット候補のドキュメント番号が含まれている可能性がある全てのポスティングリストについて、ポスティングリスト先頭の要素がヒット候補のドキュメント番号以上になるまで、参照するドキュメント番号を進める。具体的には、ステップＳ１０３において、ヒット候補のドキュメント番号は、４である。また、参照するドキュメント番号を進めるポスティングリストは、ｔｅｒｍ７およびｔｅｒｍ３である。
【００４０】
ここで、例えば、ｔｅｒｍ７からｔｅｒｍ３の順に、ポスティングリストにおいて参照するドキュメント番号を進める処理が、順次行われた場合、ｔｅｒｍ７のポスティングリストにおいてドキュメント番号４が含まれていないことが判明した時点で、ドキュメント番号４の数量は、ドキュメント番号４に設定された最小条件数の数を満たさないことが確定する。
【００４１】
すなわち、ドキュメント番号４がヒットしないことが確定した後に、ｔｅｒｍ３のポスティングリストにおいて、ポスティングリスト先頭の要素が、４以上の番号になるまで、参照するドキュメント番号を進めることは、無駄な処理になる。このように、従来手法は、ヒット候補のドキュメント番号の数量が、かかるヒット候補のドキュメント番号に設定された最小条件数の数を満たさないことが確定した後に、無駄に参照するドキュメント番号を進める処理を実行する場合があり、検索効率が悪いという問題があった。
【００４２】
〔１−２．本願に係る検索装置による検索処理〕
次に、図４を用いて本願に係る検索装置に対応する広告装置１００が実行する検索処理の一例について説明する。図４は、実施形態に係る検索処理の一例を説明するための図である。実施形態に係る広告装置１００は、まず、クエリを受け付けた際に、検索対象となるドキュメントが含まれる転置インデックスから、クエリに含まれるキーワードに対応するポスティングリストを参照する。また、検索対象となるドキュメントが含まれる転置インデックスは、例えば、広告情報記憶部１２１（図６参照）に格納されている。そして、広告装置１００は、図１に示した例のように、ドキュメント番号に設定された最小条件数に基づいて、クエリにヒットする可能性があるドキュメントに対応するドキュメント番号を抽出する。
【００４３】
ここでは、従来技術と比較した広告装置１００の処理を説明するために、図３と同様にして、検索対象となるドキュメントに設定された最小条件数は全て「３」とし、受け付けたクエリに含まれるキーワードを、ｔｅｒｍ１〜ｔｅｒｍ７と表記する。また、検索対象となるドキュメントが含まれる転置インデックスには、ｔｅｒｍ１〜ｔｅｒｍ７のポスティングリストが含まれるものとする。ｔｅｒｍ１〜ｔｅｒｍ７のポスティングリストは、図４に示すように、各キーワードに対応したドキュメント番号をそれぞれ有する。なお、図２に示した例のように、各ポスティングリストの要素には、ドキュメント番号が昇順に並ぶものとする。
【００４４】
なお、以下の説明では、ドキュメント番号に設定された最小条件数がドキュメント番号ごとに異なる場合においても適用可能な、広告装置１００による検索処理を説明する。図４に示す例では、説明の便宜上、ドキュメント番号に設定された最小条件数の数は、ドキュメント番号によらず、全て「３」である。このため、以下の説明において、最小条件数の数は、ドキュメント番号によらず一定である。ところで、一般的には、ドキュメント番号に設定された最小条件数は、ドキュメント番号ごとに異なっていてもよい。以下で説明する広告装置１００による検索処理は、ドキュメント番号ごとに設定された最小条件数が異なる場合においても適用可能な検索処理である。
【００４５】
図４に示すように、広告装置１００は、従来技術のように、ポスティングリストの集合をソートする処理を行う代わりに、連結リストおよび優先度付キューの二つのデータ構造を利用する。連結リストは、図４に示すように、リストの上部に「ｈｅａｄ」と記載されているデータ構造である。また、優先度付キューは、リストの上部に「ｔｏｐ」と記載されているデータ構造である。ここで、連結リストおよび優先度付キューの要素としては、各ポスティングリストに対応するドキュメント番号を格納する。
【００４６】
広告装置１００は、連結リスト先頭の要素から見てドキュメント番号が降順になるように、ドキュメント番号を連結リストの要素に格納する。また、広告装置１００は、ドキュメント番号を、優先度付キューに一時的に格納する。広告装置１００は、ドキュメント番号が小さいドキュメントから優先して、優先度付キューの要素から、ドキュメント番号を連結リストの要素に移動させるものとする。図４に示す例では、説明の便宜上、優先度付キューの要素がドキュメント番号の配列から構成されている場合を示したが、優先度付キューの要素の具体的な構造は、図４の例には限定されない。なお、広告装置１００は、連結リストおよび優先度付キューにドキュメント番号を格納する場合には、格納されたドキュメント番号がどのポスティングリストに対応するか参照できるものとする。
【００４７】
続いて、広告装置１００は、図４に示すｔｅｒｍ１〜ｔｅｒｍ７のポスティングリストにおいて、全てのポスティングリスト先頭のドキュメント番号を参照し、参照したポスティングリスト先頭のドキュメント番号を全て優先度付キューに格納する（ステップＳ２０１）。
【００４８】
続いて、広告装置１００は、連結リストの要素数が、連結リスト先頭の要素に格納されるドキュメント番号の最小条件数の数になるまで、優先度付キューの要素から、ドキュメント番号を連結リストの要素に移動させる（ステップＳ２０２）。ここで、クエリにヒットする候補のドキュメント番号は、連結リスト先頭のドキュメント番号である。具体的には、連結リスト先頭の「４」が、ヒット候補のドキュメント番号である。
【００４９】
続いて、広告装置１００は、連結リスト先頭の要素から連結リスト末尾の要素に向かって、連結リストの要素に格納されているドキュメント番号を、順次参照する（ステップＳ２０３）。そして、広告装置１００は、参照したドキュメント番号が含まれるポスティングリストにおいて、参照するドキュメント番号がヒット候補のドキュメント番号以上になるまで、参照するドキュメント番号を進める。具体的には、広告装置１００は、まず、ｔｅｒｍ３のポスティングリストに含まれるドキュメント番号「２」を参照する。そして、広告装置１００は、ｔｅｒｍ３のポスティングリストにおいて、参照するドキュメント番号を「２」から「５」に進める。
【００５０】
ポスティングリストにおいて、参照するドキュメント番号がヒット候補のドキュメント番号を超えた場合、広告装置１００は、ヒット候補のドキュメント番号を超えたドキュメント番号を、優先度付キューに格納する。具体的には、広告装置１００は、ドキュメント番号５を、連結リストから優先度付キューに格納する。
【００５１】
連結リストの要素数がヒット候補のドキュメント番号に設定された最小条件数を下回ることは、連結リストに含まれるヒット候補のドキュメント番号の数量が、ヒット候補のドキュメント番号に設定された最小条件数の数を満たさないことを示している。すなわち、ドキュメント番号４は、クエリにヒットする可能がない。
【００５２】
広告装置１００は、ヒット候補のドキュメント番号の数量が、ヒット候補のドキュメント番号に設定された最小条件数の数を満たさないことが判明した時点で、参照するドキュメント番号がかかるヒット候補のドキュメント番号以上になるまで、参照するドキュメント番号を進める処理をスキップする。具体的には、広告装置１００は、ｔｅｒｍ７のポスティングリストにおいて、参照するドキュメント番号を１から５に進める処理をスキップする。
【００５３】
続いて、広告装置１００は、次のヒット候補のドキュメント番号を、優先度付キューから連結リストに格納する（ステップＳ２０４）。広告装置１００は、連結リストの要素数がヒット候補のドキュメント番号に設定された最小条件数を下回った場合、ステップＳ２０２と同様にして、連結リストの要素数が、連結リスト先頭の要素に格納されるドキュメント番号の最小条件数の数になるまで、ドキュメント番号を、優先度付キューから連結リストに格納する。具体的には、広告装置１００は、ｔｅｒｍ２のポスティングリストに含まれるドキュメント番号５を、優先度付キューから連結リストに格納する。ここで、連結リストの先頭はドキュメント番号５であるため、ヒット候補のドキュメント番号は「５」である。
【００５４】
広告装置１００が次に優先度付キューから連結リストに格納するドキュメント番号が、連結リスト先頭のドキュメント番号と同じ場合、広告装置１００は、かかるドキュメント番号を、連結リスト先頭の要素に追加する。具体的には、広告装置１００は、ｔｅｒｍ２のポスティングリストに含まれるドキュメント番号５を、優先度付キューから連結リストに格納した後に、ｔｅｒｍ３のポスティングリストに含まれるドキュメント番号５を、優先度付キューから連結リストの要素に追加する。なお、以下では、「広告装置１００が次に優先度付キューから連結リストに格納するドキュメント番号」を、「優先度付キュー先頭のドキュメント番号」と表記する場合がある。
【００５５】
続いて、広告装置１００は、ステップＳ２０３と同様にして、連結リスト先頭の要素から連結リスト末尾の要素に向かって、連結リストの要素に格納されているドキュメント番号を、順次参照する（ステップＳ２０５）。具体的には、広告装置１００は、まず、ｔｅｒｍ１のポスティングリストに含まれるドキュメント番号４を参照する。そして、広告装置１００は、ｔｅｒｍ１のポスティングリストにおいて、参照するドキュメント番号を「４」から「６」に進める。ここで、ｔｅｒｍ１のポスティングリストにおいて、参照するドキュメント番号がヒット候補のドキュメント番号を超えたため、広告装置１００は、ドキュメント番号６を、連結リストから優先度付キューに格納する。続いて、広告装置１００は、ｔｅｒｍ７のポスティングリストに含まれるドキュメント番号１を参照する。そして、広告装置１００は、ｔｅｒｍ７のポスティングリストにおいて、参照するドキュメント番号を「１」から「５」に進める。
【００５６】
連結リストの要素に、ヒット候補のドキュメント番号の数量が、ヒット候補のドキュメント番号に設定された最小条件数の数を満たした場合、広告装置１００は、ヒット候補のドキュメント番号に対応するドキュメントに設定された論理式の正確な評価を行い、実際にクエリがドキュメントにヒットするかを判定する（ステップＳ２０６）。具体的には、広告装置１００は、最小条件数の条件を満たすドキュメント番号５に対応するドキュメントに設定された論理式の正確な評価を行う。
【００５７】
広告装置１００は、クエリがドキュメントにヒットするか否かの判定を行った後に、連結リストに格納されたドキュメント番号が含まれるポスティングリストにおいて、参照するドキュメント番号を、判定したドキュメント番号の次のドキュメント番号に進める。具体的には、広告装置１００は、ｔｅｒｍ３、ｔｅｒｍ２およびｔｅｒｍ７のポスティングリストにおいて、参照するドキュメント番号を、それぞれ「５」から「６」、「５」から「１６」、「５」から「１１」に進める。そして、広告装置１００は、参照するドキュメント番号を、全て優先度付キューに格納する。具体的には、広告装置１００は、ドキュメント番号６、ドキュメント番号１６およびドキュメント番号１１を、連結リストから優先度付キューに格納する。
【００５８】
このように、実施形態に係る広告装置１００は、連結リストおよび優先度付キューの二つのデータ構造に基づいてドキュメントを検索する。そして、ヒット候補のドキュメント番号が最小条件数の条件を満たさないことが判明した時点で、広告装置１００は、次のヒット候補の検索処理に移行する。このため、図３で説明した従来技術のように、無駄に参照するドキュメント番号を進める処理がなくなり、検索効率を向上させることができる。
【００５９】
〔２．検索処理システムの構成〕
次に、図５を用いて、実施形態に係る検索装置に対応する広告装置１００が含まれる検索処理システム１の構成について説明する。図５は、実施形態に係る検索処理システム１の構成例を示す図である。図５に例示するように、実施形態に係る検索処理システム１には、ユーザ端末１０と、広告主端末２０と、ウェブサーバ３０と、広告装置１００とが含まれる。これらの各種装置は、ネットワークＮ（例えば、インターネット等の通信ネットワーク）を介して、有線又は無線により通信可能に接続される。なお、検索処理システム１を構成する各種装置の数は、図５に例示したものに限られない。例えば、図５に示した検索処理システム１には、複数台のユーザ端末１０や、複数台の広告主端末２０や、複数台のウェブサーバ３０が含まれてもよい。
【００６０】
ユーザ端末１０は、例えば、デスクトップ型ＰＣ（Personal  Computer）や、ノート型ＰＣや、タブレット型端末や、携帯電話機、ＰＤＡ（Personal  Digital  Assistant）等の情報処理装置である。例えば、ユーザ端末１０は、ウェブサーバ３０にアクセスすることで、ウェブサーバ３０から提供されるウェブページを取得し、取得したウェブページを表示装置（例えば、液晶ディスプレイ）に表示する。そして、ユーザ端末１０は、ウェブページ内の広告枠に表示される広告コンテンツ（例えば、広告装置１００によって検索されたドキュメントに対応する広告コンテンツ）を配信させるため、広告コンテンツの配信要求であるクエリを広告装置１００に送信する。
【００６１】
広告主端末２０は、広告装置１００に広告配信を依頼する広告主によって利用される情報処理装置である。広告主端末２０は、広告主による操作に従って、広告装置１００に広告コンテンツを入稿する。また、広告主端末２０は、適切な配信対象に広告コンテンツを配信させるために、広告コンテンツに対して論理式を用いた条件式を設定する。
【００６２】
なお、広告主は、広告主端末２０を用いて、広告装置１００に広告コンテンツを入稿したりせずに、かかる入稿等を代理店に依頼する場合もある。この場合、広告装置１００に広告コンテンツを入稿等するのは代理店となる。以下では、「広告主」といった表記は、広告主だけでなく代理店を含む概念であり、「広告主端末」といった表記は、広告主端末だけでなく代理店によって利用される代理店装置を含む概念であるものとする。
【００６３】
ウェブサーバ３０は、ユーザ端末１０からアクセスされた場合に、広告装置１００によって抽出された広告コンテンツが表示される広告面である各種ウェブページを提供するサーバ装置である。ウェブサーバ３０は、例えば、ニュースサイト、天気予報サイト、ショッピングサイト、ファイナンス（株価）サイト、路線検索サイト、地図提供サイト、旅行サイト、飲食店紹介サイト、ウェブログなどに関する各種ウェブページを提供する。
【００６４】
なお、上述のように、ウェブサーバ３０によって配信されるウェブページには、広告コンテンツを表示するための広告枠が含まれる。そして、広告枠を含むウェブページには、広告枠に表示する広告コンテンツを取得するための広告取得命令が含まれる。例えば、ウェブページを形成するＨＴＭＬ（HyperText  Markup  Language）ファイル等には、広告装置１００のＵＲＬ等が広告取得命令として記述される。この場合、ユーザ端末１０は、ＨＴＭＬファイル等に記述されているＵＲＬにアクセスすることで、広告装置１００から広告コンテンツの配信を受ける。
【００６５】
広告装置１００は、上述のように、広告配信の要求を行うユーザから送信されるクエリに基づいて、広告コンテンツを検索および抽出し、抽出された広告コンテンツをウェブサーバ３０によって提供されるウェブサイトに配信するサーバ装置である。
【００６６】
なお、広告装置１００は、広告コンテンツの配信にあたって、ユーザ端末１０を識別し、広告コンテンツを配信するユーザ端末１０を特定する。具体的には、ユーザの識別は、ユーザ端末１０のウェブブラウザと広告装置１００との間でやり取りされるクッキーにユーザ識別情報を含めることによって行うことができる。ただし、ユーザを識別する手法は上記に限られない。例えば、ユーザ端末１０に専用のプログラムを設定し、かかる専用プログラムからユーザ識別情報を広告装置１００に送信させてもよい。
【００６７】
〔３．広告装置の構成〕
次に、図６を用いて、実施形態に係る広告装置１００の構成について説明する。図６は、実施形態に係る広告装置１００の構成例を示す図である。図６に示すように、広告装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、広告装置１００は、広告装置１００を利用する管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００６８】
（通信部１１０について）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。かかる通信部１１０は、ネットワークＮと有線又は無線で接続され、ネットワークＮを介して、ユーザ端末１０や、広告主端末２０や、ウェブサーバ３０との間で情報の送受信を行う。
【００６９】
（記憶部１２０について）
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図６に示すように、記憶部１２０は、広告情報記憶部１２１と、ユーザ情報記憶部１２２とを有する。
【００７０】
（広告情報記憶部１２１について）
広告情報記憶部１２１は、広告主端末２０から入稿された広告コンテンツに関する情報である広告コンテンツ情報１２１Ａを記憶する。また、広告情報記憶部１２１は、広告コンテンツ情報１２１Ａに対応する転置インデックスである転置インデックス１２１Ｂを記憶する。
【００７１】
ここで、図７に、実施形態に係る広告情報記憶部１２１の一例を示す。図７は、実施形態に係る広告情報記憶部１２１の一例を示す図である。図７に示した例では、広告コンテンツ情報１２１Ａは、「ドキュメント番号」、「最小条件数」、「論理式」といった項目を有する。また、転置インデックス１２１Ｂは、論理式に含まれる「属性情報」（例えば、年齢層、性別、趣味など）ごとに、属性情報を含むドキュメントに対応するドキュメント番号を昇順に配列したデータ構造である。
【００７２】
なお、実際にユーザ端末１０に配信される広告コンテンツのデータは、広告装置１００とは別に備えられた所定の広告配信サーバに記憶されてもよい。この場合、広告装置１００は、広告情報記憶部１２１に記憶されたドキュメント番号に基づいて、外部の広告配信サーバに記憶された広告コンテンツを特定する。そして、広告装置１００は、広告配信サーバに対して、特定された広告コンテンツをユーザ端末１０に対して配信するよう制御する。
【００７３】
「ドキュメント番号」は、広告主から広告装置１００に入稿された広告コンテンツを識別するための識別情報を示す。このドキュメント番号は、ドキュメント番号の増加にともない最小条件数が増加するように、広告コンテンツに予め付与される番号である。
【００７４】
「最小条件数」は、クエリが広告コンテンツに設定された論理式にヒットするために、クエリに最低限含まれていなければならない属性情報の数である。広告コンテンツに設定された最小条件数は、広告コンテンツごとに設定された論理式によって決まる。例えば、ドキュメント番号「１」に対応する広告に設定された論理式は、「３０代∧男性∧株」であるため、クエリがドキュメント番号１にヒットするには、「年齢層（３０代）」、「性別（男性）」および「趣味（株）」の三つの属性情報が必要である。すなわち、ドキュメント番号１に設定された最小条件数は「３」である。
【００７５】
「論理式」は、広告コンテンツごとに設定される論理式を示す。広告主は、広告コンテンツを入稿する際に論理式を設定する。これにより、広告主は、広告コンテンツを配信させるユーザを選択したり、特定の属性を有するユーザのみに広告コンテンツを配信させるよう配信対象を絞り込んだりすることができる。
【００７６】
なお、転置インデックス１２１Ｂは、論理式に含まれる属性情報が、どの広告コンテンツに設定された論理式に含まれるかを示したポスティングリストの集合からなる。例えば、「２０代」のポスティングリストは、ドキュメント番号３に対応する広告コンテンツに設定された論理式に、「２０代」の属性情報が含まれることを示す。
【００７７】
すなわち、図７では、ドキュメント番号「１」によって識別される広告コンテンツは、ドキュメントに設定された最小条件数が「３」であり、設定されている論理式が「年齢層（３０代）∧性別（男性）∧趣味（株）」であることを示している。
【００７８】
（ユーザ情報記憶部１２２について）
ユーザ情報記憶部１２２は、ユーザに関する情報を記憶する。具体的には、ユーザ情報記憶部１２２は、広告装置１００に広告コンテンツの配信を要求するユーザに関する属性情報を記憶する。
【００７９】
ここで、図８に、実施形態に係るユーザ情報記憶部１２２の一例を示す。図８は、実施形態に係るユーザ情報記憶部１２２の一例を示す図である。図８に示した例では、ユーザ情報記憶部１２２は、「ユーザＩＤ」、「属性情報」といった項目を有する。
【００８０】
「ユーザＩＤ」は、ユーザ端末１０、及びユーザ端末１０を操作するユーザを識別する識別情報である。図８において、ユーザＩＤは、「Ｕ１１」と表記される。これは、ユーザ端末１０がユーザＩＤ「Ｕ１１」により識別されていることを示すとともに、ユーザ端末１０は「ユーザＵ１１」によって操作されていることを示すものとする。
【００８１】
「属性情報」は、ユーザの属性情報を示す。ユーザの属性情報は、例えば、ユーザの性別や、年齢層や、趣味などに関する情報が含まれる。かかる属性情報は、クエリに含まれる単語として用いられる場合がある。
【００８２】
すなわち、図８では、ユーザＩＤ「Ｕ１１」によって識別されるユーザ端末１０は、属性情報が「２０代」、「男性」、「東京」、「趣味：株」、「趣味：本」であることを示している。
【００８３】
また、ユーザ情報記憶部１２２は、広告装置１００の内部に存在せず、例えば外部に接続された所定のログ記憶サーバなどであってもよい。この場合、後述する配信要求受付部１３２は、ネットワークＮを介して、所定のログ記憶サーバに記憶されているログを取得することができる。
【００８４】
（制御部１３０について）
制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、広告装置１００内部の記憶装置に記憶されている各種プログラム（検索プログラムの一例に相当）がＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【００８５】
図６に示すように、制御部１３０は、入稿受付部１３１と、配信要求受付部１３２と、検索部１３３と、配信部１３７とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図６に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部１３０が有する各処理部の接続関係は、図６に示した接続関係に限られず、他の接続関係であってもよい。
【００８６】
（入稿受付部１３１について）
入稿受付部１３１は、広告主端末２０から広告コンテンツの入稿を受け付ける。このとき、入稿受付部１３１は、広告コンテンツごとに設定される論理式を広告コンテンツと対応付けて受け付ける。そして、入稿受付部１３１は、入稿される広告コンテンツを識別するドキュメント番号を設定したうえで、入稿される広告コンテンツに関する情報を広告情報記憶部１２１に記憶する。また、入稿受付部１３１は、広告コンテンツに設定された論理式に含まれる属性情報が、どの広告コンテンツに設定された論理式に含まれるかを示したポスティングリストの集合である転置インデックスを作成し、作成した転置インデックスを広告情報記憶部１２１に記憶する。
【００８７】
なお、入稿受付部１３１は、広告コンテンツに設定される論理式について、必ずしも広告コンテンツの入稿と同時に受け付けることを要しない。すなわち、入稿受付部１３１は、広告コンテンツの入稿の後に論理式の設定を受け付けてもよいし、論理式の設定を受け付けた後に、論理式の内容の変更を受け付けてもよい。
【００８８】
（配信要求受付部１３２について）
配信要求受付部１３２は、広告コンテンツを検索するための条件を受け付ける。具体的には、配信要求受付部１３２は、広告コンテンツの配信を要求する送信元（ここでは、ユーザ端末１０）から、広告コンテンツを検索するための条件となる送信元情報を受け付ける。例えば、配信要求受付部１３２は、送信元情報として、配信要求の送信元であるユーザに関する情報や、ユーザ端末１０に保持される情報や、配信された広告コンテンツが表示されるウェブページに関する情報等を含む広告コンテンツの配信要求であるクエリをユーザ端末１０から受け付ける。より具体的には、配信要求受付部１３２は、クエリとして、ユーザの属性情報などを受け付ける。
【００８９】
配信要求受付部１３２は、受け付けた送信元情報をユーザ情報記憶部１２２に記憶する。また、配信要求受付部１３２は、広告コンテンツの抽出に要する全ての情報をクエリとしてユーザ端末１０から受け付けるのでなく、予め記憶されていたユーザ情報をユーザ情報記憶部１２２から受け付けてもよい。なお、広告装置１００は、広告コンテンツの配信要求を受け付けたものの、かかる配信要求から上記の送信元情報のようなクエリが受け付けられなかったり、受け付けたクエリが検索処理を行うのに十分でなかったりする場合には、下記で説明する検索処理を行わず、広告コンテンツを配信してもよい。この場合、広告装置１００は、特定のユーザにターゲディングしていない、任意のユーザに配信可能な広告コンテンツを配信する。
【００９０】
（検索部１３３について）
検索部１３３は、広告コンテンツに対して所定の検索処理を行う。具体的には、検索部１３３は、連結リストに格納されるドキュメント番号のうち最大のドキュメント番号に設定された最小条件数の数になるまで、各ポスティングリスト先頭のドキュメント番号を連結リストに抽出する。そして、検索部１３３は、連結リストに属するドキュメント番号のうち最大のドキュメント番号と、連結リストに含まれる他のドキュメント番号が一致した場合には、他のドキュメント番号を連結リストに保持する。一方、検索部１３３は、他のドキュメント番号が最大のドキュメント番号と一致しない場合には、他のドキュメント番号を、他のドキュメント番号の属するポスティングリスト内のいずれかのドキュメント番号と他のドキュメント番号とを置き換える。これにより、検索部１３３は、連結リストにおける所定のドキュメント番号の数量が、所定のドキュメント番号に設定された最小条件数を満たすような所定のドキュメント番号を検索する。検索部１３３は、取得部１３４と、抽出部１３５と、判定部１３６とを有し、上記処理を実行する。
【００９１】
（取得部１３４について）
取得部１３４は、広告コンテンツごとに付与されるドキュメント番号であって、条件を含む広告コンテンツに対応するドキュメント番号を昇順に配列したリストであるポスティングリストを、条件ごとに取得する。具体的には、取得部１３４は、広告情報記憶部１２１に記憶された転置インデックス１２１Ｂを参照し、ユーザ端末１０から受け付けた条件であって、広告コンテンツを検索するための条件に対応するポスティングリストを取得する。例えば、取得部１３４は、転置インデックス１２１Ｂから、クエリに含まれるユーザの属性情報に対応するポスティングリストを取得する。
【００９２】
（抽出部１３５について）
抽出部１３５は、取得部１３４によって取得された各ポスティングリストに基づき、ドキュメント番号の数量がドキュメント番号に設定された最小条件数を満たすようなドキュメント番号を抽出する。具体的には、抽出部１３５は、連結リストおよび優先度付キューの二つのデータ構造を利用することによって、ドキュメント番号を抽出する。連結リストおよび優先度付キューは、抽出部１３５が、ポスティングリストにおいて参照するドキュメント番号を記憶するためのデータ構造である。抽出部１３５は、連結リストおよび優先度付キューに関するデータを記憶部１２０に一時的に記憶することによって、連結リストおよび優先度付キューに格納されたドキュメント番号と、格納されたドキュメント番号に対応するポスティングリストを参照できるものとする。
【００９３】
抽出部１３５は、連結リスト先頭の要素から見てドキュメント番号が降順になるように、ドキュメント番号を連結リストの要素に格納する。また、広告装置１００は、ドキュメント番号を、優先度付キューに一時的に格納する。かかる抽出部１３５は、ドキュメント番号が小さいドキュメントから優先して、優先度付キューの要素から、ドキュメント番号を連結リストの要素に移動させる。
【００９４】
図４に示した実施形態に係る広告装置１００による検索処理のように、抽出部１３５は、以下に説明する、「処理１」、「処理２」および「処理３」を組み合わせて、最小条件数の条件を満たした広告コンテンツに対応するドキュメント番号を抽出する抽出処理を実現又は実行する。
【００９５】
「処理１」は、抽出処理において、優先度付キューを初期化するものである。当該処理は、取得部１３４が取得したポスティングリストの集合において、全てのポスティングリスト先頭のドキュメント番号を参照し、参照したポスティングリスト先頭のドキュメント番号を全て優先度付キューに格納するものである。
【００９６】
「処理２」は、抽出処理において、クエリにヒットする候補のドキュメント番号を選択するものである。当該処理は、連結リストの要素数が、連結リスト先頭の要素に格納されるドキュメント番号に設定された最小条件数の数になるまで、優先度付キューの要素から、ドキュメント番号を連結リストの要素に移動させるものである。また、当該処理は、優先度付キュー先頭のドキュメント番号が、連結リスト先頭のドキュメント番号と同じ場合、抽出部１３５は、優先度付キュー先頭のドキュメント番号を、連結リスト先頭の要素に追加するものである。
【００９７】
「処理３」は、抽出処理において、ポスティングリストにおいて参照するドキュメント番号を進めるものである。当該処理は、連結リスト先頭の要素から連結リスト末尾の要素に向かって、連結リストの要素に格納されているドキュメント番号を、順次参照するものである。そして、当該処理は、参照したドキュメント番号が含まれるポスティングリストにおいて、参照するドキュメント番号がヒット候補のドキュメント番号以上になるまで、参照するドキュメント番号を進めるものである。また、ポスティングリストにおいて、参照するドキュメント番号がヒット候補のドキュメント番号を超えた場合、当該処理は、ヒット候補のドキュメント番号を超えたドキュメント番号を、優先度付キューに格納するものである。また、当該処理は、連結リストの要素数がヒット候補のドキュメント番号に設定された最小条件数を下回った場合、処理２に戻るものである。
【００９８】
（判定部１３６について）
判定部１３６は、抽出部１３５によって抽出されたドキュメント番号に対応する広告コンテンツが、クエリにヒットするか否かを判定する判定処理を行う。具体的には、判定部１３６は、抽出された広告コンテンツに設定された論理式の正確な評価を行い、実際にクエリが広告コンテンツにヒットするかを判定し、クエリにヒットすると判定された広告コンテンツを抽出する。また、判定部１３６は、クエリが広告コンテンツにヒットするか否かの判定を行った後に、連結リストに格納されたドキュメント番号が含まれるポスティングリストにおいて、参照するドキュメント番号が判定したドキュメント番号の次の番号になるように、参照するドキュメント番号を進める。そして、判定部１３６は、参照するドキュメント番号を、全て優先度付キューに格納する。
【００９９】
（配信部１３７について）
配信部１３７は、広告コンテンツを検索するための条件を送信した送信元に対して、検索部１３３によって検索された所定のドキュメント番号に対応する広告コンテンツを配信する。具体的には、配信部１３７は、配信要求受付部１３２によって取得された広告コンテンツの配信要求であるクエリを送信したユーザ端末１０に、判定部１３６によって抽出された広告コンテンツを配信する。
【０１００】
なお、実際にユーザ端末１０に配信される広告コンテンツのデータ自体は、広告装置１００に係る記憶部１２０内に記憶されていなくてもよい。例えば、配信部１３７は、外部に備えられた所定の広告配信サーバに広告配信の制御命令を送信することで、判定部１３６が抽出した広告コンテンツをユーザ端末１０に配信させてもよい。
【０１０１】
〔４．検索処理手順〕
次に、図９を用いて、実施形態に係る広告装置１００による検索処理の手順について説明する。図９は、実施形態に係る広告装置１００による検索処理手順を示すフローチャートである。
【０１０２】
図９に示すように、配信要求受付部１３２は、ユーザ端末１０から広告コンテンツの配信要求を受け付ける（ステップＳ３０１）。そして、配信要求受付部１３２は、配信要求とともに、ユーザの属性情報が含まれるクエリを取得したか否かを判定する（ステップＳ３０２）。ここで、クエリを受け付けた場合には（ステップＳ３０２；Ｙｅｓ）、配信要求受付部１３２は、受け付けたクエリを検索部１３３に送り、広告コンテンツの検索処理を開始させる。そして、検索部１３３は、配信候補の広告コンテンツを検索する（ステップＳ３０３）。
【０１０３】
配信部１３７は、検索部１３３によって配信候補の広告コンテンツが少なくとも一つ以上抽出された場合には（ステップＳ３０４；Ｙｅｓ）、抽出された配信候補の広告コンテンツの中から所定の広告コンテンツを選択し、選択した所定の広告コンテンツを、クエリを送信したユーザ端末１０に配信する（ステップＳ３０５）。
【０１０４】
一方、ステップＳ３０２において、ユーザの属性情報が含まれるクエリを受け付けない場合には（ステップＳ３０２；Ｎｏ）、配信部１３７は、特定のユーザにターゲティングされないような、任意のユーザに配信可能な広告コンテンツを配信する（ステップＳ３０６）。なお、クエリが受け付けられない場合とは、クエリに係る情報の全てが受け付けられない場合のみならず、送信元情報の一部が受け付けられたものの、他の情報が不足することにより、実施形態に係る処理が実現されない場合等を含む。
【０１０５】
また、ステップＳ３０４において、検索部１３３によって配信候補の広告コンテンツが抽出されなかった場合には（ステップＳ３０４；Ｎｏ）、配信部１３７は、特定のユーザにターゲティングされないような、任意のユーザに配信可能な広告コンテンツを配信する（ステップＳ３０６）。以上により、広告装置１００による検索処理は完了する。
【０１０６】
次に、図９のステップＳ３０３に示した、配信候補の広告コンテンツを検索する処理の処理手順について説明する。この配信候補の広告コンテンツを検索する処理は、検索部１３３がクエリにヒットする広告コンテンツを検索する処理である。図１０は、配信候補の広告コンテンツを検索する処理の処理手順を示すフローチャートである。
【０１０７】
図１０に示すように、取得部１３４は、広告情報記憶部１２１に記憶された広告コンテンツに関する情報から、クエリに含まれる属性情報に該当するポスティングリストの集合を取得する（ステップＳ４０１）。続いて、抽出部１３５は、取得部１３４によって取得されたポスティングリストに基づいて、優先度付キューを初期化する（ステップＳ４０２）。
【０１０８】
図１１は、図１０のステップＳ４０２に示した優先度付キューを初期化する処理の処理手順を示すフローチャートである。抽出部１３５は、取得部１３４によって取得されたポスティングリストの集合において、全てのポスティングリスト先頭のドキュメント番号を参照する（ステップＳ５０１）。続いて、抽出部１３５は、参照したポスティングリスト先頭のドキュメント番号を全て優先度付キューに格納する（ステップＳ５０２）。
【０１０９】
図１０の説明に戻ると、抽出部１３５は、連結リストの要素数が、連結リスト先頭の要素に格納されるドキュメント番号に設定された最小条件数の数揃わない場合には（ステップＳ４０３；Ｎｏ）、抽出部１３５は、広告コンテンツの検索を終了する（ステップＳ４０４）。そして、連結リストの要素数が、連結リスト先頭の要素に格納されるドキュメント番号に設定された最小条件数の数揃う場合には（ステップＳ４０３；Ｙｅｓ）、抽出部１３５は、ヒット候補のドキュメント番号を選択する（ステップＳ４０５）。
【０１１０】
図１２は、図１０のステップＳ４０５に示したヒット候補のドキュメント番号を選択する処理の処理手順を示すフローチャートである。抽出部１３５は、連結リストの要素数が、連結リスト先頭の要素に格納されるドキュメント番号に設定された最小条件数の数になるまで、優先度付キューの要素から、ドキュメント番号を連結リストの要素に移動させる（ステップＳ６０１）。ここで、ヒット候補のドキュメント番号は、連結リスト先頭の要素のドキュメント番号である。
【０１１１】
続いて、抽出部１３５は、優先度付キュー先頭のドキュメント番号が、連結リスト先頭のドキュメント番号と同じでない場合には（ステップＳ６０２；Ｎｏ）、ヒット候補のドキュメント番号を選択する処理を終了する。一方、ステップＳ６０２において、優先度付キュー先頭のドキュメント番号が、連結リスト先頭のドキュメント番号と同じ場合には（ステップＳ６０２；Ｙｅｓ）、抽出部１３５は、優先度付キュー先頭のドキュメント番号を、連結リスト先頭の要素に追加する（ステップＳ６０３）。
【０１１２】
図１０の説明に戻ると、抽出部１３５は、ステップＳ４０６において、ヒット候補のドキュメント番号が、取得部１３４によって取得された全ポスティングリストにおける終端の要素に含まれる場合には（ステップＳ４０６；Ｙｅｓ）、抽出部１３５は、広告コンテンツの検索を終了する（ステップＳ４０４）。そして、ヒット候補のドキュメント番号が取得部１３４によって取得された全ポスティングリストにおける終端の要素に含まれない場合には（ステップＳ４０６；Ｎｏ）、抽出部１３５は、連結リストにおいて、連結リスト先頭の要素から連結リスト末尾の要素に向かって、参照するドキュメント番号を一つ下に進める（ステップＳ４０７）。そして、抽出部１３５は、参照したドキュメント番号が含まれるポスティングリストにおいて、参照するドキュメント番号がヒット候補のドキュメント番号以上になるまで、参照するドキュメント番号を進める。
【０１１３】
ステップＳ４０７の処理において、ポスティングリストにおいて参照するドキュメント番号がヒット候補のドキュメント番号を超えた場合には（ステップＳ４０８；Ｙｅｓ）、抽出部１３５は、ヒット候補のドキュメント番号を超えたドキュメント番号を、優先度付キューに格納する（ステップＳ４０９）。
【０１１４】
ところで、ステップＳ４０９の処理を行った結果、連結リストの要素数がヒット候補のドキュメント番号に設定された最小条件数の数を下回った場合には（ステップＳ４１０；Ｙｅｓ）、ステップＳ４０３に移行する。そして、ステップＳ４０９の処理を行った結果、連結リストの要素数がヒット候補のドキュメント番号に設定された最小条件数の数を下回っていない場合には（ステップＳ４１０；Ｎｏ）、ステップＳ４０７に移行する。一方、ステップＳ４０７の処理において、ポスティングリストにおいて参照するドキュメント番号がヒット候補のドキュメント番号を超えなかった場合には（ステップＳ４０８；Ｎｏ）、ステップＳ４１１に移行する。
【０１１５】
ステップＳ４１１において、連結リストの要素に、ヒット候補のドキュメント番号が、ヒット候補のドキュメント番号に設定された最小条件数の数揃った場合には（ステップＳ４１１；Ｙｅｓ）、判定部１３６は、クエリが、抽出部１３５によって抽出されたドキュメント番号に対応する広告コンテンツにヒットするか否かを判定する（ステップＳ４１２）。そして、ステップＳ４１１において、連結リストの要素に、ヒット候補のドキュメント番号が、ヒット候補のドキュメント番号に設定された最小条件数の数揃わなかった場合には（ステップＳ４１１；Ｎｏ）、ステップＳ４０７に移行する。
【０１１６】
判定部１３６が判定を行った結果、クエリが、抽出部１３５によって抽出されたドキュメント番号に対応する広告コンテンツにヒットする場合には（ステップＳ４１３；Ｙｅｓ）、判定部１３６は、抽出された広告コンテンツを、配信候補の広告コンテンツとして抽出する（ステップＳ４１４）。続いて、判定部１３６は、連結リストに格納されたドキュメント番号が含まれるポスティングリストにおいて、参照するドキュメント番号が判定したドキュメント番号の次の番号になるように参照するドキュメント番号を進め、参照するドキュメント番号を、全て優先度付キューに格納する（ステップＳ４１５）。そして、検索部１３３は、ステップＳ４０３に移行し、引き続き検索処理を行う。一方、ステップＳ４１３において、クエリが、抽出部１３５によって抽出されたドキュメント番号に対応する広告コンテンツにヒットしなかった場合には（ステップＳ４１３；Ｎｏ）、ステップＳ４１５に移行する。
【０１１７】
〔５．変形例〕
上述した実施形態は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、その他の実施形態について説明する。
【０１１８】
〔５−１．初期化処理〕
上記実施形態では、図４のステップＳ２０２において説明したように、広告装置１００が、参照したポスティングリスト先頭のドキュメント番号を全て優先度付キューに格納する例を示した。しかし、広告装置１００は、ポスティングリスト先頭のドキュメント番号が、ポスティングリストの集合の先頭から見て昇順になるように、ポスティングリストをソートした後に、連結リストの要素数が、連結リスト先頭の要素に格納されるドキュメント番号に設定された最小条件数の数になるまで、ポスティングリスト先頭のドキュメント番号を連結リストに格納してもよい。これにより、広告装置１００は、図４のステップＳ２０２における優先度付キューを初期化する処理を行うことなく、検索処理を開始することができる。
【０１１９】
〔５−２．連結リスト〕
上記実施形態では、図４において説明したように、広告装置１００が、連結リスト先頭の要素から見てドキュメント番号が降順になるように、ドキュメント番号を連結リストの要素に格納する例を示した。ここで、広告装置１００は、連結リスト先頭のドキュメント番号が連結リストに属するドキュメント番号のうち最大のドキュメント番号になるようにドキュメント番号を連結リストの要素に格納するだけでもよい。例えば、図４のステップＳ２０３において、広告装置１００は、先に、ｔｅｒｍ７のポスティングリストに含まれるドキュメント番号「１」を参照し、ｔｅｒｍ７のポスティングリストにおいて、参照するドキュメント番号を「１」から「５」に進めてもよい。これにより、広告装置１００は、連結リスト先頭の要素から連結リスト末尾の要素に向かって、連結リストの要素に格納されているドキュメント番号を参照する際に、ドキュメント番号の降順に限られない順で、ドキュメント番号を参照することができる。
【０１２０】
ところで、ｔｅｒｍ７のポスティングリストにおいて、参照するドキュメント番号を「１」から「５」に進めた場合と、ｔｅｒｍ３のポスティングリストにおいて、参照するドキュメント番号を「２」から「５」に進めた場合とを比較すると、先に、参照するドキュメント番号を「２」から「５」に進めることで、検索処理を高速化できる。具体的に説明すると、ｔｅｒｍ３のポスティングリストにおいて、ドキュメント番号「２」以降の要素にドキュメント番号「５」が含まれる確率は、ｔｅｒｍ７のポスティングリストにおいて、ドキュメント番号「１」以降の要素にドキュメント番号にドキュメント番号「５」が含まれる確率よりも低い。したがって、広告装置１００による検索処理は、連結リスト先頭の要素から見てドキュメント番号が降順になるように、ドキュメント番号を連結リストの要素に格納し、連結リスト先頭の要素から連結リスト末尾の要素に向かって、連結リストの要素に格納されているドキュメント番号を、順次参照するほうが、高速で実行される。
【０１２１】
〔５−３．超えたドキュメント番号を優先度付キューに戻す処理（１）〕
上記実施形態では、図４において説明したように、広告装置１００が、ヒット候補のドキュメント番号を超えたドキュメント番号を、優先度付キューに格納する例を示した。しかし、広告装置１００は、ヒット候補のドキュメント番号を超えたドキュメント番号が、優先度付キュー先頭のドキュメント番号よりも小さい場合には、直接、かかるヒット候補のドキュメント番号を超えたドキュメント番号を連結リスト先頭の要素に格納してもよい。
【０１２２】
〔５−４．超えたドキュメント番号を優先度付キューに戻す処理（２）〕
上記実施形態では、図４において説明したように、広告装置１００は、クエリがドキュメントにヒットするか否かの判定を行った後に、連結リストに格納されたドキュメント番号が含まれるポスティングリストにおいて、参照するドキュメント番号を、判定したドキュメント番号の次のドキュメント番号に進める。そして、広告装置１００は、参照するドキュメント番号を、全て優先度付キューに格納する。このとき、広告装置１００は、連結リストの要素数が連結リスト先頭のドキュメント番号（次のヒット候補）に設定された最小条件数を下回るまで、連結リストに格納されたドキュメント番号を優先度付キューに移動させてもよい。
【０１２３】
〔５−５．最小条件数の設定〕
上記実施形態では、図１において説明したように、ドキュメント側に設定された論理式に基づいて、最小条件数がドキュメントごとに設定される例を示した。しかし、クエリがドキュメントにヒットするための条件としての最小条件数は、クエリ側に条件として設定されてもよい。
【０１２４】
例えば、広告装置１００が、「２０代∨男性∨東京∨株、最小条件数＝２」という条件を含むクエリを取得したものとする。この場合、「最小条件数＝２」という条件は、かかるクエリが所定の広告コンテンツにヒットするためには、所定の広告コンテンツに「２０代」、「男性」、「東京」および「株」という属性情報のうち少なくとも２つの属性情報が広告コンテンツに含まれる必要があることを示している。
【０１２５】
この例の場合、例えば、「２０代」、「男性」および「女性」という属性情報が含まれる広告コンテンツはクエリに含まれる属性情報を２つ含むため、上記のクエリは、「２０代」、「男性」および「女性」という属性情報が含まれる広告コンテンツにヒットする。しかし、例えば、「２０代」、「女性」という属性情報のみが含まれる広告コンテンツはクエリに含まれる属性情報を１つしか含まないため、上記のクエリは、「２０代」、「女性」という属性情報のみが含まれる広告コンテンツにはヒットしない。
【０１２６】
〔６．ハードウェア構成〕
また、上述してきた実施形態に係る広告装置１００は、例えば図１３に示すような構成のコンピュータ１０００によって実現される。図１３は、広告装置１００の機能を実現するコンピュータ１０００の一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ１３００、ＨＤＤ１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を有する。
【０１２７】
ＣＰＵ１１００は、ＲＯＭ１３００又はＨＤＤ１４００に記憶されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を記憶する。
【０１２８】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス１５００は、通信網５００（図５に示したネットワークＮに対応する）を介して他の機器からデータを受信してＣＰＵ１１００へ送り、ＣＰＵ１１００が生成したデータを、通信網５００を介して他の機器へ送信する。
【０１２９】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、入出力インターフェイス１６００を介して生成したデータを出力装置へ出力する。
【０１３０】
メディアインターフェイス１７００は、記録媒体１８００に記憶されたプログラム又はデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０１３１】
例えば、コンピュータ１０００が実施形態に係る広告装置１００として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムを実行することにより、制御部１３０の機能を実現する。また、ＨＤＤ１４００には、記憶部１２０内のデータが記憶される。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムを記録媒体１８００から読み取って実行するが、他の例として、他の装置から通信網５００を介してこれらのプログラムを取得してもよい。
【０１３２】
〔７．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０１３３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図６に示した入稿受付部１３１と、配信要求受付部１３２とは統合されてもよい。また、例えば、記憶部１２０に記憶される情報は、ネットワークＮを介して、外部に備えられた記憶装置に記憶されてもよい。
【０１３４】
また、例えば、上記実施形態では、広告装置１００が、広告コンテンツの入稿やクエリを受け付ける受付処理と、配信される広告コンテンツを検索する検索処理と、広告コンテンツを配信する配信処理とを行う例を示した。しかし、上述した広告装置１００は、受付処理を行う受付装置と、検索処理を行う検索装置と、配信処理を行う配信装置とに分離されてもよい。この場合、受付装置は、少なくとも、入稿受付部１３１と、配信要求受付部１３２とを有する。また、検索装置は、少なくとも、検索部１３３を有する。また、配信装置は、少なくとも、配信部１３７を有する。
【０１３５】
また、上述してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１３６】
〔８．効果〕
上述してきたように、実施形態に係る広告装置１００は、配信要求受付部１３２と、検索部１３３と、取得部１３４とを有する。配信要求受付部１３２は、ドキュメントを検索するための条件を受け付ける。取得部１３４は、ドキュメントごとに付与されるドキュメント番号であって、条件を含むドキュメントに対応するドキュメント番号を昇順に配列したリストである第１リスト（例えば、ポスティングリスト）を、条件ごとに取得する。検索部１３３は、少なくともドキュメントが検索されるための条件として最小限必要となる条件の数である最小条件数を満たす数量のドキュメント番号であって、取得部によって取得された条件ごとの第１リストの各々の先頭のドキュメント番号を第２リストに抽出する。そして、検索部１３３は、第２リストに属するドキュメント番号のうち最大のドキュメント番号と、第２リストに含まれる他のドキュメント番号が一致した場合、他のドキュメント番号を第２リストに保持する。一方、検索部１３３は、他のドキュメント番号が最大のドキュメント番号と一致しない場合、他のドキュメント番号の属する第１リスト内のいずれかのドキュメント番号と他のドキュメント番号とを置き換える。これにより、検索部１３３は、第２リストにおける所定のドキュメント番号の数量が最小条件数を満たすような所定のドキュメント番号を検索する。
【０１３７】
これにより、実施形態に係る広告装置１００は、最小条件数の条件を満たすようなドキュメントを効率的に検索することができるので、転置インデックスを利用してドキュメントを検索する場合の検索効率を向上させることができる。
【０１３８】
また、検索部１３３は、第１リストの各々の先頭のドキュメント番号を格納するキュー（例えば、優先度付キュー）から、第２リストに含まれるドキュメント番号の数量が最小条件数を少なくとも満たすように、当該キューに格納されているドキュメント番号を昇順に第２リストへと抽出し、当該抽出の後に、当該第２リストに属するドキュメント番号のうち最大のドキュメント番号と一致するドキュメント番号が当該キューに格納されている場合には、当該キューに格納されている当該最大のドキュメント番号を当該第２リストへとさらに抽出する。
【０１３９】
これにより、実施形態に係る広告装置１００は、最小条件数の条件を満たすドキュメントの候補を効率的に検索することができるので、転置インデックスを利用してドキュメントを検索する場合の検索効率を向上させることができる。
【０１４０】
また、検索部１３３は、第２リストに属するドキュメント番号のうち最大のドキュメント番号と他のドキュメント番号が一致しない場合には、他のドキュメント番号の属する第１リストに含まれるドキュメント番号を整列順に検索し、最大のドキュメント番号と一致する番号のドキュメント番号が検索されない場合には、他のドキュメント番号の属する第１リストの先頭を、他のドキュメント番号の属する第１リスト内のドキュメント番号であって当該最大のドキュメント番号を超える最小のドキュメント番号に置き換えてキューへと返し、最大のドキュメント番号と一致するドキュメント番号が検索された場合には、第１リストに含まれるドキュメント番号であって、最大のドキュメント番号と一致するドキュメント番号を他のドキュメント番号と置き換えて、第２リストに保持する。
【０１４１】
これにより、実施形態に係る広告装置１００は、最小条件数の条件を満たす可能性がないドキュメントの検索をスキップすることができるので、転置インデックスを利用してドキュメントを検索する場合の検索効率を向上させることができる。
【０１４２】
また、検索部１３３は、置き換えられた第１リストの先頭のドキュメント番号をキューへと返した後に、第２リストに含まれるドキュメント番号の数量が最小条件数を満たさない場合には、第２リストに含まれるドキュメント番号の数量が少なくとも最小条件数を満たすように、キューに格納されているドキュメント番号を昇順に第２リストへと抽出する。
【０１４３】
これにより、実施形態に係る広告装置１００は、最小条件数の条件を満たす可能性がないドキュメントの検索をスキップした後に、迅速に、次の最小条件数の条件を満たすドキュメントの候補の検索に移行できるので、転置インデックスを利用して広告コンテンツを検索する場合の検索効率を向上させることができる。
【０１４４】
また、検索部１３３は、第２リストに属するドキュメント番号のうち最大のドキュメント番号と一致するドキュメント番号の数量が最小条件数を満たした場合には、最大のドキュメント番号を所定のドキュメント番号として抽出する。
【０１４５】
これにより、実施形態に係る広告装置１００は、最小条件数の条件を満たすドキュメントの候補を効率的に検索することができるので、転置インデックスを利用してドキュメントを検索する場合の検索効率を向上させることができる。
【０１４６】
また、検索部１３３は、配信要求受付部１３２によって受け付けられた条件又は条件の組み合わせが、抽出した所定のドキュメント番号に対応するドキュメントに設定された条件式に適合するか否かを判定し、判定後、所定のドキュメント番号の属する各々の第１リストの先頭を、所定のドキュメント番号を超える最小のドキュメント番号に置き換えて、キューへと返す。
【０１４７】
これにより、実施形態に係る広告装置１００は、最小条件数の条件を満たすドキュメントの候補を迅速に検索することができるので、転置インデックスを利用してドキュメントを検索する場合の検索効率を向上させることができる。
【０１４８】
また、検索部１３３は、判定後、所定のドキュメント番号以外のドキュメント番号が第２リストに含まれていた場合には、第２リストに含まれる所定のドキュメント番号以外のドキュメント番号の属する第１リストの先頭を、所定のドキュメント番号を超える最小のドキュメント番号に置き換えて、キューへと返す。
【０１４９】
これにより、実施形態に係る広告装置１００は、最小条件数の条件を満たすドキュメントの候補を迅速に検索することができるので、転置インデックスを利用してドキュメントを検索する場合の検索効率を向上させることができる。
【０１５０】
また、検索部１３３は、第２リストに含まれるドキュメント番号の数量が、第２リストに属するドキュメント番号のうち最大のドキュメント番号に設定された最小条件数、又は、配信要求受付部１３２によって受け付けられた条件に設定された最小条件数を満たすように、キューからドキュメント番号を第２リストへ新たに抽出できない場合には、所定のドキュメント番号を検索する処理を終了する。
【０１５１】
これにより、実施形態に係る広告装置１００は、最小条件数の条件を満たす可能性がないドキュメントの検索を終了することができるので、転置インデックスを利用してドキュメントを検索する場合の検索効率を向上させることができる。
【０１５２】
また、実施形態に係る広告装置１００は、配信部１３７をさらに備える。検索部１３３は、所定のドキュメント番号に対応するドキュメントとして、検索されるための条件が設定された広告コンテンツを検索する。配信部１３７は、ドキュメントを検索するための条件を送信した送信元に対して、検索部１３３によって検索された所定のドキュメント番号に対応するドキュメントを配信する。
【０１５３】
これにより、実施形態に係る広告装置１００は、最小条件数の条件を満たす広告コンテンツを効率的に検索することができるので、転置インデックスを利用して広告コンテンツを検索する場合の検索効率を向上させることができる。この結果、実施形態に係る広告装置１００は、送信元に対して広告コンテンツを配信する際に、広告コンテンツを検索するための所要時間を削減することができる。
【０１５４】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１５５】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【０１５６】
１  検索処理システム
１０  ユーザ端末
２０  広告主端末
３０  ウェブサーバ
１００  広告装置
１１０  通信部
１２０  記憶部
１２１  広告情報記憶部
１２２  ユーザ情報記憶部
１３０  制御部
１３１  入稿受付部
１３２  配信要求受付部
１３３  検索部
１３４  取得部
１３５  抽出部
１３６  判定部
１３７  配信部
【図１】
0006267252.tif 000002
【図２】
0006267252.tif 000003
【図３】
0006267252.tif 000004
【図４】
0006267252.tif 000005
【図５】
0006267252.tif 000006
【図６】
0006267252.tif 000007
【図７】
0006267252.tif 000008
【図８】
0006267252.tif 000009
【図９】
0006267252.tif 000010
【図１０】
0006267252.tif 000011
【図１１】
0006267252.tif 000012
【図１２】
0006267252.tif 000013
【図１３】
0006267252.tif 000014