(57)【要約】【課題】キーワードを含む検索論理式を利用した情報検索に要する時間を短縮する。【解決手段】仲介装置１は、複数の利用者から検索要求を受け付け、各検索要求に含まれているキーワードを抽出する。検索装置２は、抽出された各キーワードについて検索を実行する。仲介装置１は、検索要求の検索論理式を簡略化することにより、仮論理式を生成する。仮論理式は、ＯＲ条件のみで記述されている。仲介装置１は、キーワード検索の結果に応じて、各仮論理式の論理を評価する。仮論理式の評価結果は、それぞれ１ビットの情報として仮ヒットテーブル２２に書き込まれる。評価装置４は、仮ヒットテーブル２２を参照し、ヒットした仮論理式に対応する検索論理式についてのみ論理を評価する。【選択図】図１
2008234068.tif 000002
【特許請求の範囲】
【請求項１】
複数の検索論理式から検索要素を抽出する抽出部と、
前記検索要素についてデータベース検索を行う検索部と、
前記複数の検索論理式をそれぞれ簡略化して、前記複数の検索論理式に対応する複数の仮論理式を生成する簡略化部と、
前記検索部の検索結果に応じて前記仮論理式について論理評価を行う第１の評価部と、
前記第１の評価部において第１評価値と評価された仮論理式に対応する検索論理式について論理評価を行う第２の評価部と
を有する情報検索装置。
【請求項２】
請求項１に記載の情報検索装置であって、
前記簡略化部は、前記検索論理式のＯＲ条件だけで規定した仮論理式に変換する
ことを特徴とする情報検索装置。
【請求項３】
請求項１又は２に記載の情報検索装置であって、
前記複数の仮論理式をそれぞれ１ビットの仮結果情報で管理する管理部をさらに備え、
前記第１の評価部は、前記複数の仮論理式により規定されている検索条件が満たされているか否かに応じて、前記管理部で管理された対応する仮結果情報を更新し、
前記第２の評価部は、前記管理部を参照し、前記検索条件が満たされている仮論理式に対応する検索論理式についてのみ論理評価を行う
ことを特徴とする情報検索装置。
【請求項４】
検索論理式から検索要素を抽出する抽出部と、
前記検索要素についてデータベース検索を行う検索部と、
前記検索論理式を簡略化し、仮論理式を生成する簡略化部と、
前記検索部の検索結果に応じて前記仮論理式について論理評価を行う第１の評価部と、
前記第１の評価部において前記仮論理式が第１評価値と評価されたときに対応する検索論理式について論理評価を行う第２の評価部と
を有する情報検索装置。
【請求項５】
請求項１又は２に記載の情報検索装置であって、
前記第２の評価部は、前記第１の評価部において第２評価値と評価された仮論理式に対応する検索論理式についての論理評価を行わず、前記第１の評価部において前記仮論理式が前記第１評価値と評価されたときに対応する前記検索論理式のみについて論理評価を行う
ことを特徴とする情報検索装置。
【請求項６】
コンピュータを、
複数の検索論理式から検索要素を抽出する抽出部、前記検索要素ついてデータベース検索を行う検索部、前記複数の検索論理式をそれぞれ簡略化して、前記複数の検索論理式に対応する複数の仮論理式を生成する簡略化部、前記検索部の検索結果に応じて前記仮論理式について論理評価を行う第１の評価部、および前記第１の評価部において第１評価値と評価された仮論理式に対応する検索論理式について論理評価を行う第２の評価部、
として機能させるための情報検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キーワードを含む検索論理式を利用してデータベースを検索する技術に係わる。
【背景技術】
【０００２】
近年、様々な分野において情報量が爆発的に増加している。そして、分野によっては、情報量はギガバイトオーダからテラバイトオーダに達している。このため、このような膨大な情報の中から所望の情報を捜し出すことが困難になりつつある。
【０００３】
所望の情報を検索する際には、しばしば、検索論理式（または、単に「検索式」）が生成される。例えば、Ｗｅｂ上でサイトを検索するときには、複数のキーワードが入力されることが多い。そして、入力された複数のキーワードのすべてを含むサイトを検索するためには、ＡＮＤ論理の検索式が生成される。また、入力された複数のキーワードのいずれか１つを含むサイトを検索するためには、ＯＲ論理の検索式が生成される。さらに、ＡＮＤ論理およびＯＲ論理の双方を含む複雑な検索式が生成されることもある。
【０００４】
また、検索利用者の増加により、検索エンジンには膨大な数の検索要求が与えられる。このため、検索エンジンは、多数の検索要求に対して高速に応答することが求められる。ここで、検索処理は、通常、検索論理式に含まれている各キーワードを検索する処理、およびキーワード検索の結果に基づいて検索論理式を評価する処理を含む。「検索論理式の評価」とは、検索対象の各文書等について、検索論理式によって表される条件を満足しているか否かを判断する処理を意味する。例えば、検索論理式「ａ＆ｂ」についての評価においては、検索対象の各文書等について、キーワードａおよびキーワードｂの双方を含んでいるか否かが判断される。そして、キーワード検索の高速化についての技術は様々な提案がなされている。しかし、検索論理式の評価については、その処理時間を大幅に短縮する技術は提案されておらず、改善の余地が大きい。
【０００５】
図１０は、従来の情報検索装置の一例を示す図である。図１０に示す情報検索装置は、仲介装置１０１、検索装置１０２、評価装置１０３を備える。仲介装置１０１は、各利用者により入力される検索論理式を受け付け、クエリテーブル１０４を作成すると共に、検索装置１０２に検索要求を送る。クエリテーブル１０４には、受信した検索論理式に含まれているキーワードが登録され、各キーワードがそれぞれデータベース検索においてヒットしたか否かを管理する。検索要求は、受信した検索論理式に含まれているキーワードを列挙したクエリリストを含む。
【０００６】
検索装置１０２は、データベース１０５にアクセスしてクエリリストに載っている各キーワードについて検索を行い、検索結果を仲介装置１０１に返送する。そして、仲介装置１０１は、この検索結果に従ってクエリテーブル１０４を更新する。評価装置１０３は、クエリテーブル１０４を参照し、各検索論理式を評価する。例えば、Ａさんにより入力された検索論理式は「赤＆車」である。この検索論理式は、「「赤」を含み、且つ、「車」を含む。」を意味する。しかし、図１０に示す実施例では、「赤」はヒットしているが、「車」はヒットしていない。よって、この検索論理式は、「偽（該当情報なし）」と評価される。一方、Ｃさんにより入力された検索論理式は「海＆山」である。この検索論理式は、「「海」を含むか、或いは、「山」を含む。」を意味する。よって、この検索論理式は、「真（該当情報あり）」と評価される。そして、この評価結果（あるいは、この検索結果から得られる情報）が各利用者に提供される。
【０００７】
図１１は、図１０に示す情報検索装置の動作を示すフローチャートである。ステップＳ１０１では、与えられた検索論理式に含まれているキーワードを抽出し、クエリテーブルを作成する。ステップＳ１０２では、クエリテーブルに登録したキーワードについてデータベースを検索する。ステップＳ１０３では、キーワード検索の結果に応じてクエリテーブルを更新する。そして、ステップＳ１０４において、各検索論理式について論理評価を行う。
【０００８】
このように、図１０に示す情報検索装置においては、すべての検索論理式について論理評価を行っていた。このため、検索時間の短縮化には限界があった。なお、情報検索時間を短縮するための技術として、例えば、特許文献１、２が知られている。
【０００９】
特許文献１に記載の情報検索装置は、複数の検索論理式の和集合を簡単化することによって最適化検索論理式を生成し、その最適化検索論理式を用いて必要な情報を検索する。そして、特許文献１においては、実施例として、利用者Ａ、Ｂ、Ｃの検索論理式がそれぞれ「ａ＋ｂ」「ａｂ＋ｃ」「ａ＋ｂ＋ｃ」である場合が記載されている。この場合、最適化検索論理式は、下記のようにして得られる。
（ａ＋ｂ）＋（ａｂ＋ｃ）＋（ａ＋ｂ＋ｃ）
→ａ＋ａｂ＋ｂ＋ｃ＋（ａ＋ｂ＋ｃ）
→ａ＋ｂ＋ｃ＋（ａ＋ｂ＋ｃ）
→ａ＋ｂ＋ｃ
そして、最適化検索論理式「ａ＋ｂ＋ｃ」を用いて利用者Ａ〜Ｃのための検索結果を取得し、その後、その検索結果の中から各利用者Ａ〜Ｃについての個別検索が行われる。
【００１０】
特許文献２には、検索論理式を構成する各キーワードの出現頻度を予測し、出現頻度の低いキーワードから検索処理を行うことによって処理量を減らす技術が記載されている。例えば、与えられた検索論理式が「ａ＆ｂ」であり、キーワードａの出現頻度よりもキーワードｂの出願頻度の方が低いものとする。この場合、特許文献２に記載の手順によれば、まず、キーワードｂについて検索処理が実行され、その後に、キーワードｂについてヒットした文書の中からキーワードａを含む文書が検索される。
【特許文献１】特開平１−１４９１２５号公報
【特許文献２】特開昭５７−１６６６６８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来の検索方法（特許文献１、２に記載の方法を含む）においては、検索すべきデータベースに蓄積されている情報の量が膨大である場合、検索論理式が複雑である場合、あるいは同時に処理すべき検索要求の数が多い場合には、検索論理式の評価を効率的に行うことができない。このため、個々のキーワードについての検索時間が短縮されても、検索論理式の評価に要する時間が相対的に長くなり、利用者がキーワードを入力したときからその検索結果が得られるまでに要する時間がさほど短縮されていない。
【００１２】
本発明の目的は、キーワードを含む検索論理式を利用した情報検索において、その検索時間を短縮するための装置および方法を提供することである。
【課題を解決するための手段】
【００１３】
本発明の情報検索装置は、複数の検索論理式から検索要素を抽出する抽出部と、前記検索要素についてデータベース検索を行う検索部と、前記複数の検索論理式をそれぞれ簡略化して、前記複数の検索論理式に対応する複数の仮論理式を生成する簡略化部と、前記検索部の検索結果に応じて前記仮論理式について論理評価を行う第１の評価部と、前記第１の評価部において第１評価値と評価された仮論理式に対応する検索論理式について論理評
価を行う第２の評価部と、を有する。
【００１４】
本発明においては、すべての検索論理式について論理評価を行うのではなく、対応する仮論理式が第１の評価値と評価された検索論理式についてのみ論理評価を行うので、論理評価に要する時間が短縮される。なお、仮論理式は、検索論理式を簡略化することにより得られるものであり、その論理評価は簡単である。
【００１５】
上記情報検索装置において、前記簡略化部は、前記検索論理式のＯＲ条件だけで規定した仮論理式に変換するようにしてもよい。ＯＲ条件だけで記述された仮論理式は、その式の中に含まれているキーワードがヒットしたか否かをチェックするだけで、論理を評価できる。
【００１６】
上記情報検索装置において、前記複数の仮論理式をそれぞれ１ビットの仮結果情報で管理する管理部をさらに備えるようにしてもよい。この場合、前記第１の評価部は、前記複数の仮論理式により規定されている検索条件が満たされているか否かに応じて、前記管理部で管理された対応する仮結果情報を更新する。また、前記第２の評価部は、前記管理部を参照し、前記検索条件が満たされている仮論理式に対応する検索論理式についてのみ論理評価を行う。
【発明の効果】
【００１７】
本発明によれば、キーワードを含む検索論理式を利用した情報検索において、その検索時間が短縮される。
【発明を実施するための最良の形態】
【００１８】
図１は、本発明に係る実施形態の情報検索装置の構成を示す図である。図１に示すように、実施形態の情報検索装置は、仲介装置１、検索装置２、仮評価装置３、評価装置４を含んで構成される。なお、図１においては、実施形態の情報検索装置の要部のみが描かれている。
【００１９】
この情報検索装置は、与えられた検索要求に応じてデータベース１１を検索する。データベース１１は、１または複数の情報記録装置から構成されており、様々な情報が蓄積されている。以下では、データベース１１に格納されている各検索対象を「レコード」と呼ぶことにする。なお、各「レコード」は、例えば、Ｗｅｂ上の１つのページ、或いは１つの文書に相当する。
【００２０】
仲介装置１は、各利用者により入力される検索要求を受け付ける。検索要求は、１または複数のキーワードを含んでいる。これらのキーワードは、利用者の指示に応じて、ＯＲ条件および／またはＡＮＤ条件を利用した論理式を構成している。以下、このようにして生成される論理式を「検索論理式」と呼ぶことにする。なお、検索要求がキーワードを１つだけ含む場合には、その１つのキーワードが検索論理式となる。
【００２１】
この実施例では、検索論理式として、Ａさん、Ｂさん、Ｃさんからそれぞれ「赤＆車」「筆orペン＆毛」「海or山」が入力されている。「赤＆車」は、「「赤」を含み、且つ、「車」を含む。」を意味する。「筆orペン＆毛」は、「「筆」を含むか、或いは、「ペン」及び「毛」の双方を含む。」を意味する。「海or山」は、「「海」を含むか、或いは、「山」を含む。」を意味する。
【００２２】
仲介装置１は、予め決められた所定数の検索要求を並列に処理する。図１に示す実施例では、３つの検索要求（すなわち、３つの検索論理式）が並列に処理される。
仲介装置１は、並列に処理すべき複数の検索論理式からキーワードを抽出する。この実
施例では、７つのキーワード「赤」「車」「筆」「ペン」「毛」「海」「山」が抽出される。なお、検索論理式からキーワードを抽出する方法は、公知の技術で実現可能であるので、説明を省略する。そして、仲介装置１は、抽出したすべてのキーワードを含むクエリリストを生成して検索装置２へ送信する。
【００２３】
検索装置２は、データベース１１に格納されている各レコードに対して、キーワード検索を実行する。ここでは、ある１つのレコードについて検索を実行した場合について説明する。すなわち、検索対象レコードに上記７つのキーワードがそれぞれ含まれているか否かをチェックする。この実施例では、「赤」「海」「山」「毛」がヒットしたが、「車」「筆」「ペン」はヒットしていない。そして、検索装置２は、検索結果を仲介装置１へ返送する。なお、キーワード検索の方法は、特に限定されるものではなく、公知の任意の技術を利用することができる。
【００２４】
仲介装置１は、クエリテーブル２１を作成する。クエリテーブル２１には、検索論理式から抽出したキーワードが登録される。そして、登録された各キーワードについて、検索装置２による検索結果が書き込まれる。図１では、データベース１１においてヒットしたキーワード（赤、海、山、毛）に対して「○」印が書き込まれている。
【００２５】
また、仲介装置１は、各利用者により入力された検索論理式を簡略化することによりそれぞれ対応する仮論理式を生成する。以下、検索論理式Ｚ１から仮論理式Ｚ１’を生成する方法について説明する。ここでは、下記の検索論理式Ｚ１が与えられたものとする。
Z1=(((A1 or A2) and (A3 or A4 or A5) and A6) or (B1 and B2)) and (C1 or C2)
簡略化手順では、「Ｚ１＝１」となる必要条件を満たすように変換が行われる。具体的には、図２に示すように、ＡＮＤ条件で接続されたキーワードを削除することにより論理式を変形する。すなわち、「A1 or A2」に対して「A3 or A4 or A5」及び「A6」がそれぞれＡＮＤ条件で接続されている。よって、「A3 or A4 or A5」及び「A6」はいずれも削除される。また、「B1 and B2」に対して「C1 or C2」がＡＮＤ条件で接続されている。よって、「C1 or C2」も削除される。さらに、「B1」に対して「B2」がＡＮＤ条件で接続されている。よって、「B2」も削除される。この結果、下記の仮論理式Ｚ１’が得られる。Z1’=A1 or A2 or B1
このように、仮論理式Ｚ１’は、検索論理式Ｚ１内のＡＮＤ条件で接続されているキーワードを削除することにより得られる。よって、仮論理式Ｚ１’を満たすレコードの集合は、検索論理式Ｚ１を満たすレコードの集合をすべて包含する。そして、本発明では、この性質を利用して検索時間の短縮化を図る。すなわち、検索論理式Ｚ１を満たすレコードを抽出する際には、まず、仮論理式Ｚ１’を満たすレコードを抽出する。ここで、仮論理式Ｚ１’は、ＯＲ条件だけで記述されているので、各レコードがその論理を満たすか否かを判断することは容易である。続いて、仮論理式Ｚ１’を満たすレコードの集合の中で、検索論理式Ｚ１を満たすレコードを抽出する。このとき、検索対象の集合は、上述した仮論理式Ｚ１’によって小さくなっている。このため、検索論理式Ｚ１が複雑であっても、検索時間は短くなる。
【００２６】
上記簡略化により、Ａさんにより入力された検索論理式「赤＆車」は、仮論理式「赤」に変換される。また、Ｂさんにより入力された検索論理式「筆orペン＆毛」は、仮論理式「筆orペン」に変換される。ただし、Ｃさんにより入力された検索論理式「海＆山」は、ＡＮＤ条件を含んでいないので、仮論理式は検索論理式と同じである。
【００２７】
仲介装置１は、上述のようにして生成した仮論理式を管理するための仮ヒットテーブル２２を作成する。仮ヒットテーブル２２は、各仮論理式をそれぞれ１ビットの仮結果フラグで管理する。図１では、仮結果フラグを「○」「×」で表している。
【００２８】
上記構成のクエリテーブル２１および仮ヒットテーブル２２は、下記のようにして更新される。ここでは、ある１つのレコード（すなわち、データベース１１に格納されているある文書）についての処理を説明する。
【００２９】
（１）検索装置２は、文書中に「赤」が含まれていることを検出すると、その旨を仲介装置１に通知する。仲介装置１は、この通知を受け取ると、クエリテーブル２１において「赤」に対応するヒットフラグを設定し、仮ヒットテーブル２２において「Ａさん」に対応する仮結果フラグを設定する。図１では、「○」印は、フラグが設定されたことを示している。
【００３０】
（２）検索装置２は、文書中に「海」が含まれていることを検出すると、その旨を仲介装置１に通知する。仲介装置１は、この通知を受け取ると、クエリテーブル２１において「海」に対応するヒットフラグを設定し、仮ヒットテーブル２２において「Ｃさん」に対応する仮結果フラグを設定する。
【００３１】
（３）検索装置２は、文書中に「赤」が含まれていることを検出すると、その旨を仲介装置１に通知する。この場合、仲介装置１は、上記（１）と同様の処理を行う。
（４）検索装置２は、文書中に「山」が含まれていることを検出すると、その旨を仲介装置１に通知する。仲介装置１は、この通知を受け取ると、クエリテーブル２１において「山」に対応するヒットフラグを設定し、仮ヒットテーブル２２において「Ｃさん」に対応する仮結果フラグを設定する。
【００３２】
（５）検索装置２は、文書中に「毛」が含まれていることを検出すると、その旨を仲介装置１に通知する。仲介装置１は、この通知を受け取ると、クエリテーブル２１において「毛」に対応するヒットフラグを設定する。しかし、「毛」を含む仮論理式は存在しないので、仮ヒットテーブル２２は更新されない。
【００３３】
上記手順（１）〜（５）により、クエリテーブル２１および仮ヒットテーブル２２は、図１に示す状態に更新される。即ち、クエリテーブル２１において、「赤」「海」「山」「毛」に対して「１（○）」が設定され、「車」「筆」「ペン」に対して「０（無印）」が設定されている。また、仮ヒットテーブル２２においては、Ａさん及びＣさんの検索要求に対応する仮論理式に対して「１（○）」が設定され、Ｂさんの検索要求に対応する仮論理式に対して「０（×）」が設定されている。
【００３４】
ここで、図３を参照しながら、仮論理式の評価について説明する。「評価」とは、論理式を満たすレコードが存在するか否かを判定する処理を意味する。
一般的な評価手順では、論理式を構成する各要素（すなわち、キーワード）についての検索結果を保持しておき、それらの検索結果に対して論理演算を実行することによってその論理式を評価する。これに対して、本発明に係わる情報検索装置においては、仮論理式がＯＲ条件だけで記述されていることを利用し、その仮論理式を構成する要素の中の１つ以上がヒットしたときに「真（論理が満たされている）」と判定し、いずれの要素もヒットしなかったときに「偽（論理が満たされていない）」と判定する。そして、この判定結果（真／偽）は、１ビット仮結果フラグとして仮ヒットテーブル２２に書き込まれる。すなわち、本発明では、仮論理式を評価する際に、論理演算を必要としない。
【００３５】
仮評価装置３は、仮ヒットテーブル２２を参照し、各利用者から入力された検索要求の中で評価をする必要のある検索要求を決定する。図１に示す例では、Ａさん及びＣさんの仮論理式に対して「１（○）」が設定されている。よって、この場合、仮評価装置３は、Ａさん及びＣさんの検索要求について評価をする必要があると判断し、その旨を評価装置４に通知する。
【００３６】
ここで、図４を参照しながら、仮評価装置３の動作を説明する。ここでは、仮ヒットテーブル２２は３２ビットレジスタであるものとする。この場合、３２個の検索要求（或いは、３２人の利用者）を同時に処理することができる。そして、各利用者の検索要求に対応する仮論理式についての仮結果フラグが、その３２ビットレジスタの対応するビットに書き込まれるものとする。
【００３７】
仮評価装置３は、ＳＣＡＮ命令を利用して、「１」が書き込まれているビット位置を検出する。ＳＣＡＮ命令は、多くのＣＰＵによりサポートされている命令であり、レジスタの最上位ビットから順番に各ビットの値をチェックしてゆき、最初に「１」が検出されたビット位置を通知する。また、ＳＣＡＮ命令は、「１」が検出されたビットをクリアする（すなわち、「０」を書き込む）手順も含んでいる。よって、このＳＣＡＮ命令を繰り返し実行することにより、仮論理式が検索条件を満たしている検索要求を検出することができる。
【００３８】
評価装置４は、クエリテーブル２１を参照し、仮評価装置３から通知された検索要求についてのみ評価を行う。図１に示す例では、Ｂさんの検索要求についての評価を行うことなく、Ａさん及びＣさんの検索要求についてのみ論理評価を行う。このとき、Ａさんの検索論理式は「赤＆車」であり、「車」がヒットしていないので、「偽」と評価される。一方、Ｃさんの検索論理式は「海or山」であり、「真」と評価される。
【００３９】
評価装置４は、上述の評価結果をヒットテーブルに書き込む。ヒットテーブルは、図５に示すように、各利用者の検索要求がそれぞれ各レコードにヒットしたのか否かを管理する。１つのヒットテーブルにより管理される利用者（検索要求）の数は、例えば、仮ヒットテーブル２２を構成するレジスタのビット数と同じである。そして、評価装置４は、各レコードについての評価を行う毎に、その結果をヒットテーブルに書き込む。
【００４０】
全てのレコードについて各検索要求の論理評価が終了すると、ヒットテーブルが完成する。そして、実施形態の情報検索装置は、完成したヒットテーブルを参照し、各利用者に対してヒットレコードを識別する情報、或いはそのレコードに対応する文書の一部または全部を検索結果として送信する。図５に示す例では、利用者Ａに対して、レコード３を識別する情報（或いは、レコード３に対応する文書の一部または全部）が検索結果として送信される。また、利用者Ｃに対して、レコード４を識別する情報（或いは、レコード４に対応する文書の一部または全部）が検索結果として送信される。
【００４１】
図６は、実施形態の情報検索装置の動作を示すフローチャートである。なお、このフローチャートの処理は、利用者から検索要求が与えられたときに実行される。
ステップＳ１では、各検索要求に含まれているキーワードを抽出する。ここで、複数の検索要求（例えば、仮ヒットテーブルを構成するレジスタのビット数と同じ数の検索要求）が一括して処理される。ステップＳ２では、クエリテーブルを作成する。ステップＳ３では、各検索要求を簡略化することによって対応する仮論理式を作成し、各仮論理式についての評価を管理するための仮ヒットテーブルを作成する。そして、ステップＳ１で抽出した各キーワードについての検索を実行するために検索エンジンを起動する。なお、ステップＳ１〜Ｓ４は、仲介装置１により実行される。
【００４２】
ステップＳ５〜Ｓ１１は、各レコードに対して実行される。すなわち、ステップＳ５〜Ｓ９は、繰り返し実行される。ステップＳ５では、指定されたレコードについてキーワード検索を実行する。ステップＳ５は、検索装置２により実行される。ステップＳ６では、検索結果に従ってクエリテーブルおよび仮ヒットテーブルを更新する。ステップＳ６は、仲介装置１により実行される。ステップＳ７では、仮ヒットテーブルを参照し、評価すべ
き検索要求を捜し出す。ステップＳ７は、仮評価装置３により実行される。ステップＳ８では、ステップＳ７で指定された検索要求についてのみ論理評価を行う。そして、ステップＳ９において、評価結果をヒットテーブルに書き込む。ステップＳ８〜Ｓ９は、評価装置４により実行される。
【００４３】
すべてのレコードについてステップＳ５〜Ｓ９を実行すると、ステップＳ１２に進む。ステップＳ１２では、ヒットテーブルを参照し、各利用者に検索結果を送信する。
図７は、論理評価の処理量について説明する図である。なお、従来技術は、図１０〜図１１に示す検索方法であるものとする。また、図７では、１レコード当たりの処理量を示している。
【００４４】
従来技術においては、各検索要求の論理を評価する際に、評価処理およびテーブル更新処理が行われる。そして、評価処理の処理量は、「各検索論理式の評価の処理量Ｅ×検索要求の数」に相当する。また、テーブル更新処理の処理量は、「書込み処理の処理量Ｇ×ヒット数」に相当する。
【００４５】
これに対して実施形態の検索方法では、各検索要求の論理を評価する際に、評価処理、仮ヒットテーブルのサーチ処理、およびテーブル更新処理が必要である。そして、評価処理の処理量は、「各検索論理式の評価の処理量Ｅ×仮論理式のヒット数」に相当する。また、サーチ処理の処理量は、「テーブルサーチ処理の処理量Ｆ×仮論理式のヒット数」に相当する。さらに、テーブル更新処理の処理量は、「書込み処理の処理量Ｇ×（ヒット数＋仮論理式のヒット数）」に相当する。
【００４６】
ところで、一般に、データベース１１に蓄積されている情報量は膨大である。即ち、レコード数ｎは膨大である。このため、検索要求に含まれているキーワードが極めてありふれた用語でない限りは、キーワード検索におけるヒット率はかなり低くなるはずである。換言すれば、データベース１１の全レコードを検索する際には、大部分のレコードにおいて仮論理式が「偽」と判断されるものと考えられる。そして、仮論理式が「偽」と判断された検索用要求については、論理評価は実行されない。したがって、実施形態の情報検索装置においては、実際に評価を行う検索論理式の数は、従来技術と比較して大幅に少なくなる。
【００４７】
一例を示す。ここでは、３２個の検索要求を同時に処理するものとする。また、データベースに蓄積されている対象が１００万レコードであるものとする。さらに、各仮論理式の平均ヒット率が０．１パーセントであるものとする。そうすると、従来技術の検索方法によれば、検索論理式の評価回数が３２００万（＝３２×１００万）となる。これに対して、実施形態の検索方法によれば、仮論理式がヒットした場合にのみ実際の論理評価が行われるので、検索論理式の評価回数は３２０００（＝３２×１００万×０．００１）となる。
【００４８】
なお、実施形態の検索方法では、従来技術と異なり、仮ヒットテーブルを更新する処理が発生する。しかし、この処理は、レジスタの対応するビットを更新するだけであり、検索論理式の論理評価と比較してその処理量は十分に小さい。また、実施形態の検索方法では、従来技術と異なり、仮ヒットテーブルをサーチする処理が発生する。しかし、この処理は、ＳＣＡＮ命令等を用いてレジスタの各ビットを参照するだけであり、検索論理式の論理評価と比較してその処理量は十分に小さい。したがって、実施形態の検索方法においては、従来技術と比較すると、新たな処理が発生するものの、検索論理式の評価全体としては、その処理量を大幅に減らすことができる。これにより、検索処理全体の処理時間が短縮される。
【００４９】
このように、本発明は、多くの情報検索において検索対象数に対してヒット数が少ない（即ち、ヒット率が低い）ことを利用する。一実施形態においては、複数の検索要求に対して、各検索論理式の必要条件となるＯＲ論理のみから構成される仮論理式を生成し、各検索要求に対して１ビットを割り当てる。そして、仮論理式に含まれるキーワードがヒットしたときは、その仮論理式に対応する検索要求もヒットする可能性があるので、その検索要求について論理式の評価を行う。一方、仮論理式に含まれるキーワードがヒットしなかったときは、その仮論理式に対応する検索要求がヒットする可能性はないので、その検索要求について論理式の評価は行わない。したがって、検索論理式の評価に要する時間は、検索要求の多重度または複雑度にはほとんど依存しなくなり、キーワードのヒット率に依存することになる。したがって、キーワードのヒット率が非常に低いものとすると、検索論理式の評価を、１回のスキャンを実行する期間内に実現できる。
【００５０】
図８は、クエリテーブル２１および仮ヒットテーブル２２の更新について説明する図である。この実施例では、クエリテーブル２１には、登録されたキーワード毎に、位置情報を書き込むための領域が設けられている。位置情報は、当該キーワードを含む仮論理式に対応する仮結果フラグを格納する位置（アドレス）を表す。この位置情報は、仮論理式を生成して仮ヒットテーブル２２の所定のビットを割り当てたときに設定される。例えば、仮論理式「赤」が生成され、この仮論理式に対応する仮結果フラグが仮ヒットテーブル２２の第Ａビット割り当てられると、クエリテーブル２１において、キーワード「赤」の位置情報として「Ａ」が設定される。同様に、仮論理式「筆orペン」が生成され、この仮論理式に対応する仮結果フラグが仮ヒットテーブル２２の第Ｂビット割り当てられると、クエリテーブル２１において、キーワード「筆」および「ペン」の位置情報としてそれぞれ「Ｂ」が設定される。
【００５１】
上述のようなテーブル構成を導入すれば、例えば、キーワード「赤」がヒットしたときには、クエリテーブル２１において「赤」に対応するフラグに「１（○）」が設定されると共に、位置情報Ａに基づいて仮ヒットテーブル２２において第Ａビットに「１（○）」が書き込まれる。
【００５２】
図９は、本発明の機能を記述したプログラムを実行するコンピュータのブロック図である。本発明に係わる機能は、コンピュータを用いて上述の処理を記述したプログラムを実行することにより実現される。
【００５３】
ＣＰＵ３１は、上述の処理手順を記述したプログラムを記憶装置３２からメモリ３３にロードして実行する。記憶装置３２は、たとえばハードディスクであり、上記プログラムを格納する。なお、記憶装置３２は、コンピュータ３０に接続される外部記憶装置であってもよい。メモリ３３は、例えば半導体メモリであり、ＣＰＵ３１の作業領域として使用される。
【００５４】
記録媒体ドライバ３４は、ＣＰＵ３１の指示に従って可搬性記録媒体３５にアクセスする。可搬性記録媒体３５は、例えば、半導体デバイス（ＰＣカード等）、磁気的作用により情報が入出力される媒体（フレキシブルディスク、磁気テープ等）、光学的作用により情報が入出力される媒体（光ディスク等）を含むものとする。通信制御装置３６は、ＣＰＵ３１の指示に従って、ネットワークを介してデータを送受信する。
【００５５】
上記構成のコンピュータ３０において、利用者からの検索要求は、例えば、利用者端末において入力され、ネットワークを介して受信する。なお、実施形態の情報検索装置は、１台のコンピュータにより実現されてもよいし、互いに接続された複数のコンピュータにより実現されてもよい。また、図１に示す仲介装置１、検索装置２、仮評価装置３、評価装置４は、プログラムを実行することにより実現してもよいし、その一部をハードウェア
で構成するようにしてもよい。
【００５６】
（付記１）
複数の検索論理式から検索要素を抽出する抽出部と、
前記検索要素についてデータベース検索を行う検索部と、
前記複数の検索論理式をそれぞれ簡略化して、前記複数の検索論理式に対応する複数の仮論理式を生成する簡略化部と、
前記検索部の検索結果に応じて前記仮論理式について論理評価を行う第１の評価部と、
前記第１の評価部において第１評価値と評価された仮論理式に対応する検索論理式について論理評価を行う第２の評価部と
を有する情報検索装置。
【００５７】
（付記２）
付記１に記載の情報検索装置であって、
前記簡略化部は、与えられた検索論理式においてＡＮＤ条件で接続されたキーワードを削除することにより、仮論理式を生成する
ことを特徴とする情報検索装置。
【００５８】
（付記３）
付記１に記載の情報検索装置であって、
前記簡略化部は、前記検索論理式のＯＲ条件だけで規定した仮論理式に変換する
ことを特徴とする情報検索装置。
【００５９】
（付記４）
付記１または付記２に記載の情報検索装置であって、
前記複数の仮論理式をそれぞれ１ビットの仮結果情報で管理する管理部をさらに備え、
前記第１の評価部は、前記複数の仮論理式により規定されている検索条件が満たされているか否かに応じて、前記管理部で管理された対応する仮結果情報を更新し、
前記第２の評価部は、前記管理部を参照し、前記検索条件が満たされている仮論理式に対応する検索論理式についてのみ論理評価を行う
ことを特徴とする情報検索装置。
【００６０】
（付記５）
請求項１又は２に記載の情報検索装置であって、
前記第２の評価部は、前記第１の評価部において第２評価値と評価された仮論理式に対応する検索論理式についての論理評価を行わず、前記第１の評価部において前記仮論理式が前記第１評価値と評価されたときに対応する前記検索論理式のみについて論理評価を行う
ことを特徴とする情報検索装置。
【００６１】
（付記６）
検索論理式から検索要素を抽出する抽出部と、
前記検索要素についてデータベース検索を行う検索部と、
前記検索論理式を簡略化し、仮論理式を生成する簡略化部と、
前記検索部の検索結果に応じて前記仮論理式について論理評価を行う第１の評価部と、
前記第１の評価部において前記仮論理式が第１評価値と評価されたときに対応する検索論理式について論理評価を行う第２の評価部と
を有する情報検索装置。
【００６２】
（付記７）
コンピュータにより実現される抽出部が、複数の検索論理式から検索要素を抽出し、
コンピュータにより実現される検索部が、前記検索要素についてデータベース検索を行い、
コンピュータにより実現される簡略化部が、前記複数の検索論理式をそれぞれ簡略化して、前記複数の検索論理式に対応する複数の仮論理式を生成し、
コンピュータにより実現される第１の評価部が、前記検索部の検索結果に応じて前記仮論理式について論理評価を行い、
コンピュータにより実現される第２の評価部が、前記第１の評価部において第１の評価値と評価された仮論理式に対応する検索論理式について論理評価を行う、
ことを特徴とする情報検索方法。
【００６３】
（付記８）
コンピュータを、
複数の検索論理式から検索要素を抽出する抽出部、前記検索要素ついてデータベース検索を行う検索部、前記複数の検索論理式をそれぞれ簡略化して前記複数の検索論理式に対応する複数の仮論理式を生成する簡略化部、前記検索部の検索結果に応じて前記仮論理式について論理評価を行う第１の評価部、および前記第１の評価部において第１評価値と評価された仮論理式に対応する検索論理式について論理評価を行う第２の評価部、
として機能させるための情報検索プログラム。
【図面の簡単な説明】
【００６４】
【図１】本発明に係る実施形態の情報検索装置の構成を示す図である。
【図２】検索論理式から仮論理式を生成する方法を説明する図である。
【図３】仮論理式の評価について説明する図である。
【図４】仮評価装置の動作を説明する図である。
【図５】ヒットテーブルの実施例である。
【図６】実施形態の情報検索装置の動作を示すフローチャートである。
【図７】論理評価の処理量について説明する図である。
【図８】クエリテーブルおよび仮ヒットテーブルの更新について説明する図である。
【図９】本発明の機能を記述したプログラムを実行するコンピュータのブロック図である。
【図１０】従来の情報検索装置の一例を示す図である。
【図１１】図１０に示す情報検索装置の動作を示すフローチャートである。
【符号の説明】
【００６５】
１      仲介装置
２      検索装置
３      仮評価装置
４      評価装置
１１      データベース
２１      クエリテーブル
２２      仮ヒットテーブル
【図１】
2008234068.tif 000003
【図２】
2008234068.tif 000004
【図３】
2008234068.tif 000005
【図４】
2008234068.tif 000006
【図５】
2008234068.tif 000007
【図６】
2008234068.tif 000008
【図７】
2008234068.tif 000009
【図８】
2008234068.tif 000010
【図９】
2008234068.tif 000011
【図１０】
2008234068.tif 000012
【図１１】
2008234068.tif 000013