(57)【要約】【課題】検索のために使用するメモリ量を抑制する。【解決手段】第１索引記憶部３６は、複数のキーワードのそれぞれに該当する１つ以上の検索対象文書の識別情報を連続領域に記憶する。第２索引記憶部３８は、各キーワードと、第１索引記憶部３６において各キーワードに該当する検索対象文書の識別情報が記憶された領域の先頭位置と長さを対応付けて記憶する。検索実行部２８は、第２索引記憶部３８において検索キーワードに対応付けられた開始位置と長さを検索し、第１索引記憶部３６においてその開始位置と長さにより特定される領域に記憶された１つ以上の検索対象文書の識別情報を検索する。検索結果出力部３０は、検索実行部２８により検索された識別情報により特定される１つ以上の検索対象文書に関する情報を出力する。【選択図】図１
2016139288.tif 000002
【特許請求の範囲】
【請求項１】
複数のキーワードのそれぞれに該当する１つ以上の検索対象文書の識別情報を連続領域に記憶する第１索引記憶部と、
前記複数のキーワードのそれぞれと、前記第１索引記憶部において各キーワードに該当する検索対象文書の識別情報が記憶された領域の先頭位置と長さを対応付けて記憶する第２索引記憶部と、
検索のキーワードを取得する検索キー取得部と、
前記第２索引記憶部において前記検索のキーワードに対応付けられた開始位置と長さを検索し、前記第１索引記憶部において前記開始位置と長さにより特定される領域に記憶された１つ以上の検索対象文書の識別情報を検索する検索実行部と、
前記検索実行部により検索された識別情報により特定される１つ以上の検索対象文書に関する情報を出力する検索結果出力部と、
を備えることを特徴とする検索装置。
【請求項２】
検索対象文書の集合データを取得する検索対象取得部と、
所定の基準にしたがって、複数のキーワードのそれぞれと、各キーワードに該当する１つ以上の検索対象文書との対応関係を示す情報を所定の記憶領域へ格納する対応関係設定部と、
前記対応関係を示す情報にしたがって、各キーワードに該当する１つ以上の検索対象文書の識別情報を連続領域へ格納することにより前記第１索引記憶部のデータを設定し、各キーワードと、前記第１索引記憶部において各キーワードに該当する検索対象文書の識別情報が記憶された領域の先頭位置と長さを対応付けることにより前記第２索引記憶部のデータを設定する索引設定部と、
をさらに備えることを特徴とする請求項１に記載の検索装置。
【請求項３】
前記第１索引記憶部のデータと第２索引記憶部のデータが設定された場合に、前記対応関係を示す情報を記憶領域から消去する対応関係消去部をさらに備えることを特徴とする請求項２に記載の検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理技術に関し、特に検索技術に関する。
【背景技術】
【０００２】
母集団のデータの中から特定の値を検索する方法について、これまでも様々な提案がなされてきた（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２６５４０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
情報化社会が進展し、検索対象となる母集団のデータ量は日々増大している。これに伴い、検索に要するメモリ量も増加してしまうことがある。特許文献１のシステムでは、その図１に示されるように、検索データベースに対して、検索項目に関係するファイルが記憶されているアドレスを指定するためのインデックス情報が記述された中間ファイルを生成する。そして、作成した中間ファイルを参照して検索データベースから検索項目に関係するデータを検索する。
【０００５】
しかし特許文献１のシステムでは、その図７に示されるように、検索項目の階層毎、すなわち検索項目を構成する１文字毎に中間ファイルを設ける。そのため、検索のために使用するメモリ量を十分に抑制できないことがあると本発明者は考えた。
【０００６】
本願発明は本発明者の上記課題認識に基づきなされたものであり、その主な目的は、検索のために使用するメモリ量を抑制するための技術を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の検索装置は、複数のキーワードのそれぞれに該当する１つ以上の検索対象文書の識別情報を連続領域に記憶する第１索引記憶部と、複数のキーワードのそれぞれと、第１索引記憶部において各キーワードに該当する検索対象文書の識別情報が記憶された領域の先頭位置と長さを対応付けて記憶する第２索引記憶部と、検索のキーワードを取得する検索キー取得部と、第２索引記憶部において検索のキーワードに対応付けられた開始位置と長さを検索し、第１索引記憶部において開始位置と長さにより特定される領域に記憶された１つ以上の検索対象文書の識別情報を検索する検索実行部と、検索処理部により検索された識別情報により特定される１つ以上の検索対象文書に関する情報を出力する検索結果出力部と、を備える。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を、方法、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、検索のために使用するメモリ量を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態の検索装置の構成を示すブロック図である。
【図２】展開情報記憶部が記憶する展開情報を模式的に示す図である。
【図３】検索用データを模式的に示す図である。
【図４】通信システムの構成を示す図である。
【発明を実施するための形態】
【００１１】
実施の形態では、検索処理に要するメモリ消費量の低減を実現する検索装置を提案する。この検索装置は、各キーワードに該当する文書のＩＤを連続する記憶領域に記録した第１索引と、第１索引における各キーワードに対応する領域の先頭位置と長さを示す第２索引を参照し、指定されたキーワードに基づく検索を実行する。
【００１２】
検索装置は、ＰＣやサーバ等、汎用的な情報処理装置により実現されてもよい。また検索装置は、通信装置等（スイッチやルータ等）に組み込まれてもよく、組み込み先装置の機能の一部として実現されてもよい。なお、検索装置は便宜的な名称であり、以下説明する機能を備える検索アプリケーションソフトウェアが導入された情報処理装置や通信装置等であってもよい。
【００１３】
以下、検索の対象となるデータを「検索対象文書」とも呼ぶ。検索対象文書は、典型的には文字や記号等により構成される情報である。例えば、検索対象の文字列・項目とも言え、単語やフレーズ等、様々な形式の情報を含む。
【００１４】
図１は、実施の形態の検索装置１０の構成を示すブロック図である。検索装置１０は、制御部１２と記憶部１４を備える。本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵやメモリをはじめとする素子や機械装置、電子回路で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現される。ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば、制御部１２の各ブロックは、検索装置１０のＣＰＵが検索アプリケーションソフトウェアを実行することにより実現されてもよい。また記憶部１４の各ブロックは、検索装置１０のメモリが各ブロックに対応するデータを記憶することにより実現されてもよい。
【００１５】
制御部１２は、検索処理に関するデータ処理を実行する。記憶部１４は、制御部１２のデータ処理のための各種データを保持する記憶領域である。制御部１２は、検索対象取得部２０、展開部２２、検索用データ設定部２４、展開情報消去部２５、検索キー取得部２６、検索実行部２８、検索結果出力部３０を含む。記憶部１４は、展開情報記憶部３２、検索対象記憶部３４、第１索引記憶部３６、第２索引記憶部３８を含む。
【００１６】
検索対象取得部２０は、１つ以上の検索対象文書を含む集合データ（例えばファイル等）を取得する。例えば、複数の集合データを外部装置から読込み、または受信して記憶部１４の所定領域に格納してもよい。
【００１７】
展開部２２は、検索対象文書の集合データを展開し、複数のキーワードのそれぞれと、各キーワードに該当する１つ以上の検索対象文書との対応関係を示す情報（以下「展開情報」とも呼ぶ。）を生成する。展開部２２は、展開情報を記憶部１４へ格納することにより展開情報記憶部３２のデータを設定する。展開部２２は対応関係設定部とも言え、展開情報記憶部３２は対応関係記憶部とも言える。
【００１８】
図２は、展開情報記憶部３２が記憶する展開情報を模式的に示す。展開情報は、複数のキーワードのそれぞれと、各キーワードによる検索でヒットさせるべき検索対象文書を対応付けたデータである。言い換えれば、各キーワードに該当する文書として、検索結果に含めるべき１つ以上の検索対象文書を示すデータである。例えば、キーワードαが「特許」の場合、文書Ａは特許庁に関する情報、文書Ｃは特許・実用新案審査基準に関する情報、文書Ｄは特許電子図書館に関する情報であってもよい。また、後述の通信システム５０では、個々のキーワードと検索対象文書のそれぞれは、１４バイトを上限とする文字列であってもよい。
【００１９】
展開部２２は、所定の基準にしたがって展開情報を生成する。展開部２２は、予め定められた複数のキーワードのそれぞれに対して、集合データ内で各キーワードを含む検索対象文書や、集合データ内で各キーワードに対応付けられている検索対象文書を対応付けてもよい。
【００２０】
例えば、第１の集合データにおいて、キーワードαと文書Ａが対応付けられ、キーワードγと文書Ｂが対応付けられているとする。また、第２の集合データにおいて、キーワードαと文書Ｃおよび文書Ｄが対応付けられ、キーワードγと文書Ｃおよび文書Ｄが対応付けられているとする。この場合、展開部２２は、図２で示すように、キーワードαと文書Ａ・Ｃ・Ｄを対応付け、キーワードγと文書Ｂ・Ｃ・Ｄを対応付けた展開情報を生成してもよい。
【００２１】
また展開部２２は、所定の規則にしたがって検索対象文書中からキーワードを自動で抽出してもよい。例えば、複数の検索対象文書に記述された文字列や、文書内の所定位置に記述された文字列をキーワードとして識別してもよい。そして、識別したキーワードと、そのキーワードが設定された文書とを対応付けることにより展開情報を生成してもよい。また展開部２２は、公知の手法を使用して、検索対象文書の集合データから展開情報を生成してもよい。
【００２２】
図１に戻り、検索用データ設定部２４は、展開情報記憶部３２に保持された展開情報にしたがって、検索のために使用するデータである検索用データを設定する。検索用データは、検索対象情報、第１索引、第２索引を含む。検索用データ設定部２４は、検索対象情報、第１索引、第２索引を生成して記憶部１４へ格納することにより、検索対象記憶部３４、第１索引記憶部３６、第２索引記憶部３８のデータを設定する。すなわち、検索用データ設定部２４は索引設定部とも言える。
【００２３】
図３は検索用データを模式的に示す。図３（ａ）は、検索対象記憶部３４が記憶する検索対象情報を示している。検索用データ設定部２４は、展開情報記憶部３２に記憶された展開情報を参照し、文書の重複を排除して、個々の文書に対してユニークな識別情報（以下「ＩＤ」と呼ぶ。）を付与する。図３（ａ）では、検索用データ設定部２４は、図２の展開情報に基づいて文書Ａ〜文書Ｅの５つを識別し、それぞれの文書にユニークなＩＤ１〜５を割当てたことを示している。
【００２４】
図３（ｂ）は、第１索引記憶部３６が記憶する第１索引を示している。第１索引は、複数のキーワードのそれぞれに該当する１つ以上の検索対象文書それぞれのＩＤをキーワード単位に並べたデータである。第１索引記憶部３６は、記憶部１４の連続する記憶領域に第１索引を記憶する。連続する記憶領域とは、物理的に連続した記憶領域であってもよく、また、ＯＳ（Operating System）等によるメモリ管理上、論理的に連続した記憶領域であってもよい。
【００２５】
検索用データ設定部２４は、各キーワードに該当する１つ以上の検索対象文書のＩＤを記憶部１４における連続する記憶領域へ格納することにより第１索引を設定する。例えば、ＯＳのメモリ管理機能を介して（例えばアドレスが）連続する領域を取得（確保）し、その領域に対してキーワード単位に該当文書のＩＤを順次配置していく。図３（ｂ）の例では、領域４０に、キーワードαに該当する３つの検索対象文書のＩＤを並べて格納する。また領域４２に、キーワードβに該当する４つの検索対象文書のＩＤを並べて格納し、領域４４に、キーワードγに該当する３つの検索対象文書のＩＤを並べて格納する。
【００２６】
図３（ｃ）は、第２索引記憶部３８が記憶する第２索引を示している。第２索引は、複数のキーワードのそれぞれと、第１索引記憶部３６（すなわち第１索引）において各キーワードに該当する検索対象文書のＩＤが記憶された領域の先頭位置を示すオフセット値と、その領域の長さとを対応付けたデータである。オフセット値は、第１索引記憶部３６の記憶領域の先頭、言い換えれば、第１索引の先頭からの距離（例えばバイト長）を示す値である。初期値は０としてもよい。
【００２７】
検索用データ設定部２４は、あるキーワードに該当する１つ以上の検索対象文書のＩＤを第１索引に設定した場合に、ＩＤを設定した領域のオフセット値と長さを識別し、そのオフセット値と長さをそのキーワードに対応付けて第２索引記憶部３８に格納する。この処理をキーワード単位に繰り返すことで第２索引を生成する。なお、あるキーワードに対するオフセット値を、直前に設定した別のキーワードのオフセット値と長さを合計することにより導出してもよい。また、あるキーワードに対する長さを、第１索引に設定したＩＤの個数に基づいて導出してもよい（１つのＩＤが１バイトであれば、３つのＩＤを設定する場合、長さを３バイトと識別する等）。
【００２８】
図１に戻り、展開情報消去部２５は、検索用データ設定部２４による検索用データ（すなわち検索対象情報、第１索引、第２索引）の設定が完了した場合に、メモリ上から展開情報を消去する。すなわち展開情報記憶部３２に格納された展開情報を削除する。
【００２９】
検索キー取得部２６は、キーボード等の入力装置や、検索装置１０に導入されているアプリケーション等から入力された検索のキーワード（以下「検索キー」と呼ぶ。）を取得する。検索キー取得部２６は、通信網を介して接続された外部装置から送信された検索キーを受信してもよい。
【００３０】
検索実行部２８は、検索対象記憶部３４に格納された検索対象情報、第１索引記憶部３６に格納された第１索引、第２索引記憶部３８に格納された第２索引を参照して、検索キーに該当する検索対象文書を検索する。具体的には、第２索引において検索キーに対応付けられたオフセット値と長さを検索して読み込む。次に、第１索引の記憶領域のうち、読み込んだオフセット値と長さにより特定される領域に記憶された１つ以上の検索対象文書のＩＤを検索して読み込む。そして、読み込んだＩＤにより特定される１つ以上の検索対象文書のデータを検索対象情報から読み込む。
【００３１】
例えば、図３の例において、検索キーとしてキーワードβが入力された場合、検索実行部２８は、第２索引にしたがってオフセット値「３」、長さ「４」を識別する。次に、第１索引の記憶領域において、オフセット値「３」、長さ「４」で特定される領域、すなわち領域４２を識別する。そして、領域４２に格納されたＩＤ「１」「２」「３」「５」を検索キーに該当する文書のＩＤとして識別する。検索実行部２８は、識別した文書ＩＤで特定される文書Ａ、Ｂ、Ｃ、Ｅを、検索キーに該当する文書として識別し、それらの情報を検索結果出力部３０に渡す。
【００３２】
検索結果出力部３０は、検索実行部２８により検索されたＩＤ（検索対象文書のＩＤ）により特定される１つ以上の検索対象文書に関する情報を外部へ出力する。検索キーの入力元がキーボード等の入力装置の場合、ディスプレイ等の出力装置へ検索結果を出力してもよい。また、検索キーの入力元が外部装置または他のアプリケーションの場合、検索結果を外部装置または他のアプリケーションへ送信してもよい。検索結果出力部３０は、検索対象文書そのものを出力してもよく、検索対象文書が含む項目名や見出し、一部の文字列等を出力してもよい。また、検索対象文書へのリンクを設定した情報（例えばウェブページデータ）を出力してもよい。
【００３３】
なお、検索対象取得部２０、展開部２２、検索用データ設定部２４、展開情報消去部２５は、検索処理の準備として、検索用データの生成処理を実行する検索環境構築部と言える。その一方、検索キー取得部２６、検索実行部２８、検索結果出力部３０は、検索環境構築部により生成された検索用データを使用して検索処理を実行する検索部と言える。
【００３４】
以上の構成による検索装置１０の動作を説明する。
まず、図１の検索環境構築部の動作として、検索用データ設定の動作を説明する。検索対象取得部２０は、様々な検索対象文書が記録された複数のファイルを読み込む。展開部２２は、複数のファイルのデータに基づいて展開情報を生成して記憶部１４へ格納する。検索用データ設定部２４は、記憶部１４に格納された展開情報に基づいて、検索対象情報、第１索引、第２索引を生成して記憶部１４へ格納する。検索対象情報、第１索引、第２索引の設定が完了したことを契機に、展開情報消去部２５は、それまで記憶部１４に記憶されていた展開情報を消去する。
【００３５】
次に、図１の検索部の動作として、検索用データを使用する検索時の動作を説明する。検索キー取得部２６は、検索要求元から入力された検索キーを取得する。検索実行部２８は、第２索引を検索して、第１索引において検索キーの情報が記憶された領域を識別する。続いて第１索引を検索し、先に識別した第１索引の領域に記憶されたデータであり、１つ以上の検索対象文書のＩＤを識別する。検索結果出力部３０は、検索実行部２８により第２索引から抽出された１つ以上の文書ＩＤにより特定される検索対象文書の情報を検索要求元や所定の出力装置へ出力する。検索キーが検索装置１０へ入力されるたびに、検索キー取得部２６、検索実行部２８、検索結果出力部３０が上記動作を繰り返す。
【００３６】
実施の形態の検索装置１０では、検索のために必要となるデータとして、検索対象情報、第１索引、第２索引を保持すればよく、展開情報は不要である。これにより、検索のために必要となるメモリ量を抑制することができる。例えば、図２の展開情報を使用した検索も可能であるが、展開情報は、文書データそのものを含み、また複数のキーワードに亘って重複する文書が対応付けられ得る。これに対し、実施の形態の検索対象情報には文書の重複はなく、また第１索引、第２索引は１バイト程度のＩＤ等で情報管理ができるため、使用メモリ量を大幅に低減することができる。特に、高速な検索結果応答が必要な装置（通信装置等）では、半導体メモリ（主記憶装置、ＲＡＭ等）に検索用データを保持する必要があるため、使用メモリ量を抑制する意義が高い。
【００３７】
また、実施の形態の検索装置１０によると、検索対象文書の集合データから展開情報を経て、検索に必要な検索対象情報、第１索引、第２索引を自動で作成できる。また、検索対象情報、第１索引、第２索引を作成した場合に、その後の検索処理には不要の展開情報をメモリから消去することにより、メモリの使用量をさらに抑制できる。
【００３８】
次に、検索装置１０の構成を通信装置（例えばレイヤ２スイッチやＳＤＨ装置）に適用する例を説明する。図４は、通信システム５０の構成を示す。通信システム５０は、通信装置５２、通信装置５４、通信装置５６、通信装置５８、通信装置６０、保守端末６２を備える。これらの通信装置は互いに接続され、リング網６４を構成する。
【００３９】
保守端末６２には、検索装置１０の検索環境構築部に対応するアプリケーションが導入される。すなわち保守端末６２は、検索対象取得部２０、展開部２２、検索用データ設定部２４、展開情報消去部２５、展開情報記憶部３２、検索対象記憶部３４、第１索引記憶部３６、第２索引記憶部３８を備える。また保守端末６２は、検索対象情報、第１索引、第２索引のデータを通信装置５２へアップロードして記憶させる検索用データ送信部を備える。
【００４０】
通信装置５２は、検索装置１０の検索部に対応するアプリケーションが導入される。すなわち通信装置５２は、検索キー取得部２６、検索実行部２８、検索結果出力部３０、検索対象記憶部３４、第１索引記憶部３６、第２索引記憶部３８を備える。通信装置５２は、保守端末６２で作成済の検索用データを使用するため展開情報を保持する必要はなく、検索のために使用するメモリ量を低減できる。
【００４１】
保守端末６２は、検索環境構築処理を実行し、その成果物である検索用データを通信装置５２へアップロードする。通信装置５２は、保守端末６２で生成された検索用データを使用して検索処理を実行する。このように、実施の形態で提案した検索装置の機能は、単一の装置で実行されるだけでなく、複数台の装置で分散実行されてもよい。ここでの検索用データは、通信装置５２におけるフレーム伝送時の検索や、保守・設定作業時の検索で使用されるデータであってもよい。
【００４２】
例えば、通信装置５２の設定作業を実行する設定アプリケーションから、通信装置５２の検索アプリケーションにキーワード「リング網６４」が入力されるとする。この場合、通信装置５２の検索アプリケーションは、第２索引、第１索引、検索対象情報を参照して、リング網６４を構成する５つの通信装置を示す５つの検索対象文書を検索し、出力してもよい。５つの検索対象文書はそれぞれ、「通信装置５２」「通信装置５４」「通信装置５６」「通信装置５８」「通信装置６０」に関する文字列であってもよい。
【００４３】
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せによりいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４４】
請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【符号の説明】
【００４５】
１０  検索装置、  ２０  検索対象取得部、  ２２  展開部、  ２４  検索用データ設定部、  ２５  展開情報消去部、  ２６  検索キー取得部、  ２８  検索実行部、  ３０  検索結果出力部、  ３２  展開情報記憶部、  ３４  検索対象記憶部、  ３６  第１索引記憶部、  ３８  第２索引記憶部。
【図１】
2016139288.tif 000003
【図２】
2016139288.tif 000004
【図３】
2016139288.tif 000005
【図４】
2016139288.tif 000006