JP2009175896A - 情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体 - Google Patents
情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体 Download PDFInfo
- Publication number
- JP2009175896A JP2009175896A JP2008012027A JP2008012027A JP2009175896A JP 2009175896 A JP2009175896 A JP 2009175896A JP 2008012027 A JP2008012027 A JP 2008012027A JP 2008012027 A JP2008012027 A JP 2008012027A JP 2009175896 A JP2009175896 A JP 2009175896A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- search
- expression
- index
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】検索式と完全一致しなくともキャッシュを利用可能とし、また、三単語以上の検索式についても検索可能とする。
【解決手段】本発明は、条件式と転置リストからなるキャッシュを取得し、入力された検索式に包含されるキャッシュをキャッシュDBから検索するためのキャッシュ索引木を生成し、ユーザから検索式を受け付け、キャッシュ索引木を参照して、入力された検索式に包含されるキャッシュの格納位置をキャッシュDBから取得し、取得したキャッシュの最適な組み合わせを探索し、キャッシュDBを検索してキャッシュ組み合わせに対応するキャッシュから第1の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、転置索引記憶手段から第2の転置リストを取得し、統合して検索結果とする。
【選択図】図1
【解決手段】本発明は、条件式と転置リストからなるキャッシュを取得し、入力された検索式に包含されるキャッシュをキャッシュDBから検索するためのキャッシュ索引木を生成し、ユーザから検索式を受け付け、キャッシュ索引木を参照して、入力された検索式に包含されるキャッシュの格納位置をキャッシュDBから取得し、取得したキャッシュの最適な組み合わせを探索し、キャッシュDBを検索してキャッシュ組み合わせに対応するキャッシュから第1の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、転置索引記憶手段から第2の転置リストを取得し、統合して検索結果とする。
【選択図】図1
Description
本発明は、情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体に係り、特に、頻繁に問い合わせられる検索式に対する検索結果をユーザに速やかに提示するため、応答性の高い場所に格納しておく検索結果キャッシュを利用する情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体に関する。
検索結果キャッシュは、頻繁に問い合わせられる検索式に対する検索結果をユーザに速やかに提示するため、応答性の高い場所に格納する。ユーザが情報検索装置に、検索結果キャッシュに格納されている検索式を問い合わせると、情報検索装置は本来の検索処理を行うことなく、検索結果キャッシュに格納されている検索結果を提供する。
検索結果キャッシュ技術には、検索式がキャッシュにヒットした場合にきわめて高速に検索結果を返却することができるキャッシングアルゴリズムがある(例えば、非特許文献1参照)。
また、検索結果キャッシュに加え、一単語に対応する転置リストをキャッシュし、さらに二単語の転置リストのインターセクションをディスクにキャッシュする方法がある(例えば、非特許文献2参照)。
.Evangelos P. Markatos. "On Caching Search Engine Query Results" 5th International Web Caching and Content Delivery Workshop, May 2000. Xiaohui Long, Torsten Suel "Three-Level Caching for Efficient Query Processing in Large Web Search Engines.", The Association for Computing Machinery ISBN 1-59593-046-9, pp257-266.
.Evangelos P. Markatos. "On Caching Search Engine Query Results" 5th International Web Caching and Content Delivery Workshop, May 2000. Xiaohui Long, Torsten Suel "Three-Level Caching for Efficient Query Processing in Large Web Search Engines.", The Association for Computing Machinery ISBN 1-59593-046-9, pp257-266.
しかしながら、上記非特許文献1の技術では、検索結果キャッシュは検索式がキャッシュにヒットした場合きわめて高速に結果を返却することができるが、入力された検索式がキャッシュされている検索式と完全に一致した場合しかキャッシュを利用することができないという問題がある。
また、上記非特許文献2の技術では、転置リストとインターセクションをキャッシュすることで、検索結果キャッシュにヒットしなかった場合の検索性能を向上させているが、三単語以上の検索式については処理にオーバヘッドがあるという問題がある。
本発明は、上記の点に鑑みなされたもので、検索式と完全一致しなくともキャッシュを利用可能とし、また、三単語以上の検索式についてもオーバヘッドの問題を解決し、検索性能を向上させ、実ディスクアクセス回数を低減させることが可能な情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体を提供することを目的とする。
図1は、本発明の原理構成図である。
本発明(請求項1)は、入力された検索式に基づいて、該検索式に適合する検索対象を検索するための情報検索装置であって、
条件式と転置リストからなるキャッシュを取得して入力された検索式に包含されるキャッシュを、キャッシュ記憶手段30のキャッシュが格納されているキャッシュDBから検索するためのキャッシュ索引木を該キャッシュ記憶手段30上に、検索処理に先立って生成するキャッシュ索引構築手段110と、
ユーザから検索式を受け付ける検索条件獲得手段130と、
キャッシュ索引木を参照して、入力された検索式に包含されるキャッシュの格納位置を、キャッシュDBから取得するキャッシュ検索手段130と、
キャッシュ検索手段130において取得したキャッシュの最適な組み合わせを探索するキャッシュ組み合わせ探索手段140と、
キャッシュDBを検索し、キャッシュ組み合わせに対応するキャッシュから第1の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、検索対象に対する転置索引が格納された転置索引記憶手段50から第2の転置リストを取得し、第1の転置リストと該第2の転置リストを統合して検索結果とする検索結果統合手段150と、
検索結果統合手段150で取得した検索結果を出力する出力手段160と、を有する。
条件式と転置リストからなるキャッシュを取得して入力された検索式に包含されるキャッシュを、キャッシュ記憶手段30のキャッシュが格納されているキャッシュDBから検索するためのキャッシュ索引木を該キャッシュ記憶手段30上に、検索処理に先立って生成するキャッシュ索引構築手段110と、
ユーザから検索式を受け付ける検索条件獲得手段130と、
キャッシュ索引木を参照して、入力された検索式に包含されるキャッシュの格納位置を、キャッシュDBから取得するキャッシュ検索手段130と、
キャッシュ検索手段130において取得したキャッシュの最適な組み合わせを探索するキャッシュ組み合わせ探索手段140と、
キャッシュDBを検索し、キャッシュ組み合わせに対応するキャッシュから第1の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、検索対象に対する転置索引が格納された転置索引記憶手段50から第2の転置リストを取得し、第1の転置リストと該第2の転置リストを統合して検索結果とする検索結果統合手段150と、
検索結果統合手段150で取得した検索結果を出力する出力手段160と、を有する。
また、本発明(請求項2)は、キャッシュ索引構築手段110において、
キャッシュDBに格納されたキャッシュに基づいて、検索式文字列、キャッシュ先頭へのポインタ、子ノードを検索するための情報をノード毎にキャッシュ索引木に設定する手段を含む。
キャッシュDBに格納されたキャッシュに基づいて、検索式文字列、キャッシュ先頭へのポインタ、子ノードを検索するための情報をノード毎にキャッシュ索引木に設定する手段を含む。
また、本発明(請求項3)は、キャッシュ索引構築手段110において、
キャッシュDBに格納されたキャッシュに基づいて、検索式文字列、キャッシュへのポインタ、子ノードを表すハッシュへのポインタをキャッシュ索引木に設定する手段を含む。
キャッシュDBに格納されたキャッシュに基づいて、検索式文字列、キャッシュへのポインタ、子ノードを表すハッシュへのポインタをキャッシュ索引木に設定する手段を含む。
また、本発明(請求項4)は、キャッシュ検索手段130において、
検索式をキーとしたトライ木構造を有するキャッシュ索引木をルートノードから探索し、入力された検索式に包含される検索式をキーとするノードを探索し、該ノードに対応するキャッシュが存在しているキャッシュDBの格納位置を抽出する手段を含む。
検索式をキーとしたトライ木構造を有するキャッシュ索引木をルートノードから探索し、入力された検索式に包含される検索式をキーとするノードを探索し、該ノードに対応するキャッシュが存在しているキャッシュDBの格納位置を抽出する手段を含む。
図2は、本発明の原理を説明するための図である。
本発明(請求項5)は、入力された検索式に基づいて、該検索式に適合する検索対象を検索するための情報検索方法であって、
キャッシュ索引構築手段が、条件式と転置リストからなるキャッシュを取得して入力された検索式に包含されるキャッシュを、キャッシュ記憶手段のキャッシュが格納されているキャッシュDBから検索するためのキャッシュ索引木を該キャッシュ記憶手段上に生成するキャッシュ索引構築ステップ(ステップ1)を、検索処理の前に予め行っておき、
検索条件獲得手段が、ユーザから検索式を受け付ける検索条件獲得ステップ(ステップ2)と、
キャッシュ検索手段が、キャッシュ索引木を参照して、入力された検索式に包含されるキャッシュの格納位置を、キャッシュDBから取得するキャッシュ検索ステップ(ステップ3)と、
キャッシュ組み合わせ探索手段が、キャッシュ検索ステップ(ステップ3)において取得したキャッシュの最適な組み合わせを探索するキャッシュ組み合わせ探索ステップ(ステップ4)と、
検索結果統合手段が、キャッシュDBを検索し、キャッシュ組み合わせに対応するキャッシュから第1の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、検索対象に対する転置索引が格納された転置索引記憶手段から第2の転置リストを取得し、第1の転置リストと該第2の転置リストを統合して検索結果とする検索結果統合ステップ(ステップ5)と、
出力手段が、検索結果統合ステップで取得した検索結果を出力する出力ステップ(ステップ6)と、を行う。
キャッシュ索引構築手段が、条件式と転置リストからなるキャッシュを取得して入力された検索式に包含されるキャッシュを、キャッシュ記憶手段のキャッシュが格納されているキャッシュDBから検索するためのキャッシュ索引木を該キャッシュ記憶手段上に生成するキャッシュ索引構築ステップ(ステップ1)を、検索処理の前に予め行っておき、
検索条件獲得手段が、ユーザから検索式を受け付ける検索条件獲得ステップ(ステップ2)と、
キャッシュ検索手段が、キャッシュ索引木を参照して、入力された検索式に包含されるキャッシュの格納位置を、キャッシュDBから取得するキャッシュ検索ステップ(ステップ3)と、
キャッシュ組み合わせ探索手段が、キャッシュ検索ステップ(ステップ3)において取得したキャッシュの最適な組み合わせを探索するキャッシュ組み合わせ探索ステップ(ステップ4)と、
検索結果統合手段が、キャッシュDBを検索し、キャッシュ組み合わせに対応するキャッシュから第1の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、検索対象に対する転置索引が格納された転置索引記憶手段から第2の転置リストを取得し、第1の転置リストと該第2の転置リストを統合して検索結果とする検索結果統合ステップ(ステップ5)と、
出力手段が、検索結果統合ステップで取得した検索結果を出力する出力ステップ(ステップ6)と、を行う。
また、本発明(請求項6)は、キャッシュ索引構築ステップ(ステップ1)において、
キャッシュDBに格納されたキャッシュに基づいて、検索式文字列、キャッシュ先頭へのポインタ、子ノードを検索するための情報をノード毎にキャッシュ索引木に設定する。
キャッシュDBに格納されたキャッシュに基づいて、検索式文字列、キャッシュ先頭へのポインタ、子ノードを検索するための情報をノード毎にキャッシュ索引木に設定する。
また、本発明(請求項7)は、キャッシュ索引構築ステップ(ステップ1)において、
キャッシュDBに格納されたキャッシュに基づいて、検索式文字列、キャッシュへのポインタ、子ノードを表すハッシュへのポインタをキャッシュ索引木に設定する。
キャッシュDBに格納されたキャッシュに基づいて、検索式文字列、キャッシュへのポインタ、子ノードを表すハッシュへのポインタをキャッシュ索引木に設定する。
また、本発明(請求項8)は、キャッシュ検索ステップ(ステップ3)において、
検索式をキーとしたトライ木構造を有するキャッシュ索引木をルートノードから探索し、入力された検索式に包含される検索式をキーとするノードを探索し、該ノードに対応するキャッシュが存在しているキャッシュDBの格納位置を抽出する。
検索式をキーとしたトライ木構造を有するキャッシュ索引木をルートノードから探索し、入力された検索式に包含される検索式をキーとするノードを探索し、該ノードに対応するキャッシュが存在しているキャッシュDBの格納位置を抽出する。
本発明(請求項9)は、請求項1乃至4のいずれか1項に記載の情報検索装置を構成する各手段としてコンピュータを機能させる情報検索プログラムである。
本発明(請求項10)は、請求項9記載の情報検索プログラムを格納したコンピュータ読み取り可能な記録媒体である。
本発明は、入力された検索式に包含されるキャッシュの検索を可能にすることにより、検索式と完全一致しなくともキャッシュを利用可能とすることができる。
また、入力された検索式に包含されるキャッシュの中から適切なキャッシュの組み合わせを選択することにより、ディスク等の記憶媒体に対するアクセス回数を低減させることが可能となる。
以下、図面と共に本発明の実施の形態を説明する。
図3は、本発明の一実施の形態における情報検索装置の構成を示す。
同図に示す情報検索装置100は、キャッシュ記憶部30、転置索引記憶部50、キャッシュ索引構築部110、検索条件獲得部120、キャッシュ検索部130、キャッシュ検索組み合わせ探索部140、検索結果統合部150、検索結果出力部160、キャッシュ記憶部30、転置索引記憶部50から構成され、検索条件獲得部120は、検索条件が入力される入力装置1と接続され、検索結果出力部160は、検索結果の出力先である出力装置2と接続されている。
キャッシュ記憶部30は、図4に示すように、キャッシュ索引木32とキャッシュDB33から構成される。キャッシュ索引木32は、図5に示すように、ルートノードをトップとする複数のノードの情報を有する木構造であり、各ノード情報として、図6に示すように、
・検索条件:検索ワード(検索式)を表す文字列;
・キャッシュ:キャッシュの先頭へのポインタ;
・状態遷移フラグ:探索に用いるフラグ;
・子ノード:子ノードの検索ワード(検索式)をキー
の各情報を管理する。キャッシュDB33は、図5に示すように、検索式とキャッシュ(転置リスト)から構成される。
・検索条件:検索ワード(検索式)を表す文字列;
・キャッシュ:キャッシュの先頭へのポインタ;
・状態遷移フラグ:探索に用いるフラグ;
・子ノード:子ノードの検索ワード(検索式)をキー
の各情報を管理する。キャッシュDB33は、図5に示すように、検索式とキャッシュ(転置リスト)から構成される。
また、図7に示すキャッシュ索引木32は、検索式文字列、子ノードハッシュへのポインタ、キャッシュへのポインタ、子ノードを表すハッシュを管理する例である。
転置索引記憶部50は、検索対象に対する一般的な転置索引が格納されている。転置索引には、検索式を入力とし、検索式を満たす検索対象のリストである転置リストを出力する。なお、転置リストのみならず、必要に応じて文書のスコア値などの情報が格納される。
キャッシュ索引構築部110は、入力された検索式に包含されるキャッシュをキャッシュが格納されているキャッシュDB33から検索するためのキャッシュ索引木32を生成する。そのために、キャッシュDB33から条件式と転置リストを取得してキャッシュ記憶部30上にキャッシュ索引木32を生成する。キャッシュ索引木の例は図6に示す通りである。なお、キャッシュDB33は、図8に示すような条件式と転置リストからなるクエリログを用い、LRUなどの一般的なキャッシングアルゴリズムを用いて予め構築されているものとする。
検索条件獲得部120は、入力装置1から検索式を取得する。ここでは、検索式に含まれる検索条件を、キャッシュ索引木構築に用いるソート方法と同一の方法でソートし、キャッシュ検索部130に渡す。ソート方法に関しては後述する。
キャッシュ検索部130は、検索条件獲得部120から取得した検索式に基づいて、キャッシュ記憶部30のキャッシュ索引木32を検索し、取得した検索式に包含されるキャッシュの格納位置をキャッシュDB33から取得する。これにより、当該格納位置からキャッシュを取得することができる。
キャッシュ組み合わせ探索部140は、キャッシュ検索部130で取得したキャッシュと、入力された検索式に基づいて、最適な組み合わせのキャッシュを選択する。最適な組み合わせのキャッシュの選択方法については後述する。
検索結果統合部150は、キャッシュ組み合わせ探索部140で選択された最適な組み合わせのキャッシュに対応するキャッシュの転置リスト(A)を取得し、さらに、当該最適な組み合わせのキャッシュに含まれない検索式により転置索引記憶部50を検索して、転置リスト(B)を取得する。そして、転置リスト(A)と転置リスト(B)を統合し、検索結果を生成する。
検索結果出力部160は、統合された検索結果を出力装置2に出力する。
次に、上記の構成における動作を説明する。
最初に、キャッシュ索引構築部110において、検索処理の実行前に、キャッシュ検索を行う際に用いるキャッシュ索引木32を構築する処理について説明する。
図9は、本発明の一実施の形態におけるキャッシュ索引木構築処理のフローチャートである。
ステップ101) 既に構築されているキャッシュDB33から条件式と転置リストからなるキャッシュを取得し、一時的にメモリ(図示せず)に格納する。
ステップ102) キャッシュ記憶部30上に条件式をキーとするトライ木の構築を開始する。
ステップ103) キャッシュ索引構築部110は、トライ木に基づいてルートノードをキャッシュ記憶部30上のキャッシュ索引木32に作成する。
ステップ104) 全ての条件式をキャッシュDB33に登録したかを判定し、登録した場合は当該処理を終了し、登録していない場合はステップ105に移行する。
ステップ105) ステップ101で読み込まれた、メモリ(図示せず)に格納されたキャッシュからレコードを1件読み出す。
ステップ106) 読み出したキャッシュの条件式に対応するトライ木のノードをキャッシュ索引木32に追加する。
ステップ107) ルートノードの検索式に対応するキャッシュをキャッシュDB33に登録し、当該キャッシュのキャッシュDB33上の格納位置をキャッシュ索引木32に記録し、ステップ104に戻る。
上記の条件式をキーとするトライ木について説明する。
条件式は複数の検索条件の集合からなる。
トライ木の構築及びトライ木を用いた検索時には、これらの検索条件を構築時・検索時で共通なソート方法によってソートし、1つのノードにつき一つの検索条件と対応付ける。対応付け及びソートの方法としては、例えば、検索条件を文字列に変換し、文字コード順にソートし、各ノードに検索条件を表す文字列を格納する手法がある。トライ木ではルートノードからあるノードに至るまでに通過するノードの持つ値を順につなげたものがキーとなるため、例えば、ルートノードから検索条件"りんご"が記録されたあるノードに至るまでに、
ルート⇒ばなな⇒みかん⇒りんご
という経路を辿る必要がある場合、このノードに対応する検索式は、
(ばなな みかん りんご)
となる。
ルート⇒ばなな⇒みかん⇒りんご
という経路を辿る必要がある場合、このノードに対応する検索式は、
(ばなな みかん りんご)
となる。
一方、検索式(みかん りんご ばなな)に対応するノードを検索する時には、まず、検索式に含まれる検索条件を、トライ木構築時と同じソート方法(ここでは50音順)でソートし、
(ばなな みかん りんご)
としてから、順に、
ルート⇒ばなな⇒みかん⇒りんご
と辿ることで、検索式に対応するノードにアクセスすることができる。
(ばなな みかん りんご)
としてから、順に、
ルート⇒ばなな⇒みかん⇒りんご
と辿ることで、検索式に対応するノードにアクセスすることができる。
次に、検索時の処理について説明する。
図10は、本発明の一実施の形態における検索時のフローチャートである。
ステップ201) 検索条件獲得部120は、ユーザから入力装置1を介して検索式の入力を受け付ける。
ステップ202) キャッシュ検索部130は、検索式に基づいて、トライ木であるキャッシュ記憶部30のキャッシュ索引木32を探索し、ユーザ入力の検索式に包含されるキャッシュのキャッシュDB33上の格納位置を読み出し、当該格納位置に格納されているキャッシュを取得する。
ステップ203) 読み出したキャッシュの件数が0件か、または、1件以上であるかを判定し、0件の場合はステップ206に移行し、1件以上の場合はステップ204に移行する。
ステップ204) キャッシュ組み合わせ探索部140は、終了条件を満たすまでキャッシュを選択していく貪欲法を用いて、最適なキャッシュの組み合わせを探索する。なお、当該処理の詳細については後述する。
ステップ205) 検索結果統合部150は、ステップ204で取得したキャッシュ組み合わせに対応する転置リストをキャッシュDB33から取得する。
ステップ206) 検索結果統合部150は、ステップ202で取得したユーザから入力された検索式に含まれていて、ステップ204で取得したキャッシュ組み合わせには含まれていない検索式をキーとして、転置索引記憶部50の転置索引を検索し、転置リストを取得する。
ステップ207) 検索結果統合部150は、ステップ205とステップ206で取得した転置リストのインターセクションを計算し、検索結果を取得する。
ステップ208) 検索結果出力部160は、検索結果統合部150で取得した検索結果を表示装置当の出力装置2に出力する。
ステップ209) また、検索結果出力部160は、検索式、検索結果、及び問い合わせが行われた時刻のタイムスタンプを、検索式ログを格納するデータベース等の記憶手段に追加格納する。
次に、上記のステップ202の入力された検索式に包含されるキャッシュの検索処理について詳細に説明する。
図11は、本発明の一実施の形態における図10のステップ202の詳細なフローチャートである。
ステップ210) キャッシュ検索部130は、ユーザから入力された検索式とキャッシュ記憶部30のキャッシュ索引木32を読み込む。なお、キャッシュ索引木32は、検索式をキーとしたトライ木になっている。
ステップ220) キャッシュ索引木32のルートノードから探索を開始する。なお、この探索は例えば、深さ優先探索等の既存の技術を用いるものとするが、これに限定されるものではない。
ステップ230) 探索が終了したら当該処理を終了し、終了していない場合はステップ240に移行する。
ステップ240) キャッシュ索引木32から、ユーザから入力された検索式に包含される検索式を有するノードを探索する。具体的には、キャッシュ索引木を用いた、入力された検索式に包含されるキャッシュの探索を行う。
まず、入力された検索式に含まれる検索条件をキャッシュ索引木構築時と同じソート方法でソートする。
ユーザ入力の検索式に含まれる検索条件を先頭から順に参照しながら、ルートノードから探索を開始する。この際、以下のルールに基づいて探索を行う。
(1)ルートノードの状態遷移フラグを立てる。
ここで、「状態遷移フラグを立てる」とは、当該ノードをメモリ上などに一時的に記録することを指し、例えば、図6記載の状態遷移フラグを、記録時には「1」、非記録時には「0」に設定する方法等がある。
(2)状態遷移フラグが立っている全てのノードに対して下記の判定に基づき(A)または(B)の処理を行う。
(A)現在参照している検索条件に対応する子ノードが存在する場合;
当該子ノードの状態遷移フラグを立て、次の検索条件を参照する。
当該子ノードの状態遷移フラグを立て、次の検索条件を参照する。
(B)現在参照している検索条件に対応する子ノードが存在しない場合;
次の検索条件を参照する。
次の検索条件を参照する。
(3)全ての検索条件を参照するまで(1)を繰り返し、その時点で状態遷移フラグが立っているノードを返却し、状態遷移フラグを初期化する。
ステップ250) ノードのキャッシュ(キャッシュDBの先頭へのポインタ)に対応するキャッシュがキャッシュDB30に存在するかを判定し、存在する場合はステップ260に移行し、存在しない場合はステップ230に移行する。
ステップ260) 当該キャッシュが存在するキャッシュ記憶部30のキャッシュDB33における格納位置を取得し、当該格納位置のキャッシュを返却する。
次に、図10のキャッシュ組み合わせ探索部140における、ステップ204の最適なキャッシュ組み合わせの探索処理について詳細に説明する。
図12は、本発明の一実施の形態における図10のステップ204の詳細なフローチャートである。
ステップ301) ユーザから入力された検索式及び、図10のステップ202で取得したキャッシュを読み込む。
ステップ302) 読み込んだキャッシュから、最適なキャッシュの組み合わせの探索を開始する。ここで最適なキャッシュの組み合わせを選択する方法としては、コスト関数を作成する方法、DF値に基づく方法、検索式の組み合わせ数に基づく方法などが考えられる。その一例として、検索式の組み合わせ数に基づく場合について説明する。
例えば、ステップ301でユーザから入力された検索式が「A B C D E…(x)」とすると、ステップ301で取得したキャッシュは、複数の検索式と転置リストの組からなるものであり、ここでの検索式は、ステップ301での検索式と同じく複数の検索条件からなる。例えば、検索式「A C」に対応する転置リストを(a)、検索式「A D E」に対応する転置リストを(b)、検索式「A E」に対応する転置リストを(c)、検索式「B」に対応する転置リストを(d)、検索式「B D」に対応する転置リストを(e)とする。この場合、例えば、転置リスト(a)を選択することにより(x)の検索式A,Cが被覆される。ここで「被覆される」とは、新たに選択するキャッシュが、ユーザ入力に含まれる検索式を含むことを指す。また、転置リスト(a)が選択済みであるとき、(x)のB,D,Eは未被覆な検索式である。ここで「未被覆な検索式」とは、それまでに選択されたキャッシュにより被覆されていない検索式を指す。
複数のキャッシュから最適なキャッシュの組み合わせを探索するために、終了条件を満たすまで一つずつキャッシュを選択していく貪欲法を用いる。
ステップ303) 探索が終了した場合はステップ306に移行し、終了していない場合は、ステップ304に移行する。当該終了条件は、(x)が最大限被覆されたか否かを判定している。つまりどのキャッシュを選択しても、新たに被覆される検索式が存在しない場合はステップ306に移行する。
ステップ304) 上記(x)中の未被覆な検索式を最大限被覆するキャッシュを最適なキャッシュとして選択する。
ステップ305) ステップ304で選択されたキャッシュを、メモリ(図示せず)上のキャッシュ組み合わせに追加し、ステップ303に移行する。
ステップ306) キャッシュの組み合わせを返却する。
以降、図10のステップ205以降の処理を行う。
上記のステップ303〜ステップ305の処理は、例えば、(x)として「A B C D E」が入力された場合に、以下のように処理を行い、ステップ303により形成されるループを3回繰り返した時点で終了条件を満たし、ループを抜ける。
(x)[ABCDE]入力;
↓
(b)[A D E]を選択;
↓
(x)[B C]入力;
↓
(d)[B]を選択;
↓
(x)[C]を入力;
↓
(a)[A C]を選択:
なお、上記の実施の形態では、図3に示す情報検索装置100について説明したが、情報検索装置の各構成要素における動作をプログラムとして構築し、情報検索装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
↓
(b)[A D E]を選択;
↓
(x)[B C]入力;
↓
(d)[B]を選択;
↓
(x)[C]を入力;
↓
(a)[A C]を選択:
なお、上記の実施の形態では、図3に示す情報検索装置100について説明したが、情報検索装置の各構成要素における動作をプログラムとして構築し、情報検索装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
また、構築されたプログラムをハードディスク装置や、フレキシブルディスク・CD−ROM等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
本発明は、検索結果キャッシュ技術において、応答性の高い場所に格納されたキャッシュを検索する技術に適用可能である。
1 入力装置
2 出力装置
30 キャッシュ記憶手段、キャッシュ記憶部
32 キャッシュ索引木
33 キャッシュDB
50 転置索引記憶手段、転置索引記憶部
100 情報検索装置
110 キャッシュ索引構築手段、キャッシュ索引構築部
120 検索条件獲得手段、検索条件獲得部
130 キャッシュ検索手段、キャッシュ検索部
140 キャッシュ組み合わせ手段、キャッシュ組み合わせ部
150 検索結果統合手段、検索結果統合部
160 出力手段、検索結果出力部
2 出力装置
30 キャッシュ記憶手段、キャッシュ記憶部
32 キャッシュ索引木
33 キャッシュDB
50 転置索引記憶手段、転置索引記憶部
100 情報検索装置
110 キャッシュ索引構築手段、キャッシュ索引構築部
120 検索条件獲得手段、検索条件獲得部
130 キャッシュ検索手段、キャッシュ検索部
140 キャッシュ組み合わせ手段、キャッシュ組み合わせ部
150 検索結果統合手段、検索結果統合部
160 出力手段、検索結果出力部
Claims (10)
- 入力された検索式に基づいて、該検索式に適合する検索対象を検索するための情報検索装置であって、
条件式と転置リストからなるキャッシュを取得して前記入力された検索式に包含されるキャッシュを、キャッシュ記憶手段のキャッシュが格納されているキャッシュデータベース(DB)から検索するためのキャッシュ索引木を該キャッシュ記憶手段上に、検索処理に先立って生成するキャッシュ索引構築手段と、
ユーザから前記検索式を受け付ける検索条件獲得手段と、
前記キャッシュ索引木を参照して、前記入力された検索式に包含されるキャッシュの格納位置を、前記キャッシュ記憶手段の前記キャッシュDBから取得するキャッシュ検索手段と、
前記キャッシュ検索手段において取得したキャッシュの最適な組み合わせを探索するキャッシュ組み合わせ探索手段と、
前記キャッシュDBを検索し、前記キャッシュ組み合わせに対応するキャッシュから第1の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、検索対象に対する転置索引が格納された転置索引記憶手段から第2の転置リストを取得し、前記第1の転置リストと該第2の転置リストを統合して検索結果とする検索結果統合手段と、
前記検索結果統合手段で取得した前記検索結果を出力する出力手段と、
を有することを特徴とする情報検索装置。 - 前記キャッシュ索引構築手段は、
前記キャッシュDBに格納された前記キャッシュに基づいて、検索式文字列、キャッシュ先頭へのポインタ、子ノードを検索するための情報をノード毎に前記キャッシュ索引木に設定する手段を含む請求項1記載の情報検索装置。 - 前記キャッシュ索引構築手段は、
前記キャッシュDBに格納された前記キャッシュに基づいて、検索式文字列、キャッシュへのポインタ、子ノードを表すハッシュへのポインタを前記キャッシュ索引木に設定する手段を含む請求項1記載の情報検索装置。 - 前記キャッシュ検索手段は、
検索式をキーとしたトライ木構造を有する前記キャッシュ索引木をルートノードから探索し、前記入力された検索式に包含される検索式をキーとするノードを探索し、該ノードに対応するキャッシュが存在している前記キャッシュDBの格納位置を抽出する手段を含む請求項1記載の情報検索装置。 - 入力された検索式に基づいて、該検索式に適合する検索対象を検索するための検索装置における情報検索方法であって、
キャッシュ索引構築手段が、条件式と転置リストからなるキャッシュを取得して前記入力された検索式に包含されるキャッシュを、キャッシュ記憶手段のキャッシュが格納されているキャッシュデータベース(DB)から検索するためのキャッシュ索引木を該キャッシュ記憶手段上に生成するキャッシュ索引構築ステップを、検索処理の前に予め行っておき、
検索条件獲得手段が、ユーザから前記検索式を受け付ける検索条件獲得ステップと、
キャッシュ検索手段が、前記キャッシュ索引木を参照して、前記入力された検索式に包含されるキャッシュの格納位置を、前記キャッシュDBから取得するキャッシュ検索ステップと、
キャッシュ組み合わせ探索手段が、前記キャッシュ検索ステップにおいて取得したキャッシュの最適な組み合わせを探索するキャッシュ組み合わせ探索ステップと、
検索結果統合手段が、前記キャッシュDBを検索し、前記キャッシュ組み合わせに対応するキャッシュから第1の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、検索対象に対する転置索引が格納された転置索引記憶手段から第2の転置リストを取得し、前記第1の転置リストと該第2の転置リストを統合して検索結果とする検索結果統合ステップと、
出力手段が、前記検索結果統合ステップで取得した前記検索結果を出力する出力ステップと、
を行うことを特徴とする情報検索方法。 - 前記キャッシュ索引構築ステップにおいて、
前記キャッシュDBに格納された前記キャッシュに基づいて、検索式文字列、キャッシュ先頭へのポインタ、子ノードを検索するための情報をノード毎に前記キャッシュ索引木に設定する請求項5記載の情報検索方法。 - 前記キャッシュ索引構築ステップにおいて、
前記キャッシュDBに格納された前記キャッシュに基づいて、検索式文字列、キャッシュへのポインタ、子ノードを表すハッシュへのポインタを前記キャッシュ索引木に設定する請求項5記載の情報検索方法。 - 前記キャッシュ検索ステップにおいて、
検索式をキーとしたトライ木構造を有する前記キャッシュ索引木をルートノードから探索し、前記入力された検索式に包含される検索式をキーとするノードを探索し、該ノードに対応するキャッシュが存在している前記キャッシュDBの格納位置を抽出する請求項5記載の情報検索方法。 - 請求項1乃至4のいずれか1項に記載の情報検索装置を構成する各手段としてコンピュータを機能させることを特徴とする情報検索プログラム。
- 請求項9記載の情報検索プログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008012027A JP2009175896A (ja) | 2008-01-22 | 2008-01-22 | 情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008012027A JP2009175896A (ja) | 2008-01-22 | 2008-01-22 | 情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009175896A true JP2009175896A (ja) | 2009-08-06 |
Family
ID=41030937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008012027A Pending JP2009175896A (ja) | 2008-01-22 | 2008-01-22 | 情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009175896A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011198113A (ja) * | 2010-03-19 | 2011-10-06 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索装置及び方法及びプログラム |
JP2012123566A (ja) * | 2010-12-07 | 2012-06-28 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索装置、文書検索方法及び文書検索プログラム |
-
2008
- 2008-01-22 JP JP2008012027A patent/JP2009175896A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011198113A (ja) * | 2010-03-19 | 2011-10-06 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索装置及び方法及びプログラム |
JP2012123566A (ja) * | 2010-12-07 | 2012-06-28 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索装置、文書検索方法及び文書検索プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6028567B2 (ja) | データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法 | |
CN102768681B (zh) | 一种用于搜索输入的推荐系统及方法 | |
KR970029146A (ko) | 래티스를 키로 하여 검색을 행하는 사전 검색 장치 및 방법 | |
US7526497B2 (en) | Database retrieval apparatus, retrieval method, storage medium, and program | |
CN102542052A (zh) | 优先散列索引 | |
CN106528846A (zh) | 一种检索方法及装置 | |
JP2010128677A (ja) | テキスト要約装置、その方法およびプログラム | |
CN105843882A (zh) | 一种信息匹配方法及装置 | |
CN104199954A (zh) | 一种用于搜索输入的推荐系统及方法 | |
JP4237813B2 (ja) | 構造化文書管理システム | |
US20120124060A1 (en) | Method and system of identifying adjacency data, method and system of generating a dataset for mapping adjacency data, and an adjacency data set | |
JP2008083769A (ja) | 文書検索装置および文書検索方法 | |
JP5980520B2 (ja) | 効率的にクエリを処理する方法及び装置 | |
CN109783599A (zh) | 基于多种存储介质的知识图谱检索方法及系统 | |
JP2009175896A (ja) | 情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体 | |
JP2012141681A (ja) | クエリセグメント位置決定装置 | |
JP2008026964A (ja) | 検索処理装置及びプログラム | |
JP2005173847A (ja) | 情報検索装置、情報検索方法、プログラム及び該プログラムを記録した記録媒体 | |
CN107820612A (zh) | 位向量搜索索引 | |
JP6634001B2 (ja) | テキスト要約装置、方法、及びプログラム | |
JP6496286B2 (ja) | 施設検索装置、施設検索方法、コンピュータプログラム及びコンピュータプログラムを記録した記録媒体 | |
JP2000322416A (ja) | 文書検索装置 | |
CN109710844A (zh) | 基于搜索引擎的快速准确定位文件的方法和设备 | |
JP2010003266A (ja) | クエリ生成装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体 | |
JP4304226B2 (ja) | 構造化文書管理システム、構造化文書管理方法及びプログラム |