(57)【特許請求の範囲】
【請求項１】
部分一致検索の目的となる文字列項目を含む複数の項目を含んで構成される複数のレコードを検索対象として記憶する検索対象ＤＢと、
文字列項目を含んで構成される複数のレコードを予備検索対象として記憶する予備検索対象ＤＢであって、前記文字列項目の内容が前記予備検索対象として意味をなす内容である予備検索対象ＤＢと、
前記予備検索対象ＤＢに記憶された前記文字列項目の内容について、所定の検索文字列を用いて部分一致検索を実行する予備検索実行手段と、
前記予備検索実行手段による前記部分一致検索の結果得られた内容のみを検索するための完全一致検索の検索条件式を生成する検索条件変換手段と、
前記検索条件変換手段により生成された前記検索条件式に基づいて、検索対象ＤＢに記憶された検索対象に対する完全一致検索を実行する本検索実行手段と、
を備える検索システム。
【請求項２】
前記予備検索対象ＤＢは、前記文字列項目の内容として管理者により予め設定された内容を記憶する、請求項１に記載の検索システム。
【請求項３】
前記検索対象ＤＢに記憶された前記検索対象から、前記部分一致検索の対象となる前記文字列項目の内容を重複を排除して抽出し、前記予備検索対象ＤＢに予備検索対象として記憶するユニーク文字列抽出手段、をさらに備える請求項１に記載の検索システム。
【請求項４】
前記検索対象ＤＢ及び前記予備検索対象ＤＢは、前記検索対象の文字列項目の内容及び前記予備検索対象の文字列項目の内容のうち前記検索対象の文字列項目の内容と同一の内容を同一の識別番号を付して記憶し、
前記予備検索実行手段は、前記部分一致検索の結果として得られた文字列項目の内容に対応付けられた識別番号を出力し、
前記本検索実行手段は、前記予備検索実行手段が出力した前記識別番号を用いて前記完全一致検索を実行する、
請求項１から３の何れかに記載の検索システム。
【請求項５】
前記部分一致検索を行う複数の予備検索サーバ、及び前記完全一致検索を実行する本検索サーバにより構成され、
複数の前記予備検索サーバが、
それぞれ重複が排除された前記文字列項目の内容を記憶する前記予備検索対象ＤＢと、
それぞれが備える前記予備検索対象ＤＢを参照して、前記部分一致検索を実行する前記予備検索実行手段と、を備え、
前記本検索サーバが、前記予備検索サーバによる前記部分一致検索の結果に基づく、前記完全一致検索を実行する前記本検索実行手段を備える、
請求項１から４の何れかに記載の検索システム。
【請求項６】
部分一致検索の目的となる文字列項目を含む複数の項目を含んで構成される複数のレコードを検索対象として記憶する検索対象ＤＢと、文字列項目を含んで構成される複数のレコードを予備検索対象として記憶する予備検索対象ＤＢであって、前記文字列項目の内容が前記予備検索対象として意味をなす内容である予備検索対象ＤＢと、を備えるコンピュータが実行する、
前記予備検索対象ＤＢに記憶された前記予備検索対象について、所定の検索文字列を用いて部分一致検索を実行するステップと、
前記部分一致検索の結果得られた文字列項目の内容のみを検索するための完全一致検索の検索条件式を生成するステップと、
生成された前記検索条件式に基づいて、前記検索対象ＤＢに記憶された検索対象に対する完全一致検索を実行するステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速な部分一致検索を実現する検索システム及び方法に関する。
【背景技術】
【０００２】
文字列を含むデータベース項目の検索において、完全一致検索と部分一致検索とを選択的に実行することができるが、単語の活用形、接頭語や接尾語と組み合わせた熟語、表記ゆれなども含めて検索することができる部分一致検索を実行する機会は非常に多い。
【０００３】
部分一致検索では、完全一致検索に比べヒットする文字列が多数になることから、これまで、部分一致検索の精度を高めるための様々な試みが行われてきた。例えば、特許文献１には、クエリに偶然に一致する特異なオブジェクトの選択を防止し、最もふさわしいオブジェクトを確実に選択することが可能な部分一致検索方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１８１９３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、データベース（リレーショナルデータベース）の検索では、検索対象である文字列項目の内容がデータベース内においてユニークでない場合が当然に起こり得る。
【０００６】
一例として、出願人が提供するＷｅｂ上の検索サービスでは、ユーザが入力した検索クエリなどの様々な情報を検索ログ（データベース）として記憶しておき、この検索ログから、入力された回数の多い検索クエリのランキングを生成することが行われている（検索ランキング）。このような検索ランキングを生成するためには、検索ログから検索クエリ（文字列項目）の重複回数を取得する必要があり、同一の文字列（文字列項目の内容）に対応付けられたそれぞれのデータの出力が必要になる。
【０００７】
一方で、データベース内の文字列項目の内容の重複は、検索対象が増えることから、検索処理負担の増大の一因となる。また、部分一致検索と完全一致検索とを比較すると、部分一致検索のほうが検索キーワードと検索対象との対比処理の回数が多く、部分一致検索は、完全一致検索に比べて検索の処理負担が大きくなるのが通常である。そのため、検索対象の文字列項目の内容がユニークでないデータベースを部分一致検索する場合には、多大な時間がかかってしまい、部分一致検索の高速化が求められている。
【０００８】
本発明は、このような問題に鑑みてなされたものであり、検索対象の文字列項目の内容がユニークでないデータベース内の部分一致検索の処理負担を軽減し、高速な部分一致検索を実現する検索システム及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
（１）  部分一致検索の目的となる文字列項目を含む複数の項目を含んで構成される複数のレコードを検索対象として記憶する検索対象ＤＢと、文字列項目を含んで構成される複数のレコードを予備検索対象として記憶する予備検索対象ＤＢであって、前記文字列項目の内容が前記予備検索対象として意味をなす内容である予備検索対象ＤＢと、前記予備検索対象ＤＢに記憶された前記文字列項目の内容について、所定の検索文字列を用いて部分一致検索を実行する予備検索実行手段と、前記予備検索実行手段による前記部分一致検索の結果得られた内容のみを検索するための完全一致検索の検索条件式を生成する検索条件変換手段と、前記検索条件変換手段により生成された前記検索条件式に基づいて、検索対象ＤＢに記憶された検索対象に対する完全一致検索を実行する本検索実行手段と、を備える検索システム。
【００１０】
（１）の検索システムによれば、予備検索対象ＤＢに記憶された予備検索対象として意味をなす内容に対する部分一致検索を行った後、この検索結果に基づいて、ユニークでない内容を含む文字列項目に対する完全一致検索を行う。これにより、ユニークでない内容を含む文字列項目を含む膨大な検索対象ＤＢに対しては、処理負担の小さい完全一致検索のみを実行すればよく、処理負担の大きい部分一致検索を実行する必要がない。その結果、検索対象の文字列項目の内容がユニークでないデータベース内の部分一致検索の処理負担を軽減することができ、高速な部分一致検索を実現することができる。
このとき、予備検索対象ＤＢには、予備検索対象として意味をなす内容のみを記憶するため、無駄な文字列項目の内容について部分一致検索を行う必要がなく、部分一致検索の対象を最小限にとどめて部分一致検索の処理負担を軽減することができる。
【００１１】
（２）  前記予備検索対象ＤＢは、管理者により予め設定された内容を記憶する、（１）に記載の検索システム。
【００１２】
（２）の検索システムによれば、検索対象ＤＢに対する検索に必要十分な単語を予備検索対象ＤＢに予め記憶しておくことで、検索対象ＤＢに対して直接部分一致検索を実行した場合と同様の結果を得ることができる。
【００１３】
（３）  前記検索対象ＤＢに記憶された前記検索対象から、前記部分一致検索の対象となる前記文字列項目の内容を重複を排除して抽出し、前記予備検索対象ＤＢに予備検索対象として記憶するユニーク文字列抽出手段、をさらに備える（１）に記載の検索システム。
【００１４】
（３）の検索システムによれば、予備検索対象ＤＢは、検索対象ＤＢに記憶された文字列項目の内容（文字列）のうちの重複を排除したユニークな内容のみを記憶する。これにより、予備検索対象ＤＢに対する部分一致検索によりヒットする検索結果は、検索対象ＤＢに対する部分一致検索によりヒットする検索結果と同じであるため、（３）の検索システムによれば、検索対象ＤＢを直接部分一致検索した場合と同一の検索結果を得ることができる。その結果、検索対象の文字列項目の内容がユニークでないデータベース内の部分一致検索の処理負担を軽減することができ、高速な部分一致検索を実現することができる。
【００１５】
（４）  前記検索対象ＤＢ及び前記予備検索対象ＤＢは、前記検索対象の文字列項目の内容及び前記予備検索対象の文字列項目の内容のうち前記検索対象の文字列項目の内容と同一の内容を同一の識別番号を付して記憶し、前記予備検索実行手段は、前記部分一致検索の結果として得られた文字列項目の内容に対応付けられた識別番号を出力し、前記本検索実行手段は、前記予備検索実行手段が出力した前記識別番号を用いて前記完全一致検索を実行する、（１）から（３）の何れかに記載の検索システム。
【００１６】
（４）の検索システムによれば、予備検索対象ＤＢに比べ大容量の検索対象ＤＢに対して、文字列に対する検索ではなく、数値に対する検索を行うため、本検索（完全一致検索）の処理負担をより軽減することができる。
【００１７】
（５）  前記部分一致検索を行う複数の予備検索サーバ、及び前記完全一致検索を実行する本検索サーバにより構成され、複数の前記予備検索サーバが、それぞれ重複が排除された前記文字列項目の内容を記憶する前記予備検索対象ＤＢと、それぞれが備える前記予備検索対象ＤＢを参照して、前記部分一致検索を実行する前記予備検索実行手段と、を備え、前記本検索サーバが、前記予備検索サーバによる前記部分一致検索の結果に基づく、前記完全一致検索を実行する前記本検索実行手段を備える、（１）から（４）の何れかに記載の検索システム。
【００１８】
（５）の検索システムによれば、予備検索（部分一致検索）を複数の予備検索サーバで実行するため、予備検索の処理負担を軽減することができる。また、検索対象ＤＢの容量が増加したとしても、予備検索サーバを増やすというハードウェアの追加といった簡易な方法のみで対応することができる。
【００１９】
（６）  部分一致検索の目的となる文字列項目を含む複数の項目を含んで構成される複数のレコードを検索対象として記憶する検索対象ＤＢと、文字列項目を含んで構成される複数のレコードを予備検索対象として記憶する予備検索対象ＤＢであって、前記文字列項目の内容が前記予備検索対象として意味をなす内容である予備検索対象ＤＢと、を備えるコンピュータが実行する、前記予備検索対象ＤＢに記憶された前記予備検索対象について、所定の検索文字列を用いて部分一致検索を実行するステップと、前記部分一致検索の結果得られた文字列項目の内容のみを検索するための完全一致検索の検索条件式を生成するステップと、生成された前記検索条件式に基づいて、前記検索対象ＤＢに記憶された検索対象に対する完全一致検索を実行するステップと、を含む方法。
【００２０】
（６）の方法によれば、（１）の検索システムと同様の効果を奏する。
【発明の効果】
【００２１】
本発明によれば、検索対象の文字列項目の内容がユニークでないデータベース内の部分一致検索の処理負担を軽減し、高速な部分一致検索を実現することができる。
【図面の簡単な説明】
【００２２】
【図１】第１実施形態の検索システムの機能構成を示すブロック図である。
【図２】上記実施形態の検索対象ＤＢを示す図である。
【図３】上記実施形態の予備検索対象ＤＢを示す図である。
【図４】上記実施形態の検索システムの動作を示す図である。
【図５】上記実施形態の検索システムの動作を示す図である。
【図６】上記実施形態の検索システムの処理の流れを示すフローチャートである。
【図７】上記実施形態の検索システムの処理の流れを示すフローチャートである。
【図８】上記実施形態の検索システムのシステム構成の一例を示す図である。
【図９】第２実施形態の検索システムの機能構成を示すブロック図である。
【図１０】上記実施形態の予備検索対象ＤＢを示す図である。
【図１１】上記実施形態の検索システムの動作を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態について図面を参照して説明する。
【００２４】
［第１実施形態］
初めに、本発明の第１実施形態の検索システム１について、図１〜図８を参照して説明する。
【００２５】
［検索システム１の構成］
図１を参照して、本発明の検索システム１の構成について説明する。
検索システム１は、ユニーク文字列抽出手段１１と、部分一致検索受付手段１２と、予備検索実行手段１３と、検索条件変換手段１４と、本検索実行手段１５と、検索対象ＤＢ１０１と、予備検索対象ＤＢ１０２と、を含んで構成される。
【００２６】
ユニーク文字列抽出手段１１は、所定のタイミングで、検索対象の文字列項目の内容がユニークでない検索対象ＤＢ１０１から重複を排除して検索対象の文字列項目の内容を抽出し、すなわち、検索対象ＤＢ１０１に記憶される検索対象の文字列項目からユニークな内容（文字列）を抽出し、当該内容を予備検索対象ＤＢ１０２に記憶する。ここで、「所定のタイミング」は、任意のタイミングとすることができ、一例としては、検索対象ＤＢ１０１が更新されるたびに実行することとしてもよく、また、任意に定められた周期的に実行することとしてもよい。このとき、ユニーク文字列抽出手段１１は、文字列項目の重複する内容の排除を検索対象ＤＢ１０１の更新（追加）に伴う差分についてのみ逐次実行していくことが好適である。
【００２７】
検索対象ＤＢ１０１は、部分一致検索の目的となる文字列項目を含む複数の項目を含んで構成されるレコードを複数記憶するデータベースである。ここで、本実施形態では検索対象ＤＢ１０１について、検索ログを例にとり説明する。なお、検索対象ＤＢ１０１は、検索ログに限られるものではなく、その内容がユニークでない文字列項目を含む可能性のあるデータベースであればよい。
図２を参照して、検索対象ＤＢ１０１（検索ログ）は、複数のレコード（レコード１０１Ａ，１０１Ｂ，１０１Ｃなど）を記憶する。レコードは、複数の項目、すなわち、項目「検索クエリ」「ｂｃｏｏｋｉｅ」「ｄａｔｅｔｉｍｅ」などの様々な項目、を含み、その一部に文字列項目（例えば、「検索クエリ」や「ｂｃｏｏｋｉｅ」など）を含む。「検索クエリ」は、ユーザにより入力された検索キーワードを示し、「ｂｃｏｏｋｉｅ」は、検索を行ったユーザ（ユーザ端末）を識別するための情報を示し、「ｄａｔｅｔｉｍｅ」は、検索を行った日時を示す。以下においては、「検索クエリ」を検索対象の文字列項目として本実施形態について説明する。
ここで、詳しくは後述するが、検索対象ＤＢ１０１では、検索対象の文字列項目に対応付けて、当該文字列項目の内容を識別する識別情報を記憶しておくことが好ましい、図２を参照して、検索対象ＤＢ１０１は、検索対象の文字列項目「検索クエリ」に項目「クエリＩＤ」を対応付けて記憶している。なお、「クエリＩＤ」は、検索ログ生成時に「検索クエリ」に応じて自動的に付与される。
検索対象ＤＢ１０１（検索ログ）は、ユーザによる検索操作により適宜更新されるため、「検索クエリ」や「ｂｃｏｏｋｉｅ」などの任意の項目について重複が生じ得る。例えば、レコード１０１Ａ，１０１Ｃは、項目「検索クエリ」の内容が「ソフトウェア」で同一（重複）であり、また、レコード１０１Ａ，１０１Ｂ，１０１Ｄは、項目「ｂｃｏｏｋｉｅ」の内容が「５４ｙｙｆ５」で同一である。
【００２８】
予備検索対象ＤＢ１０２は、検索対象ＤＢ１０１に含まれる検索対象の文字列項目の内容（文字列）のうち重複を排除したユニークな内容及び当該内容に対応付けられた識別情報を予備検索対象として記憶する。図２及び３を参照して、検索対象ＤＢ１０１では、レコード１０１Ａ，１０１Ｃのように重複する内容「ソフトウェア」を記憶していたのに対し、予備検索対象ＤＢ１０２では、文字列項目の内容の重複が排除されている。
このように、第１実施形態の検索システム１では、検索対象ＤＢ１０１に含まれる検索対象の文字列項目の内容のうち重複を排除したユニークな内容が「予備検索対象として意味をなす内容」となる。
なお、Ｗｅｂ上の検索サービスでは、ユーザのタイプミスなどにより意味をなさない語に基づく検索が行われる場合がある。このような場合、ユニーク文字列抽出手段１１は、検索対象ＤＢ１０１に記憶されている意味をなさない語を予備検索対象ＤＢ１０２に抽出しないこととしてもよい。
【００２９】
図１に戻り、部分一致検索受付手段１２は、検索対象ＤＢ１０１に含まれる文字列項目に対するユーザからの部分一致検索要求、すなわち、所定の検索文字列を含む部分一致検索の指定を受け付ける。
【００３０】
予備検索実行手段１３は、ユーザから受け付けた所定の検索文字列を用いて、予備検索対象ＤＢ１０２に記憶された予備検索対象に対する部分一致検索（予備検索）を実行し、その検索結果を検索条件変換手段１４に提供する。なお、予備検索実行手段１３による検索結果は、部分一致検索によりヒットした文字列項目の内容（文字列）であってもよく、当該内容に対応付けられた識別情報（数字）であってもよい。
【００３１】
検索条件変換手段１４は、予備検索実行手段１３から提供された検索結果に基づいて、検索対象ＤＢ１０１に対する完全一致検索の検索条件式を生成する。具体的には、検索条件変換手段１４は、ユーザから受け付けた所定の検索文字列を含むという検索条件式（部分一致検索条件式）を、予備検索実行手段１３による部分一致検索の結果得られた文字列項目の内容のみを検索するという検索条件式（完全一致検索条件式）に変換する。
ここで、完全一致検索条件式は、文字列項目の内容（文字列）を検索するための条件式であってもよいが、当該内容に対応付けられた識別情報（数字）を検索するための条件式である方が好適な場合がある。一般的に、文字列に対する検索より数字に対する検索の方が処理負担が少ないためであり、また、大容量の検索対象ＤＢ１０１に対する検索に適しているためである。
【００３２】
本検索実行手段１５は、検索条件変換手段１４により生成された完全一致検索条件式に基づいて、検索対象ＤＢ１０１に対する完全一致検索を実行する。
【００３３】
［検索システム１のハードウェア構成］
以上説明した検索システム１のハードウェアは、１又は複数の一般的なコンピュータによって構成することができる。一般的なコンピュータは、例えば、制御部として、中央処理装置（ＣＰＵ）を備える他、記憶部として、メモリ（ＲＡＭ、ＲＯＭ）、ハードディスク（ＨＤＤ）及び光ディスク（ＣＤ、ＤＶＤなど）を、ネットワーク通信装置として、各種有線及び無線ＬＡＮ装置を、表示装置として、例えば、液晶ディスプレイ、プラズマディスプレイなどの各種ディスプレイを、入力装置として、例えば、キーボード及びポインティング・デバイス（マウス、トラッキングボールなど）を適宜備え、これらは、バスラインにより接続されている。このような一般的なコンピュータにおいて、ＣＰＵは、検索システム１を統括的に制御し、各種プログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、本発明に係る各種機能を実現している。
【００３４】
［検索システム１の動作］
続いて、図４及び図５を参照して、検索システム１の動作について説明する。
【００３５】
初めに、図４を参照して、検索対象ＤＢ１０１から予備検索対象ＤＢ１０２へのユニーク文字列の抽出について説明する。
ユニーク文字列抽出手段１１は、所定のタイミングで、検索対象ＤＢ１０１にアクセスし、検索対象ＤＢ１０１に含まれる検索対象の文字列項目の内容を重複を排除して抽出し、抽出した内容を予備検索対象ＤＢ１０２に記憶する。
一例として、検索対象ＤＢ１０１には検索対象の項目「検索クエリ」の内容「ソフトウェア」が重複して記憶されているが、ユニーク文字列抽出手段１１は、１つ目の「ソフトウェア」のみを予備検索対象ＤＢ１０２に記憶し、２つ目以降の「ソフトウェア」を予備検索対象ＤＢ１０２に記憶しない。
これにより、予備検索対象ＤＢ１０２には、検索対象ＤＢ１０１に記憶された検索対象の文字列項目の内容の全てが重複を排除した状態で記憶されることになる。このような予備検索対象ＤＢ１０２を用いることで、検索対象の文字列項目の内容がユニークでない検索対象ＤＢ１０１に対する部分一致検索の処理負担を軽減することができる。なお、文字列項目の内容の重複の排除には、文字列項目の内容を識別する情報（クエリＩＤ）を用いると好適な場合がある。
【００３６】
続いて、図５を参照して、ユーザからの部分一致検索要求に基づいく部分一致検索について説明する。図５では、ユーザから項目「検索クエリ」について「ソフト」を含む文字列の部分一致検索要求がなされている。
【００３７】
部分一致検索受付手段１２が、ユーザからの部分一致検索要求を受け付けると、予備検索実行手段１３は、項目「検索クエリ」の内容の重複を排除した予備検索対象ＤＢ１０２に対して、部分一致検索要求に基づく部分一致検索を行う。
図３に示す予備検索対象ＤＢ１０２を参照すると、項目「検索クエリ」のうち「ソフト」を含む内容（文字列）は、「ソフトウェア」「フリーソフト」「ソフトクリーム」「ソフト」「ソフトウェアー」「会計ソフト  カスタマイズ  セキュリティ」などであり、これらの「クエリＩＤ」は、「２１」「２３」「２」「３」「４３」「１１」などである。そのため、予備検索実行手段１３は、検索結果として「クエリＩＤ：２１、２３、２、３、４３、１１・・・」を検索条件変換手段１４に提供する。
【００３８】
続いて、検索条件変換手段１４は、部分一致検索受付手段１２が受け付けた部分一致検索の検索条件式（項目「検索クエリ」について「ソフト」を含む文字列を検索する式）を、予備検索実行手段１３による部分一致検索の検索結果のみを検索するという完全一致検索の検索条件式（「クエリＩＤ：２１、２３、２、３、４３、１１・・・」のみを検索する式）に変換する。
なお、検索システム１では、検索条件変換手段１４が生成した完全一致の検索条件式について、ユーザからの変更操作を受け付けることとしてもよい。例えば、ユーザが「ソフト」を含む文字列の部分一致検索を望んだ場合、「ソフトウェア」や「会計ソフト」などに加え、「ソフトクリーム」なども検索結果としてヒットする。このとき、ユーザがソフトウェア関係の文字列の検索を望んでいた場合には、「ソフトクリーム」などのソフトウェアとは関係ない文字列について、検索対象ＤＢ１０１に対する完全一致検索を行う必要がない。そこで、検索システム１では、生成した完全一致の検索条件式をユーザに提示するとともに、ユーザから生成した検索条件式に対する変更操作を受け付け、この変更操作に基づいて検索条件式を変更することとしてもよい。なお、ユーザに対する提示及びユーザからの変更操作の受け付けは、「クエリＩＤ」で行うこととしてもよく「検索クエリ」で行うこととしてもよい。
【００３９】
その後、本検索実行手段１５は、この完全一致検索の検索条件式に基づいて、検索対象ＤＢ１０１に対して完全一致検索を実行し、その結果をユーザに対して返信する。
【００４０】
ここで、予備検索対象ＤＢ１０２には、検索対象ＤＢ１０１に記憶された検索対象の文字列項目の内容のうち重複を排除した内容が記憶されているため、予備検索対象ＤＢ１０２に対する部分一致検索の結果得られた「クエリＩＤ」の種別は、検索対象ＤＢ１０１に対して直接部分一致検索した場合に得られる「クエリＩＤ」の種別と同一である。そのため、検索条件変換手段１４により変換された検索条件式に基づく検索対象ＤＢ１０１に対する完全一致検索と、ユーザから受け付けた部分一致検索の検索条件式に基づく検索対象ＤＢ１０１に対する部分一致検索とでは同一の検索結果が得られる。
これにより、検索システム１では、ユニークでない文字列項目の内容を含む膨大な容量の検索対象ＤＢ１０１から部分一致検索の検索結果を得たい場合であっても、この検索対象ＤＢ１０１に対しては処理負担の小さい完全一致検索のみを実行すればよく、処理負担の大きい部分一致検索を実行する必要がない。その結果、検索対象の文字列項目の内容がユニークでないデータベース内の部分一致検索の処理負担を軽減することができ、高速な部分一致検索を実現することができる。
【００４１】
特に、大規模なサービスを提供するインターネット事業者では、扱うデータ量が膨大になるため、本発明の検索システム１による部分一致検索の処理負担の軽減は顕著になる。例えば、Ｗｅｂ上の検索サービスでは、１日あたりのユニーク検索クエリ数は約２０００万種類であるが、これらの検索クエリの多くは、１日のうちに複数回入力され、１日に数万回以上入力される検索クエリも多数存在する。その結果、ユニーク検索クエリ数では約２０００万種類しかないものの個々の検索クエリで膨大な量の重複が生じるため、検索サービス提供者が取得する検索ログは、１日あたり圧縮した状態で数ギガバイト以上にのぼる。
このように膨大な量の重複が生じている検索対象に対して部分一致検索を行ったのでは、膨大な時間がかかってしまうのに対して、本発明の検索システム１のように、初めに、ユニーク検索クエリに対してのみ部分一致検索を行っておき、その後、その検索結果に基づいて膨大な量の検索ログに対して完全一致検索を行うことで、処理負担を軽減することができ、高速な部分一致検索を実現することができる。
【００４２】
［検索システム１の処理］
続いて、図６及びを図７参照して、検索システム１の処理について説明する。
【００４３】
［ユニーク文字列抽出処理］
初めに、図６を参照して、検索システム１によるユニーク文字列抽出処理について説明する。
Ｓ１：ユニーク文字列抽出手段１１は、検索対象ＤＢ１０１から文字列項目の内容を抽出するタイミングであるか否かを判定する。このとき、抽出するタイミングでない場合には、ユニーク文字列抽出手段１１は、処理を終了する。
Ｓ２：他方、抽出するタイミングである場合には、ユニーク文字列抽出手段１１は、検索対象ＤＢ１０１に含まれる項目のうち検索対象の文字列項目の内容を重複を排除して抽出し（ユニーク文字列を抽出し）、当該内容を予備検索対象ＤＢ１０２に記憶する。ここで、ユニーク文字列抽出手段１１によるユニーク文字列の抽出は、前回抽出時の検索対象ＤＢ１０１と今回の検索対象ＤＢ１０１との更新（追加）に伴う差分についてのみ行うこととしてもよい。
【００４４】
［部分一致検索実行処理］
続いて、図７を参照して、検索システム１による部分一致検索実行処理について説明する。
Ｓ１１：初めに、部分一致検索受付手段１２は、検索対象ＤＢ１０１に含まれる文字列項目に対するユーザからの部分一致検索要求、すなわち、所定の検索文字列を含む部分一致検索の指定を受け付ける。
Ｓ１２：続いて、予備検索実行手段１３は、図６のユニーク文字列抽出処理で生成された予備検索対象ＤＢ１０２に対して予備検索を実行する。すなわち、予備検索実行手段１３は、予備検索対象ＤＢ１０２に対して、部分一致検索要求に基づく部分一致検索を実行する。予備検索実行手段１３は、予備検索対象ＤＢ１０２に対する予備検索の実行結果を検索条件変換手段１４に提供する。
【００４５】
Ｓ１３：検索条件変換手段１４は、予備検索実行手段１３から提供された検索結果に基づいて、検索対象ＤＢ１０１に対する完全一致検索の検索条件式を生成する。具体的には、検索条件変換手段１４は、ユーザから受け付けた所定の検索文字列を含むという検索条件式（部分一致検索条件式）を、予備検索実行手段１３による部分一致検索の結果得られた文字列項目の内容のみを検索するという検索条件式（完全一致検索条件式）に変換する。
Ｓ１４：続いて、本検索実行手段１５は、検索条件変換手段１４により生成された完全一致検索条件式に基づいて、検索対象ＤＢ１０１に対する完全一致検索を実行し、その実行結果をユーザに対して提供し、処理を終了する。
【００４６】
［検索システム１のシステム構成］
続いて、本発明の検索システム１の好適なシステム構成の一例について図８を参照して説明する。
検索システム１は、検索対象ＤＢサーバ１１１と、本検索サーバ１１２と、複数の予備検索サーバ１１３と、を含んで構成される。
【００４７】
検索対象ＤＢサーバ１１１は、検索対象ＤＢ１０１を備え、この検索対象ＤＢ１０１から所定のタイミングでユニーク文字列を抽出して複数の予備検索サーバ１１３に振り分ける機能を有する。すなわち、検索対象ＤＢサーバ１１１は、ユニーク文字列抽出手段１１を備える。
本検索サーバ１１２は、ユーザから受け付けた部分一致検索要求に基づいて、複数の予備検索サーバ１１３に対して予備検索（部分一致検索）を実行させるとともに、その検索結果に基づいて完全一致検索の検索条件式を生成し、検索対象ＤＢ１０１に対する完全一致検索を実行し、その実行結果をユーザに対して提供する機能を有する。すなわち、本検索サーバ１１２は、部分一致検索受付手段１２、検索条件変換手段１４及び本検索実行手段１５を備える。
また、複数の予備検索サーバ１１３は、予備検索対象ＤＢ１０２を備え、本検索サーバ１１２からの要求に応じて予備検索対象ＤＢ１０２に対する予備検索（部分一致検索）を実行し、その実行結果を本検索サーバ１１２に返信する機能を有する。すなわち、予備検索サーバ１１３は、予備検索実行手段１３を備える。ここで、複数の予備検索サーバ１１３が備える予備検索対象ＤＢ１０２は、それぞれ重複が排除された文字列項目の内容を記憶する。すなわち、１の予備検索サーバ１１３の備える予備検索対象ＤＢ１０２に記憶された文字列と、他の予備検索サーバ１１３の備える予備検索対象ＤＢ１０２に記憶された文字列とは重複しない。
【００４８】
このようなシステム構成によれば、予備検索（部分一致検索）を複数の予備検索サーバ１１３で実行するため、予備検索の処理負担を軽減することができる。また、検索対象ＤＢ１０１の容量が増加したとしても、予備検索サーバ１１３を増やすというハードウェアの追加といった簡易な方法のみで対応することができ、好適である。
【００４９】
［第２実施形態］
次に、第２実施形態の検索システム２について、図９〜図１１を参照して説明する。なお、第１実施形態の検索システム１では、検索対象ＤＢ１０１から重複を排除したユニークな内容（文字列）を抽出し予備検索対象ＤＢ１０２に記憶することで、部分一致検索（予備検索）の対象となる予備検索対象を生成していたのに対し、第２実施形態の検索システム２では、システムの管理者が予め設定した内容（文字列）を予備検索対象ＤＢ２０２に記憶しておくことで、予備検索対象を生成する点で異なる。
【００５０】
［検索システム２の構成］
以下、第２実施形態の検索システム２の構成について説明する。なお、第１実施形態と同様の構成については、同一の符号を付し、その説明を省略する。
第２実施形態の検索システム２は、部分一致検索受付手段１２と、予備検索実行手段１３と、検索条件変換手段１４と、本検索実行手段１５と、検索対象ＤＢ１０１と、検索クエリ受付手段２１と、予備検索対象ＤＢ２０２と、を含んで構成される。
【００５１】
検索クエリ受付手段２１は、ユーザにより入力された検索クエリを受け付け、受け付けた検索クエリを含む各種情報を検索対象ＤＢ１０１に記憶する。ここで、検索クエリ受付手段２１は、受け付けた検索クエリにクエリＩＤを設定して検索対象ＤＢ１０１に記憶するが、クエリＩＤの設定については、図１１で後述する。
【００５２】
予備検索対象ＤＢ２０２は、図１０に示すように文字列項目を含んで構成される複数のレコードを予備検索対象として記憶する。このとき、予備検索対象ＤＢ２０２に記憶されるレコードは、文字列項目の内容が各々異なる。すなわち、予備検索対象ＤＢ２０２に記憶されるレコードの文字列項目の内容は、全てユニークな内容である。なお、第２実施形態の予備検索対象ＤＢ２０２は、文字列項目の内容として予備検索対象として意味をなす内容を記憶し、これらの内容は、検索システム２の管理者により予め設定される。具体的には、検索システム２の管理者は、予備検索対象として意味をなす内容を必要十分に抽出し、これらの各々に固有の識別情報（クエリＩＤ）を付して、予備検索対象ＤＢ２０２に記憶する。
【００５３】
ここで、第２実施形態の検索システム２における「予備検索対象として意味をなす内容」は、予備検索対象の種別によって異なる。
例えば、予備検索対象が検索クエリのような文字データである場合には、語として意味をなす単語が「予備検索対象として意味をなす内容」となり、語として意味をなさない文字データが「予備検索対象として意味をなさない内容」となる。例えば、「ソフトクリーム」は語として意味をなす単語であり、「ソフトクリーメ」は語として意味をなさない文字データである。
また、予備検索対象がｂｃｏｏｋｉｅのように所定桁数の英数字である場合には、所定桁数の英数字が「予備検索対象として意味をなす内容」となり、所定桁数以外の英数字が「予備検索対象として意味をなさない内容」となる。例えば、予備検索対象が６桁の１６進数で表記される文字列である場合には、５桁や７桁などの６桁以外の１６進数の文字列は「予備検索対象として意味をなさない内容」となる。
【００５４】
第２実施形態の検索システム２では、「予備検索対象として意味をなさない内容」については、予備検索対象ＤＢ２０２に記憶することなく、部分一致検索（予備検索）すら行わない。そのため、第２実施形態の検索システム２では、部分一致検索（予備検索）の対象を最小限にとどめることができ、部分一致検索（予備検索）の処理負担を軽減することができる。
【００５５】
なお、上述のように予備検索実行手段１３による部分一致検索（予備検索）の実行結果の出力や、その後の完全一致検索（本検索）の実行は、クエリＩＤに基づいて行うことが好ましい。この点、第２実施形態では、クエリＩＤの管理方法が第１実施形態と異なるため、図１１を参照して、予備検索対象が検索クエリである場合を例にとって、クエリＩＤの管理方法について説明する。
【００５６】
第２実施形態の検索システム２では、管理者により予め単語が用意され、これら単語を識別するクエリＩＤも管理者により予め設定される。そこで、検索クエリ受付手段２１は、ユーザから検索クエリを受け付けると、予備検索対象ＤＢ２０２や図示しないクエリＩＤ対応テーブルから当該検索クエリに対応するクエリＩＤを取得し、検索クエリとクエリＩＤとを対応付けて検索対象ＤＢ１０１に記憶する。
具体的には、図１１を参照して、ユーザから検索クエリとして「ソフト」と受け付けると、検索クエリ受付手段２１は、予備検索対象ＤＢ２０２を参照し、単語「ソフト」に対応するクエリＩＤ「３２８」を取得する。そして、検索クエリ受付手段２１は、取得したクエリＩＤ「３２８」を検索クエリ「ソフト」に付して、検索対象ＤＢ１０１に記憶する。
【００５７】
これにより、第２実施形態の検索システム２においても、クエリＩＤに基づいて完全一致検索（本検索）を行うことができる。
なお、ユーザから受け付けた検索クエリに対応する単語が予備検索対象ＤＢ２０２に記憶されていない場合には、検索クエリ受付手段２１は、当該検索クエリに対してクエリＩＤを付すことなく、検索対象ＤＢ１０１に記憶する。
【００５８】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【００５９】
すなわち、本実施形態では、検索ログに含まれる項目「検索クエリ」を検索対象の文字列項目として説明したが、本発明はこれに限られるものではなく、他の文字列項目についても適用可能である。
また、図８に示すシステム構成において、複数の予備検索サーバ１１３の備える予備検索対象ＤＢ１０２では、それぞれ重複しない文字列を記憶することとしているが、システムの安定性を考慮した文字列項目の重複を排除するものではない。また、図８に示すシステム構成は、第１実施形態の検索システム１だけでなく、第２実施形態の検索システム２についても適用可能である。
また、本実施形態の予備検索対象ＤＢ１０２，２０２は、重複しないユニークな文字列を記憶することとしているが、複数種類の文字列のうち極少数の文字列を重複させ予備検索対象ＤＢ１０２，２０２に記憶しても本発明の効果は十分に奏するものであり、本発明の適用を免れるものではない。
【符号の説明】
【００６０】
１，２  検索システム
１１  ユニーク文字列抽出手段
１２  部分一致検索受付手段
１３  予備検索実行手段
１４  検索条件変換手段
１５  本検索実行手段
１０１  検索対象ＤＢ
１０２，２０２  予備検索対象ＤＢ
２１  検索クエリ受付手段
【図１】
0005178813.tif 000002
【図２】
0005178813.tif 000003
【図３】
0005178813.tif 000004
【図４】
0005178813.tif 000005
【図５】
0005178813.tif 000006
【図６】
0005178813.tif 000007
【図７】
0005178813.tif 000008
【図８】
0005178813.tif 000009
【図９】
0005178813.tif 000010
【図１０】
0005178813.tif 000011
【図１１】
0005178813.tif 000012