(57)【特許請求の範囲】
【請求項１】
文書集合の中から、利用者が入力した検索語を含む文書を検索し出力する文書検索装置であって、
利用者から入力された検索語を受け取って、該検索語とその入力時刻を検索語履歴データベースに格納する検索語記録手段と、
前記検索語のエントリが、キーとしての検索語とそれにより前記文書集合の文書を検索した結果とが格納されるリザルトキャッシュデータベースに格納されているか否かを確認するリザルトキャッシュ確認手段と、
前記リザルトキャッシュ確認手段により、前記検索語エントリが格納されていないことが確認されたときに、前記検索語のエントリが、キーとしての検索語、その検索語エントリの最終格納時刻、前記検索語により前記文書集合を検索した結果の文書ＩＤ、当該文書のスコアおよび当該文書の更新時刻の対のリストが格納されるスコアキャッシュデータベースに格納されているか否かを確認して、当該スコアキャッシュデータベースの情報を取得するスコアキャッシュ確認手段と、
前記文書集合中の各文書の単語の位置情報、前記各文書の文書ＩＤおよび該文書ＩＤが示す文書の更新時刻の情報を備えた転置インデクスと、
前記スコアキャッシュ確認手段により取得された情報を入力とし、前記検索語中の各単語について、前記転置インデクスを参照して検索語を構成する各単語の文書ＩＤの転置リストを取得し、該リストから前記スコアキャッシュデータベース内の検索語エントリの最終格納時刻よりも転置インデクス内の更新時刻が新しい文書について、検索語の種類に応じた検索条件を満たす文書リストを作成し、該文書リスト中の各文書について文書のスコアを計算し、該計算された文書のスコアによって前記スコアキャッシュデータベース内の該当する検索語リストを上書きし、該エントリの最終格納時刻を現在時刻に変更し、前記計算された文書のスコアおよび前記スコアキャッシュ確認手段から入力されたスコアキャッシュデータベースの情報を出力するクエリ処理手段と、
前記クエリ処理手段の出力を入力とし、前記計算された文書のスコアが上位である予め決められた件数の文書を検索結果として出力するための、当該文書の内容についての情報を生成する出力内容生成手段と、
前記出力内容生成手段により生成された各文書の内容についての情報を入力とし、前記転置インデクスが次回更新されるまでの前記検索語の予測入力回数ｃｅと、前記リザルトキャッシュデータベースに当該検索語を格納せずにスコアキャッシュデータベースのみに格納した場合と比べて、リザルトキャッシュデータベースに格納した場合の処理の１検索あたりの予測軽減時間ｒｅとを求め、前記ｃｅとｒｅの積を、リザルトキャッシュデータベースへの検索語格納時の効用推定値として算出し、前記算出された効用推定値に応じて前記リザルトキャッシュデータベースへの検索語の格納を決定するキャッシュ効用推定手段と、
前記リザルトキャッシュ確認手段により前記検索語エントリが格納されていると確認されたときは、前記リザルトキャッシュデータベース内に格納されている検索結果を外部に出力し、前記検索語エントリが格納されていないと確認されたときは、前記出力内容生成手段によって生成された情報を外部に出力する出力手段と、
を備えたことを特徴とする文書検索装置。
【請求項２】
前記キャッシュ効用推定手段は、現在時刻をｔ、前記転置インデクスの最終更新時刻をｔ０、前記転置インデクスが次回更新される時刻をｔ１、前記ｔ０よりｔまでの期間に前記検索語履歴データベース内に前記検索語が入力された回数をｃ０とし、前記予測入力回数ｃｅを、ｃｅ＝ｃ０×（ｔ１−ｔ０）／（ｔ−ｔ０）なる式を演算して求めることを特徴とする請求項１に記載の文書検索装置。
【請求項３】
前記キャッシュ効用推定手段は、前記予測軽減時間ｒｅを、前記転置インデクス内の検索語を構成する単語の最小転置リストの長さと予め定めた定数との積によって求めることを特徴とする請求項１又は２に記載の文書検索装置。
【請求項４】
コンピュータを請求項１ないし３のいずれか１項に記載の各手段として機能させる文書検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書集合の中から利用者が入力した検索語を含むような文書を検索し出力する技術に関する。
【背景技術】
【０００２】
大規模な文書集合を対象に、高速な検索を行うためには、従来より、転置インデクスと呼ばれる、単語をキーとしてその単語が出現するような文書の番号を記録した索引情報が広く利用されている（非特許文献１参照）。
【０００３】
さらに、連続して多数の検索要求が行われる場合の高速化のために、すべての検索要求を転置インデクスを用いて処理するのではなく、検索要求に対する処理結果を保存しておき、同一の、あるいは類似した検索要求が行われた場合に保存してあった処理結果を用いるキャッシュと呼ばれる方法が存在する（非特許文献２参照）。
【０００４】
特に、検索語に対して、利用者に提示する検索結果そのものをキャッシュする、リザルトキャッシュという方法が広く利用されている。これは、検索結果としてのタイトルや文書のＵＲＬ、および概要文などもキャッシュに含めておくため、もし同一の検索語による検索が行われてキャッシュがヒットした場合に、処理を大幅に軽減できることが知られている。
【０００５】
尚、転置インデクスを変更する方法は、例えば非特許文献３に記載の方法が知られている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】竹野浩、井上孝史、「分散型高速情報収集／全文検索システムＩｎｆｏＢｅｅ／Ｅｖａｎｇｅｌｉｓｔ」、ＮＴＴ  Ｒ＆Ｄ、ｖｏｌ．５２、Ｎｏ．２、２００３、ｐｐ７８−８４
【非特許文献２】Ｂａｅｚａ−Ｙａｔｅｓ，Ｒ．，Ｇｉｏｎｉｓ，Ａ．，Ｊｕｎｑｕｅｉｒａ，Ｆ．，Ｍｕｒｄｏｃｋ，Ｖ．，Ｐｌａｃｈｏｕｒａｓ，Ｖ．，ａｎｄ  Ｓｉｌｖｅｓｔｒｉ，Ｆ．、“Ｔｈｅ  Ｉｍｐａｃｔ  ｏｆ  Ｃａｃｈｉｎｇ  ｏｎ  Ｓｅａｒｃｈ  Ｅｎｇｉｎｅｓ”，Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３０ｔｈ  Ａｎｎｕａｌ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ＡＣＭ  ＳＩＧＩＲ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｅｓｅａｒｃｈ  ａｎｄ  Ｄｅｖｅｌｏｐｍｅｎｔ  ｉｎ  ｉｎｆｏｒｍａｔｉｏｎ  Ｒｅｔｒｉｅｖａｌ（Ａｍｓｔｅｒｄａｍ，  Ｔｈｅ  Ｎｅｔｈｅｒｌａｎｄｓ，Ｊｕｌｙ  ２３−２７，２００７），ｐｐ１８３−１９０
【非特許文献３】Ｔｏｍａｓｉｃ，  Ａ．，Ｇａｒｃｉａ-Ｍｏｌｉｎａ，Ｈ．，ａｎｄ  Ｓｈｏｅｎｓ，Ｋ．、“Ｉｎｃｒｅｍｅｎｔａｌ  Ｕｐｄａｔｅｓ  ｏｆ  Ｉｎｖｅｒｔｅｄ  Ｌｉｓｔｓ  ｆｏｒ  Ｔｅｘｔ  Ｄｏｃｕｍｅｎｔ  Ｒｅｔｒｉｅｖａｌ”，ＳＩＧＭＯＤ  Ｒｅｃ．  ２３，２（Ｊｕｎ．１９９４），ｐｐ２８９−３００
【発明の概要】
【発明が解決しようとする課題】
【０００７】
文書検索装置において、新しい文書を検索対象として追加したり、あるいは既存の検索対象文書が変更された場合には、転置インデクス自体を何らかの方法で変更する必要がある。この方法としては、転置インデクスを作り直す方法や、あるいは、非特許文献１や非特許文献３で示されている方法を使うことが考えられる。
【０００８】
転置インデクスが変更された場合、  単語に対する転置リストの内容も変わってしまい、結果として検索結果も変わってしまう。このため、従来のキャッシュ方式を用いた場合、転置インデクスが変更された場合にはキャッシュは無効となってしまう。このため、キャッシュの利用効率が下がり、結果として、  検索装置が単位時間あたりに処理することができる検索要求数が減少してしまうという問題があった。
【０００９】
これに対して、検索結果そのものをキャッシュに格納するのではなく、インデクスが更新された場合であっても未更新文書のスコアは基本的には変わらないという性質を利用して、スコアをキャッシュすることによって、未更新文書に対する処理を軽減する方法が考えられる。このような方法をスコアキャッシュと呼ぶ。スコアキャッシュはインデクスが更新された場合でもある程度の効果を発揮することに加えて、タイトルや文書のＵＲＬ等を含める必要がないため、１エントリあたり必要なメモリ量がリザルトキャッシュに比べて格段に小さいというメリットもある。
【００１０】
しかし、このスコアキャッシュによる方法をとったとしても、以下のような問題が残るであろう。スコアキャッシュでは、どの文書が更新文書かどうかを確認するために、検索語中の各単語に対応する転置リストを一度展開して、その単語を含むような文書の一覧を取得し、各文書が更新されているかどうかを確認する必要がある。しかし、この展開の手間は無視できるものではない。特に多くの文書に出現するような一般的な単語では転置リストがとても長くなってしまい、展開には大変時間がかかる。このため、インデクス更新の間隔が長い場合や更新間隔間での検索回数が多い場合にあっては、転置リストの展開が不要なリザルトキャッシュを用いた方が効率が良いという問題がある。
【００１１】
本発明は、上記課題を解決するものであり、その目的は、単位時間あたりに処理できる検索要求数を向上させた文書検索装置、プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決するために本発明は、時刻情報つきのスコアのキャッシュとリザルトキャッシュを組み合わせることとし、さらに、リザルトキャッシュの格納件数が限定されていることに着目し、単純に組み合わせるのではなく、リザルトキャッシュに格納せずにスコアキャッシュのみに格納するエントリを、キャッシュに格納した場合の効用に基づいて算出するように構成した。
【００１３】
すなわち、請求項１に記載の文書検索装置は、文書集合の中から、利用者が入力した検索語を含む文書を検索し出力する文書検索装置であって、利用者から入力された検索語を受け取って、該検索語とその入力時刻を検索語履歴データベースに格納する検索語記録手段と、前記検索語のエントリが、キーとしての検索語とそれにより前記文書集合の文書を検索した結果とが格納されるリザルトキャッシュデータベースに格納されているか否かを確認するリザルトキャッシュ確認手段と、前記リザルトキャッシュ確認手段により、前記検索語エントリが格納されていないことが確認されたときに、前記検索語のエントリが、キーとしての検索語、その検索語エントリの最終格納時刻、前記検索語により前記文書集合を検索した結果の文書ＩＤ、当該文書のスコアおよび当該文書の更新時刻の対のリストが格納されるスコアキャッシュデータベースに格納されているか否かを確認して、当該スコアキャッシュデータベースの情報を取得するスコアキャッシュ確認手段と、前記文書集合中の各文書の単語の位置情報、前記各文書の文書ＩＤおよび該文書ＩＤが示す文書の更新時刻の情報を備えた転置インデクスと、前記スコアキャッシュ確認手段により取得された情報を入力とし、前記検索語中の各単語について、前記転置インデクスを参照して検索語を構成する各単語の文書ＩＤの転置リストを取得し、該リストから前記スコアキャッシュデータベース内の検索語エントリの最終格納時刻よりも転置インデクス内の更新時刻が新しい文書について、検索語の種類に応じた検索条件を満たす文書リストを作成し、該文書リスト中の各文書について文書のスコアを計算し、該計算された文書のスコアによって前記スコアキャッシュデータベース内の該当する検索語リストを上書きし、該エントリの最終格納時刻を現在時刻に変更し、前記計算された文書のスコアおよび前記スコアキャッシュ確認手段から入力されたスコアキャッシュデータベースの情報を出力するクエリ処理手段と、前記クエリ処理手段の出力を入力とし、前記計算された文書のスコアが上位である予め決められた件数の文書を検索結果として出力するための、当該文書の内容についての情報を生成する出力内容生成手段と、前記出力内容生成手段により生成された各文書の内容についての情報を入力とし、前記転置インデクスが次回更新されるまでの前記検索語の予測入力回数ｃｅと、前記リザルトキャッシュデータベースに当該検索語を格納せずにスコアキャッシュデータベースのみに格納した場合と比べて、リザルトキャッシュデータベースに格納した場合の処理の１検索あたりの予測軽減時間ｒｅとを求め、前記ｃｅとｒｅの積を、リザルトキャッシュデータベースへの検索語格納時の効用推定値として算出し、前記算出された効用推定値に応じて前記リザルトキャッシュデータベースへの検索語の格納を決定するキャッシュ効用推定手段と、前記リザルトキャッシュ確認手段により前記検索語エントリが格納されていると確認されたときは、前記リザルトキャッシュデータベース内に格納されている検索結果を外部に出力し、前記検索語エントリが格納されていないと確認されたときは、前記出力内容生成手段によって生成された情報を外部に出力する出力手段と、を備えたことを特徴としている。
【発明の効果】
【００１４】
本発明によれば、検索装置が単位時間あたりに処理できる検索要求数を向上することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態例を示す装置構成図。
【図２】図１の装置の処理の全体の流れを示すフローチャート。
【図３】本発明の一実施形態例におけるリザルトキャッシュデータベースの例を示す説明図。
【図４】本発明の一実施形態例におけるスコアキャッシュデータベースの例を示す説明図。
【図５】本発明の一実施形態例における転置インデクスが保持している各文書の最終更新時刻を示す説明図。
【図６】本発明の一実施形態例におけるキャッシュ効用推定部の処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら本発明の実施の形態を説明するが、本発明は下記の実施形態例に限定されるものではない。本実施形態例では、上記のような問題を解決するため、リザルトキャッシュとスコアキャッシュの双方を保持し、何をリザルトキャッシュに格納するかどうかを決定するための「キャッシュ効用推定部」を設けた。
【００１７】
本実施形態例による文書検索装置は、利用者によって入力された検索語に最も関連している文書群、すなわちスコアが上位である文書群を出力する。
【００１８】
リザルトキャッシュは１エントリあたりに必要な記憶領域がスコアキャッシュよりも格段に大きいため、単純にリザルトキャッシュとスコアキャッシュに格納する要素を決定したのでは最善な効率は得られない。このため、本装置では、基本的にすべての検索語はスコアキャッシュに格納し、キャッシュに入りきらない場合はＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）等のよく知られた方法によって既存のエントリを消去する。一方、リザルトキャッシュには無条件に最新の検索語を格納するのではなく、リザルトキャッシュに格納すべきかどうかを判断し、その結果に応じて格納する。
【００１９】
利用者から受け付ける検索語は、単一の単語、複数単語、句とする。これら検索語の種類に応じた検索条件は次のとおりである。すなわち、複数単語の場合には、それらの単語がすべて含まれている文書を検索対象とする（ＡＮＤ検索）。句の場合は、句を構成する複数の単語が、検索語中での順序と、文書中での出現順序が同一であるような文書を検索対象とする（フレーズ検索）。
【００２０】
図１は本発明の一実施形態例による文書検索装置１００の構成を示し、図２は図１の装置の全体の処理の流れを示している。
【００２１】
図１において１０１は、ユーザから入力された検索語を受け取って、該検索語とその入力時刻を検索語履歴ＤＢ（データベース)１０２に格納する検索語記録手段としての検索語記録部である。
【００２２】
１０３は、キーとしての検索語と、それにより文書が格納された文書集合１１２の文書を検索した結果とが格納されるリザルトキャッシュＤＢである。
【００２３】
１０４は、前記入力された検索語のエントリがリザルトキャッシュＤＢ１０３に格納されているか否かを確認するリザルトキャッシュ確認手段としてのリザルトキャッシュ確認部である。
【００２４】
１０５は、キーとしての検索語、その検索語エントリの最終格納時刻、前記検索語により前記文書集合を検索した結果の文書ＩＤ、当該文書のスコアおよび当該文書の更新時刻の対のリストが格納されるスコアキャッシュＤＢである。
【００２５】
１０６は、リザルトキャッシュ確認部１０４により、前記検索語エントリが格納されていないことが確認されたときに、前記検索語のエントリが、スコアキャッシュＤＢ１０５に格納されているか否かを確認して、当該スコアキャッシュＤＢ１０５の情報を取得するスコアキャッシュ確認手段としてのスコアキャッシュ確認部である。
【００２６】
１０７は、前記文書集合１１２中の各文書の単語の位置情報、前記各文書の文書ＩＤおよび該文書ＩＤが示す文書の更新時刻の情報を備えた転置インデクスである。
【００２７】
１０８は、クエリ処理手段としてのクエリ処理部であり、次のような処理を行う。すなわち、前記スコアキャッシュ確認部１０６により取得された情報を入力とし、前記検索語中の各単語について、前記転置インデクス１０７を参照して検索語を構成する各単語の文書ＩＤの転置リストを取得し、該リストから前記スコアキャッシュＤＢ１０５内の検索語エントリの最終格納時刻よりも転置インデクス１０７内の更新時刻が新しい文書について、検索語の種類に応じた検索条件を満たす文書リストを作成し、該文書リスト中の各文書について文書のスコアを計算し、該計算された文書のスコアによって前記スコアキャッシュＤＢ１０５内の該当する検索語リストを上書きし、該エントリの最終格納時刻を現在時刻に変更し、前記計算された文書のスコアおよび前記スコアキャッシュ確認部１０６から入力されたスコアキャッシュＤＢ１０５の情報を出力する。
【００２８】
１０９は、前記クエリ処理部１０８の出力を入力とし、前記計算された文書のスコアが上位である予め決められた件数の文書を検索結果として出力するための、当該文書の内容についての情報を生成する出力内容生成手段としての出力内容生成部である。
【００２９】
１１０は、前記出力内容生成部１０９により生成された各文書の内容についての情報を入力とし、前記転置インデクス１０７が次回更新されるまでの前記検索語の予測入力回数ｃｅと、前記リザルトキャッシュＤＢ１０３に当該検索語を格納せずにスコアキャッシュＤＢ１０５のみに格納した場合と比べて、リザルトキャッシュＤＢ１０３に格納した場合の処理の１検索あたりの予測軽減時間ｒｅとを求め、前記ｃｅとｒｅの積を、リザルトキャッシュＤＢ１０３への検索語格納時の効用推定値として算出し、前記算出された効用推定値に応じて前記リザルトキャッシュＤＢ１０３への検索語の格納を決定するキャッシュ効用推定手段としてのキャッシュ効用推定部である。
【００３０】
１１１は、前記リザルトキャッシュ確認部１０４により前記検索語エントリが格納されていると確認されたときは、前記リザルトキャッシュＤＢ１０３内に格納されている検索結果を外部に出力し、前記検索語エントリが格納されていないと確認されたときは、前記出力内容生成部１０９によって生成された情報を外部に出力する出力手段としての出力部である。
【００３１】
前記文書検索装置１００は、例えばコンピュータにより構成され、通常のコンピュータのハードウェアリソース、例えばＲＯＭ、ＲＡＭ、ＣＰＵ、入力装置、出力装置、通信インターフェース、ハードディスク、記録媒体およびその駆動装置を備えている。
【００３２】
このハードウェアリソースとソフトウェアリソース（ＯＳ、アプリケーションなど）との協働の結果、推定値高精度化システム１００は、図１に示すように、検索語記録部１０１、検索語履歴ＤＢ１０２、リザルトキャッシュＤＢ１０３、リザルトキャッシュ確認部１０４、スコアキャッシュＤＢ１０５、スコアキャッシュ確認部１０６、転置インデクス１０７、クエリ処理部１０８、出力内容生成部１０９、キャッシュ効用推定部１１０、出力部１１１、文書集合１１２を実装する。
【００３３】
前記検索語履歴ＤＢ１０２、リザルトキャッシュＤＢ１０３、スコアキャッシュＤＢ１０５、転置インデクス１０７および文書集合１１２は、ハードディスクあるいはＲＡＭなどの保存手段・記憶手段に構築されているものとする。
【００３４】
次に上記のように構成された動作を具体的に説明する。  
【００３５】
＜検索語記録部１０１＞
検索語記録部１０１ではユーザが入力した検索語を受取る。まず、検索語と入力された時刻とを、検索語履歴ＤＢ１０２に格納する（図２のステップＳ１）。次に、入力された検索語をそのまま出力する。
【００３６】
＜リザルトキャッシュＤＢ１０３＞
リザルトキャッシュＤＢ１０３は、検索語をキーとして、その検索語による検索結果を文字列として格納したものである。リザルトキャッシュＤＢ１０３の例を図３に示す。
【００３７】
＜リザルトキャッシュ確認部１０４＞
リザルトキャッシュ確認部１０４では、入力された検索語のエントリがリザルトキャッシュＤＢ１０３に格納されているかどうかを確認する（図２のステップＳ２）。
【００３８】
もし該当エントリがあればその内容を出力部１１１に対して出力する。もし該当エントリがなければ入力された検索語をそのままスコアキャッシュ確認部１０６に対して出力する。
【００３９】
＜スコアキャッシュＤＢ１０５＞
スコアキャッシュＤＢ１０５は、検索語をキーとして、そのキャッシュエントリの最終格納時刻、および検索結果の文書ＩＤと文書のスコアと文書の更新時刻の対のリストを持つような表として構成される。スコアキャッシュＤＢ１０５の例を図４に示す。
【００４０】
＜スコアキャッシュ確認部１０６＞
スコアキャッシュ確認部１０６では、入力された検索語のエントリがスコアキャッシュＤＢ１０５に格納されているかどうかを確認する（図２のステップＳ３）。そしてスコアキャッシュＤＢ１０５より得られた内容と、もとの検索語をクエリ処理部１０８に対して出力する。
【００４１】
＜転置インデクス１０７＞
転置インデクス１０７は、一般的な文書検索で用いられる転置インデクスである。ただし、スコアキャッシュがまだ有効かどうかを確認できるようにするために、各文書の最終更新時刻を高速に得られるようにする。これには一般的な転置インデクスに加えて、文書ＩＤを番地として最終時刻を値として保持するような配列を別途保持することで可能である。
【００４２】
転置インデクス１０７における各文書の最終更新時刻を得るための配列の例を図５に示す。
【００４３】
＜クエリ処理部１０８＞
クエリ処理部１０８は、検索語とスコアキャッシュ確認部１０６から出力されたスコアキャッシュＤＢ１０５の該当エントリを入力として受取る。
【００４４】
当該検索語に対するスコアキャッシュの最終格納時刻をｔｃとする。もし、スコアキャッシュＤＢ１０５に当該検索語が含まれていない場合は、古い時刻として、ｔｃ＝０とする。
【００４５】
次に、検索語中の各単語について、転置インデクス１０７を参照し、検索語を構成する各単語の文書ＩＤのリスト（転置リスト）を取得する。
【００４６】
上記の各単語に対するリストより、ｔｃよりも更新時刻が新しい文書について、ＡＮＤ条件やフレーズ条件（検索語の種類に応じた検索条件）を満たす文書のリストｌｐを作成する（図２のステップＳ４）。
【００４７】
そして前記リストｌｐ中の各文書について、文書のスコアを計算する（図２のステップＳ５）。
【００４８】
スコアの計算はＢＭ２５やｔｆｉｄｆ（ｔｅｒｍ  ｆｒｅｑｕｅｎｃｙ  ｉｎｖｅｒｓｅ  ｄｏｃｕｍｅｎｔ  ｆｒｅｑｕｅｎｃｙ）といった、一般的に知られているスコア計算方法を用いることができる。
【００４９】
ただし、ｔｆｉｄｆにおけるｉｄｆ項のように、検索文書集合全体より得られる統計値を用いるスコア計算方法を利用する場合は、近似的に、現在の文書集合ではなく、過去のある時点での文書集合に基く統計値を用いる。
【００５０】
前記リストｌｐ中の各文書は更新された文書であり、本発明ではこの更新された文書についてのみスコア計算を行なう（インデクスの更新があった場合でも未更新文書のスコアは基本的に変わらないので）。
【００５１】
上記手順によって得られた各文書のスコアと、入力として受けとったスコアキャッシュＤＢ１０５の内容を出力内容生成部１０９に対して出力する。
【００５２】
また、同内容でスコアキャッシュＤＢ１０５の該当エントリを上書きする。また、スコアキャッシュＤＢ１０５の最終格納時刻を現在時刻とする（図２のステップＳ６）。
【００５３】
＜出力内容生成部１０９＞
出力内容生成部１０９では、クエリ処理部１０８から検索語、および、文書ＩＤとスコアからなる対を複数個入力として受取る。
【００５４】
まず、スコアを基準にソート処理を行い、スコアが上位ｋ件の文書を得る。ｋは最終的にユーザに提示する件数に応じて事前に決めた定数である。
【００５５】
このスコアが上位の文書について、タイトル、文書のＵＲＬ、概要文等（文書の内容についての情報）を元文書を参照しながら生成する（図２のステップＳ７）。これらは従来の技術を用いることができる。
【００５６】
なお、元文書を参照するのではなく、タイトルや文書のＵＲＬについては、文書ＩＤをキーとするような連想配列状のデータベースを用いても良い。
【００５７】
上記手順によって得られた上位ｋ件の各文書のスコア、タイトル、文書のＵＲＬ、概要文を、キャッシュ効用推定部１１０と出力部１１１に対して出力する。
【００５８】
＜キャッシュ効用推定部１１０＞
キャッシュ効用推定部１１０は検索語に対する検索結果上位の各文書（スコアが上位の文書）の提示内容を受け取り、リザルトキャッシュＤＢ１０３へ格納する効用があると推定された場合には、リザルトキャッシュＤＢ１０３への格納を行う（図２のステップＳ８〜Ｓ１０）。
【００５９】
キャッシュ効用推定部１１０の処理の流れ図を図６に示す。まず、次回転置インデクス１０７の更新（例えば新たに文書を収集したことにより転置インデクス１０７の内容を更新するとき）までの当該検索語の予測入力回数を決定する（ステップＳ２１）。
【００６０】
現在時刻をｔ、最終インデクス更新時刻をｔ０、次回インデクス更新時刻をｔ１とする。検索語履歴ＤＢ１０２を参照し、時刻ｔ０よりｔまでの期間に当該検索語が入力された回数をｃ０とする。このとき、次回インデクス更新までの当該検索語の予測入力回数ｃｅを以下の式で定める。
【００６１】
ｃｅ＝ｃ０×（ｔ１−ｔ０）／（ｔ−ｔ０）…（１）
次に、リザルトキャッシュＤＢ１０３に格納せず、スコアキャッシュＤＢ１０５のみに格納した場合と比べて、リザルトキャッシュＤＢ１０３に格納した場合の処理の１検索あたりの予測軽減時間ｒｅを決定する（ステップＳ２２）。
【００６２】
リザルトキャッシュＤＢ１０３にヒットした場合の処理時間は実質的に０だとみなすことができる。このため、ｒｅはスコアキャッシュＤＢ１０５を用いた場合の処理時間とすることができる。この処理時間は、過去に同一クエリについてスコアキャッシュＤＢ１０５を用いた処理をしたことがあればその実測時間を用いることができる。あるいは、スコアキャッシュＤＢ１０５による処理のうち支配的な時間はＡＮＤ検索の併合処理あるいはフレーズ処理とみなすことができ、これらは、検索語を構成する単語のうちもっとも文書出現頻度の少ない単語に支配される。このため、事前に定めた定数ｍを用いて、ｒｅ＝ｍ×（検索語を構成する単語の最小転置リストの長さ）として求めることもできる。
【００６３】
これらより、当該検索語のリザルトキャッシュＤＢ格納時の効用を、
ｃｅ×ｒｅ…（２）
として算出する（ステップＳ２３）。
【００６４】
この値が事前に定めた値よりも高い場合には、リザルトキャッシュＤＢ１０３に格納する。
【００６５】
事前に定めた値を用いる以外に、現在リザルトキャッシュＤＢ１０３に格納されているすべての語についての効用を算出し、それらよりも高い場合に格納するという方法を取ることも可能である（ステップＳ２４、Ｓ２５）。
【００６６】
＜出力部１１１＞
出力部１１１では、入力として受けとった各ユーザへの提示内容を（リザルトキャッシュ確認部１０４により前記検索語エントリが格納されていると確認されたときは該確認部１０４から出力されるリザルトキャッシュＤＢ１０３内の検索結果を、前記検索語エントリが格納されていないと確認されたときは出力内容生成部１０９で生成された情報を）、画面あるいはネットワーク等ユーザに対して提示できるデバイスへ出力する（図２のステップＳ１１）。
【００６７】
また、本実施形態の文書検索装置における各手段の一部もしくは全部の機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、本実施形態の文書検索方法における手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもなく、コンピュータでその機能を実現するためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えばＦＤ（Ｆｌｏｐｐｙ（登録商標）  Ｄｉｓｋ）や、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、メモリカード、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＨＤＤ、リムーバブルディスクなどに記録して、保存したり、配布したりすることが可能である。また、上記のプログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【符号の説明】
【００６８】
１００…文書検索装置
１０１…検索語記録部
１０２…検索語履歴ＤＢ
１０３…リザルトキャッシュＤＢ
１０４…リザルトキャッシュ確認部
１０５…スコアキャッシュＤＢ
１０６…スコアキャッシュ確認部
１０７…転置インデクス
１０８…クエリ処理部
１０９…出力内容生成部
１１０…キャッシュ効用推定部
１１１…出力部
１１２…文書集合
【図１】
0005437219.tif 000002
【図２】
0005437219.tif 000003
【図３】
0005437219.tif 000004
【図４】
0005437219.tif 000005
【図５】
0005437219.tif 000006
【図６】
0005437219.tif 000007