[go: up one dir, main page]

JP6163854B2 - 検索制御装置、検索制御方法、生成装置および生成方法 - Google Patents

検索制御装置、検索制御方法、生成装置および生成方法 Download PDF

Info

Publication number
JP6163854B2
JP6163854B2 JP2013095684A JP2013095684A JP6163854B2 JP 6163854 B2 JP6163854 B2 JP 6163854B2 JP 2013095684 A JP2013095684 A JP 2013095684A JP 2013095684 A JP2013095684 A JP 2013095684A JP 6163854 B2 JP6163854 B2 JP 6163854B2
Authority
JP
Japan
Prior art keywords
character information
tag
information
document data
given
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.)
Expired - Fee Related
Application number
JP2013095684A
Other languages
English (en)
Other versions
JP2014215982A (ja
Inventor
片岡 正弘
正弘 片岡
孝宏 村田
孝宏 村田
直樹 秋山
直樹 秋山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013095684A priority Critical patent/JP6163854B2/ja
Priority to US14/256,662 priority patent/US9576008B2/en
Publication of JP2014215982A publication Critical patent/JP2014215982A/ja
Priority to US15/401,980 priority patent/US10303672B2/en
Application granted granted Critical
Publication of JP6163854B2 publication Critical patent/JP6163854B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データを検索する技術に関する。
ファイル群を対象とする全文検索において、ファイル群に含まれる各ファイルについてファイルを構成する文字情報を示す全文検索インデックスを用いて、ファイル群から検索対象のファイルを絞り込む技術がある。全文検索インデックスの参照により検索文字列内の文字情報を含まないファイルが検索対象から除かれることで、検索対象のファイルが絞り込まれる。
ある技術においては、マークアップ言語で記述されたファイル群に対して全文検索が行なわれる。マークアップ言語で記述されたファイル群に含まれる各ファイルを、タグを境目として論理的(または物理的)に分割し、分割により得られたデータ単位ごとにデータ単位を構成する文字情報を示す全文検索インデックスが作成される。また、検索文字列およびタグが入力されると、入力されたタグに対応しないデータ単位や検索文字列内の文字情報を含まないデータ単位が検索対象から除かれることで、検索対象のデータ単位が絞り込まれる(例えば、特許文献1または特許文献2参照)。
特開平8−329116号公報 特開平8−147311号公報
マークアップ言語においては、階層的なデータ構造を構成することが可能であり、複数のタグが入れ子になることにより、互いに包含関係を有するデータ単位が形成される。例えば、タグAの開始タグ、タグBの開始タグ、タグBの終了タグ、タグAの終了タグの順でタグが配置されると、タグBにより範囲が指定されるデータ単位は、タグAにより範囲が指定されるデータ単位に含まれる。タグAは、タグBに対応するデータ単位を包含するデータ単位に対して属性を付与するものなので、タグAはタグBよりも上位階層のタグとして機能している。
しかしながら、上述の技術のように、ファイルに対してタグを境目として論理的(または物理的)に分割を行なうと、互いに包含関係を有するデータ単位は形成されない。そのため、ファイルの分割により形成されるデータ単位について全文検索インデックスを作成してしまうと、タグの入れ子構造に対応できず、互いに包含関係にあるデータ単位に対応するタグの双方について、検索対象の絞り込みの条件として利用可能にすることができない。
本発明の一側面によれば、互いに包含関係にあるデータ単位それぞれが有する属性の双方を、検索制御の条件として利用可能にすることを目的とする。
一態様によれば、検索制御装置は、文字情報と文字情報に付与された意味との組み合わせが、複数の文書データのそれぞれに存在するか否かを示す存否情報を記憶する記憶部と、特定文情報および前記特定文字情報に付与される特定意味の指定を含む検索要求を受信すると、前記存否情報に基づいて、前記特定意味が付与され、かつ、前記特定文字情報を含む文書データ、前記複数の文書データの中から抽出する制御部と、を含む。
一態様によれば、生成装置は、文書データの読み出し位置を含む範囲を指定し、指定された前記範囲に含まれる文字情報付与される意味を示すタグを前記文書データから複数種類検知する検知部と、前記範囲に含まれる文字情報について、該文字情報と前記タグにより該文字情報に付与される意味との組合せ前記文書データに含まれる旨を示す存情報を、前記検知部により検知された前記複数種類のタグの各々について生成する生成部と、を含む。
一側面によれば、互いに包含関係にあるデータ単位それぞれが有する属性の双方を、検索制御の条件として利用可能にすることができる。
図1は、全文検索インデックスによる検索対象の絞り込みの例を示す。 図2は、全文検索インデックス生成手順の概要を示す。 図3は、状態情報の更新の例を示す。 図4は、全文検索インデックスの例を示す。 図5は、全文検索インデックスの例を示す。 図6は、変換テーブルT1の例を示す。 図7は、変換テーブルT2の例を示す。 図8は、変換テーブルT3の例を示す。 図9は、機能ブロック構成例を示す。 図10は、インデックス生成処理の手順例を示す。 図11は、対象ファイル抽出処理の手順例を示す。 図12は、圧縮された全文検索インデックスの生成例を示す。 図13は、コンピュータ1のハードウェア構成例を示す。 図14は、コンピュータ1で動作するプログラム構成例を示す。 図15は、コンピュータ1を用いたシステム構成例を示す。 図16は、入力画面の例を示す。
図1は、全文検索インデックスを用いた検索対象の絞り込みの例を示す。図1に例示されるファイル群(ファイルF1〜Fn)のそれぞれは治験の記録を示すXML(Extensible Markup Language)ファイルである。XMLなどのマークアップ言語においては、タグと呼ばれる文字列によりテキストに対して属性などの情報が追加される。タグは、開始タグおよび終了タグのセットで機能し、開始タグと終了タグとの間に存在するデータに対する情報の追加を示す。ファイルF1〜Fnの各々はタグを含み、例えば、ファイルF1には、症状タグ(<症状>および</症状>)や薬効タグ(<薬効>および</薬効>)などが含まれる。例えば、薬効タグにより、開始タグ<薬効>と終了タグ</薬効>との間に存在するデータに対して、「薬効」に関するデータであるという属性が追加される。すなわち、開始タグ<薬効>と終了タグ</薬効>との間に存在するデータは、薬効タグに挟まれることで「薬効」という属性を有する。
図1に例示するファイルF1〜Fnの検索において、検索範囲を絞り込むために図1に例示される全文検索インデックスI1が用いられる。全文検索インデックスI1は、検索対象のファイルF1〜Fnの各々について、ファイル内に含まれる文字情報の構成を示す構成情報を含む。構成情報は、ファイルに含まれる文字情報の種類を、各文字情報の種類に対応する複数のビットにより構成されるビット列である。
全文検索インデックスI1において、ファイルF1〜Fnは、各々に割り当てられた番号で管理される。ファイルF1の番号が「0」、ファイルF2の番号が「1」、ファイルF3の番号が「2」と番号が割り当てられ、番号「3」以降も同様に割り当てられている。例えば、ファイルF1の構成情報は、全文検索インデックスI1の番号「0」の位置のビット列である。
全文検索インデックスI1において、ビット列内の各ビット位置に対して文字情報が対応付けられており、ビット列を構成する各ビットは、ビット位置に対応する文字情報がファイル内に含まれるか否かを示す。例えば、値が「1」のビットにより、そのビットのビット位置に対応する文字情報がファイル内に含まれることが示される。例えば、番号「0」のビット列の文字情報「f」に対応するビットの値が「1」であると、ファイルF1に文字情報「f」が含まれることが示される。
全文検索インデックスI1では、ビット列内の各ビット位置に対応付けられる文字情報は、文字、文字の一部分(例えば、複数バイトで表現される文字コードのうちの1バイトのデータなど)、文字の組み合わせである文字列(単語やタグ)などである。すなわち、全文検索インデックスI1は、ファイルF1〜Fnの各々について、ビット列内の各ビット位置に対応する文字、文字の一部分、文字列のそれぞれが含まれるか否かを示している。全文検索インデックスのビット列の各ビット位置には、例えば、「発」、「熱」、「f」、「e」、「v」、「r」などの文字や、「<薬効>」などのタグを示す文字列が対応付けられている。
ユーザがファイルF1〜Fnから薬の効能として発熱の症状が得られた記録を取得したい場合には、例えば、「発熱」という文字情報や薬効タグなどを検索条件とした検索がユーザから要求される。その場合には、検索文字列に含まれる「発」および「熱」ならびに「<薬効>」という文字情報に対応するビット位置のビットによるビット行(図1に例示する全文検索インデックスI1の横方向のビットの並び)に基づいて「発熱」および「<薬効>」という文字情報を含む可能性があるファイルが絞り込まれる。具体的には、「発」、「熱」および「<薬効>」のそれぞれに対応するビット行同士の論理積(AND)演算により1つのビット行を生成し、生成されたビット行において値が「1」のビットに対応する番号のファイルが検索の対象となる。全文検索インデックスI1では、ファイルF1(番号「0」)およびファイルF2(番号「1」)の双方が検索の対象となる。これは、「発」、「熱」および「<薬効>」のいずれのビット列においても、番号「0」でも番号「1」でもビットの値が「1」であるためである。
しかしながら、ファイルF1では「発熱」という文字情報が開始タグ<薬効>および終了タグ</薬効>に挟まれているものの、ファイルF2においては「発熱」という文字情報が開始タグ<薬効>および終了タグ</薬効>に挟まれていない。そのため、薬の効能として発熱の症状が得られた記録を取得するための検索において、ファイルF2は所望の記録を含まないにも関わらず検索の対象となってしまう。このように、全文検索インデックスI1は、タグにより指定される範囲と、文字情報との位置関係が反映されていない。そのため、タグと検索文字列を検索条件として指定しても、全文検索インデックスI1による絞り込みでは、タグに対応する属性を有する検索文字列を含まないファイルまでも検索対象のファイルとなる可能性がある。
また、例えば、ファイルF1においては、開始タグ<症状>と終了タグ</症状>との間に、薬効タグの開始タグ<薬効>および終了タグ</薬効>が含まれる。このようなタグの位置関係であると、例えば、治験においてどのような症状が現れたかが開始タグ<症状>と終了タグ</症状>との間に示され、さらに、症状のうち薬の効能として現れた症状について開始タグ<薬効>と終了タグ</薬効>との間に示される。すなわち、開始タグ<薬効>と終了タグ</薬効>との間に存在するデータは、開始タグ<症状>および終了タグ</症状>にも挟まれているので、「薬効」および「症状」の双方の属性を有する。
ユーザが薬の効能として発熱の症状が得られた記録を取得したい場合には、「発熱」および薬効タグを検索条件とする検索が要求される。その一方で、例えば、薬の効能としての発熱や薬の副作用としての発熱など、とにかく症状として発熱が生じた記録をユーザが取得したい場合には、「発熱」および症状タグを検索条件とする検索が要求される。すなわち、検索を要求するユーザの意図に応じて、ある特定の属性が検索条件として付加されることもあれば、特定の属性を含む広い概念の属性が検索条件として付加されることもある。
互いに包含関係にあるいずれの属性を検索条件とした場合にも検索対象の絞り込みを可能とするためには、それぞれの属性に対応するデータ単位における構成情報が全文検索インデックスに含まれる必要がある。互いに包含関係にあるデータ単位のそれぞれについての構成情報を含む全文検索インデックスについて以下に説明する。
図2は、全文検索インデックス生成手順の概要を示す。全文検索インデックスI2内の全ビットの値が「0」の状態から、ファイルF1〜Fnが順次読み出され、読み出された文字情報に応じて全文検索インデックスI2内の値が更新される。例えば、ファイルF1の読み出し処理において、ファイルF1内の文字情報が、読み出し順序に従って順次読み出される。ファイルF1内の各文字情報に基づく全文検索インデックスI1の更新が行なわれると、全文検索インデックスI2のファイルF1に関する部分の生成が終了する。全文検索インデックスI2は、ファイルF2〜Fnに対しても同様の処理を行なうことで生成される。
図2の例では、読み出し位置P1で文字情報c1が読み出された場合の全文検索インデックスI2への更新処理が例示される。文字情報c1が読み出されると、文字情報c1、読み出し処理の対象であるファイルF1の番号および読出し位置P1のデータの属性に基づいて、全文検索インデックスI2内の位置Q(図2の例では2次元座標(Qi,Qj)で示される)が求められる。位置Qが求められると、位置Qのビットの値に対して更新が行なわれる。具体的には、位置Qに存在するビットの値と、「1」との論理和が位置Qに格納される。
図2の生成手順においては、文字情報に応じて更新される全文検索インデックス内の位置Qが読み出し位置P1における属性に基づいて決定される。上述の通り、属性は、データを挟むタグにより与えられる。すなわち、読み出し位置P1においては、読み出し位置P1に至るまでに開始タグが読み出され、且つ終了タグが読み出されていないタグにより、属性が与えられる。本実施形態においては、読み出し位置における属性が判別されるように、開始タグが読み出され且つ終了タグは読み出されていないタグを示す状態情報Sの更新が、タグの読み出しに応じて行なわれる。状態情報Sについては図3に基づいて後述するが、読み出し位置に複数の属性が付与されていること状態情報Sに示される場合には、複数の属性それぞれに基づいて、全文検索インデックスの更新が行なわれる。
図3は、状態情報の更新の例を示す。図3では、状態情報SがファイルF1に含まれるタグの読み出しに応じて更新されることが、ファイルF1の読み出しの各工程における状態情報S0〜S6により示される。図3の例においては、検索条件として指定可能なタグが予めm種類設定してある。図3に例示される状態情報S(状態情報S0〜S6)は、m種類の各タグに対応する番号(0〜m−1)の位置に配置されたビットにより構成されるm−1ビットのビット列である。
図3の例では、症状タグの番号は「0」であり、薬効タグの番号は「1」であり、副作用タグの番号は「2」であり、持病タグの番号は「3」であり、性別タグの番号は「m−1」である。
副作用タグは、開始タグ<副作用>および終了タグ</副作用>のセットで機能し、開始タグ<副作用>と終了タグ</副作用>との間のデータが「副作用」という属性を有することを示す。持病タグは、開始タグ<持病>および終了タグ</持病>のセットで機能し、開始タグ<持病>と終了タグ</持病>との間のデータが「持病」という属性を有することを示す。性別タグは、開始タグ<性別>および終了タグ</性別>のセットで機能し、開始タグ<性別>と終了タグ</性別>との間のデータが「性別」という属性を有することを示す。
ファイルの読み出しを行なう前の状態情報S0は、いずれの開始タグも読み出されていないので、番号「0」〜「m−1」までビットの値は「0」である。ファイルF1から順次読み出しが行なわれ、開始タグ<症状>が読み出されると、読み出し位置から先のデータは「症状」という属性を有するデータであるので、症状タグに対応する番号「0」のビットが「0」から「1」に変更される。これにより、状態情報S0が状態情報S1に更新される。
さらにファイルF1の読み出しが進められ、開始タグ<薬効>が読み出されると、それ以降のデータは「薬効」という属性を有するので、薬効タグに対応する番号「1」のビットが「0」から「1」に変更される。これにより、状態情報S1が状態情報S2に更新される。続いて読み出される文字情報「発熱」は、状態情報S2において症状タグに対応する番号「0」および薬効タグに対応する番号「1」の双方のビットの値が「1」であるので、「症状」および「薬効」の属性を有していることが示される。文字情報「発」および「熱」の各々について、「症状」および「薬効」の属性に基づいた全文検索インデックスの更新が行なわれる。
さらにファイルF1の読み出しが進められ、終了タグ</薬効>が読み出されると、それ以降のデータは「薬効」という属性を有しないので、薬効タグに対応する番号「1」のビットが「1」から「0」に変更される。これにより、状態情報S2が状態情報S3に更新される。
さらにファイルF1の読み出しが進められ、開始タグ<副作用>が読み出されると、それ以降のデータは「副作用」という属性を有するので、副作用タグに対応する番号「2」のビットが「0」から「1」に変更される。これにより、状態情報S3が状態情報S4に更新される。また、終了タグ</副作用>が読み出されると、それ以降のデータは「副作用」という属性を有しないので、副作用タグに対応する番号「2」のビットが「1」から「0」に変更される。これにより、状態情報S4が状態情報S5に更新される。
さらに、終了タグ</症状>が読み出されると、それ以降のデータは「症状」という属性を有しないので、症状タグに対応する番号「0」のビットが「1」から「0」に変更される。これにより、状態情報S5が状態情報S6に更新される。
状態情報S1〜S5のいずれについても、読み出した文字情報が「症状」という属性を有することを示す。また、状態情報S2の状態で読み出された文字情報は、「症状」および「薬効」の双方の属性を有する。状態情報S2の状態で文字情報が読み出されると、「症状」の属性に基づく全文検索インデックスの更新と、「薬効」に基づく全文検索インデックスの更新との双方が行なわれる。
図4は、全文検索インデックスの例を示す。図4に例示する全文検索インデックスI2は、ファイルF1〜Fnおよび状態情報Sに示されるm種類のタグの組み合わせの各々に対応するm×nの列を含む。また、全文検索インデックスI2は、全文検索インデックスI2で絞り込みに用いられる文字情報として設定された文字情報の数k1の行を含む。
各ファイルに対してm個のビット列が割り当てられており、例えば、0〜m−1のビット列がファイルF1に対応する。また、例えば、0番目のビット列はファイルF1のタグ番号「0」(症状タグ)に対して割り当てられたビット列である。また、1番目のビット列はファイルF1のタグ番号「1」(薬効タグ)に対して割り当てられたビット列である。また、m番目のビット列はファイルF2のタグ番号「0」(症状タグ)に対して割り当てられたビット列である。すなわち、ファイルF1の文字構成は0〜m−1のビット列に示されており、ファイルF1と症状タグとの組み合わせに対応するデータ単位の文字構成が0番目のビット列に示されている。
全文検索インデックスI2において列を指定する座標Qiは、Qi=(ファイルの番号)×m+(タグの番号)の計算式で算出される。全文検索インデックスI2においては、同じファイルに含まれる文字情報であっても、状態情報Sに示されるタグによって異なるビット列に対して更新が行なわれる。
一方、座標Qjは、全文検索インデックスI2の生成の第1の例においては、ハッシュ関数(Hash1)を用いて算出される。読み出した文字情報を示す文字コードをハッシュ関数(Hash1)の引数に用いて、例えば、Qj=Hash1(文字情報)で座標Qjが算出される。
また、全文検索インデックスI2の生成の第2の例においては、座標Qjとして、変換テーブルT1において文字情報と対応付けられたオフセット値が用いられる。変換テーブルT1の詳細については図6に基づいて後述する。読み出した文字情報に基づいて変換テーブルT1の参照が行なわれ、オフセット値が読み出される。
上述の第1の例または第2の例に示される方法により、読み出した文字情報に対応する座標Qjが算出され、座標Qiと合わせて、文字情報に対応するビット位置Qが特定される。さらに、特定された位置Qのビットに対して更新が行なわれる。
検索対象の絞込みを行なう際には、検索文字列に含まれる各文字情報に対応する各ビット行が全文検索インデックスI2から取得される。例えば取得された各ビット行で論理積演算が行なわれ、その論理積演算結果のビット列から、検索対象に指定されたタグに対応するビットが参照される。すなわち、論理積演算結果のビット行のうち、座標Qi=(ファイル番号)×m+(指定されたタグの番号)に対応するビットであって、値が「1」であるビットについて、対応するファイル番号が出力される。出力されたファイル番号に対応するファイルが検索対象のファイルとなる。
図5は、全文検索インデックスの例を示す。図5に例示する全文検索インデックスI3は、各ファイルに対応するn列と、各文字情報および検索対象として指定可能な各タグの組み合わせに対応する行とで構成される。0〜n−1の各ビット列について、ファイルF1〜Fnの各々が対応する。全文検索インデックスI3における座標Qiは、Qi=(ファイル番号)で示される。
全文検索インデックスI3で設定される文字情報の数をk2とすると、全文検索インデックスI3にはm×k2行のビット行が含まれる。文字情報およびタグの組み合わせに対応する座標Qjの算出は、例えば下記の3例のように行なわれる。
全文検索インデックスI3の生成の第1の例においては、座標Qjは、0〜k2−1までの値を返すハッシュ関数(Hash2)を用いて算出される。座標値Qjは、例えば、Qj=Hash2(文字情報)+(タグの番号)×k2で算出される。
また、全文検索インデックスI3の生成の第2の例においては、座標Qjの算出に、文字情報と全文検索インデックスI3におけるオフセット値とを対応づけた変換テーブルT2が用いられる。変換テーブルT2の詳細については図7を用いて後述する。文字情報およびタグに対応する座標値Qjは、例えば、Qj=(文字情報と変換テーブルT2で対応付けられたオフセット値)+(タグの番号)×k2で算出される。この場合には、各タグについて、共通のk2種類の文字情報が組み合わされたビット行が全文検索インデックスI3に含まれる。
また、全文検索インデックスI3の生成の第3の例においては、座標Qjの算出に、文字情報およびタグの組み合わせと全文検索インデックスI3におけるオフセット値とを対応づけた変換テーブルT3が用いられる。変換テーブルT3の詳細については図8を用いて後述する。文字情報およびタグの組み合わせに対して変換テーブルT3において対応付けられたオフセット値が、座標値Qjに用いられる。
全文検索インデックスI3の生成において文字情報が読み出されると、その文字情報と文字情報の属性とに基づいて座標Qjが算出され、さらに読み出し元のファイルのファイ番号に応じて座標Qiが決定される。ファイルF1〜Fnの各々について順次行なわれる文字情報の読み出しに応じて、座標Qiおよび座標Qjによる位置Qのビットの更新が順次行なわれることで、全文検索インデックスI3が生成される。
検索対象の絞込みを行なう際には、検索文字列に含まれる各文字情報とタグとの組み合わせに対応する各ビット行が全文検索インデックスI3から取得される。例えば取得されたビット行同士で論理積演算が行なわれ、その論理積演算結果のビット列のうち、値が「1」であるビットに対応するファイル番号が出力される。出力されたファイル番号に対応するファイルが検索対象のファイルとなる。
図6は、変換テーブルT1の例を示す。図6に例示される変換テーブルT1には、全文検索インデックスI2で検索対象の絞り込みの条件に利用される文字情報(例えば、「発」、「熱」、「f」、「e」、「v」、「r」など)が含まれる。変換テーブルT1に含まれる各文字情報には、全文検索インデックスI2におけるオフセット値が対応付けられる。
図7は、変換テーブルT2の例を示す。図7に例示される変換テーブルT2には、全文検索インデックスI3で検索対象の絞り込みの条件に利用される文字情報が含まれる。変換テーブルT2を用いた検索対象の絞り込みでは、各タグについて、共通の文字情報群(2種類)との組み合わせが用意される。そのため、変換テーブルT2においては、文字情報と全文検索インデックスI3におけるオフセット値の対応関係が示される。変換テーブルT2に含まれるオフセット値により、タグに関連する複数のビット行において何行目であるかが示される。
全文検索インデックスI3の生成に図6に示す変換テーブルT1が用いられてもよい。全文検索インデックスI2のサイズはn×m×k1であるのに対して、全文検索インデックスI3のサイズはn×m×k2である。全文検索インデックスI3の生成に図6に示す変換テーブルT1が用いられると、全文検索インデックスI2と同サイズの全文検索インデックスが生成される。
しかしながら、全文検索インデックスI2も全文検索インデックスI3も属性に応じた全文検索インデックスとしているため、タグの数mに応じて、通常の全文検索インデックスよりもサイズが大きくなってしまう。
図8は、変換テーブルT3の例を示す。図8に例示される変換テーブルT3には、全文検索インデックスI3で検索対象の絞り込みの条件に利用される文字情報とタグとの組み合わせが含まれる。変換テーブルT3においては、各タグについて個別に文字情報群との組み合わせが可能となる。例えば、症状タグと「発」や「熱」などの文字情報との組み合わせが変換テーブルT3に含まれる。性別タグと「男」や「女」などの文字情報との組み合わせが変換テーブルT3に含まれる一方で、性別タグと「発」や「熱」などの文字情報との組み合わせは含まれない。
変換テーブルT3を用いて生成される全文検索インデックスI3のサイズは、n×m×kxとなる。kxは、各属性における文字情報の平均値である。属性によって、文字情報の数が抑えられれば、変換テーブルT3を用いることにより全文検索インデックスI3のサイズが抑制される。
上述の全文検索インデックスI2または全文検索インデックスI3は、読み出し位置の状態情報Sに応じて全文検索インデックス内のビットの更新が行なわれる。タグが入れ子構造になっていたとしても、状態情報Sは上位階層のタグおよび下位階層のタグ双方の範囲内であることを示すことができるので、上位階層のタグと下位階層のタグの双方に関するビットの更新が行なわれる。このようなビットの更新が行なわれることで、上位階層のタグおよび下位階層のタグのいずれに対しても検索対象絞り込みの条件に用いることが可能な全文検索インデックスが生成される。
[構成と処理手順]
図9は、機能ブロック構成例を示す。図9に例示されるコンピュータ1は、生成部11、記憶部12および抽出部13を含む。生成部11は、全文検索インデックスを生成する機能ブロックであり、読出部111、状態管理部112および算出部113を含む。記憶部12は、ファイルF1〜Fnおよび生成部11が生成した全文検索インデックスを記憶する機能ブロックであり、生成部11および抽出部13のワークエリアとして用いられる記憶領域を備える。抽出部13は、記憶部12に記憶された全文検索インデックス(全文検索インデックスI2または全文検索インデックスI3)を用いて検索対象のファイルの絞り込みを行なう機能ブロックである。
読出部111は、ファイルF1〜Fnについて順次読み出しを行なう。各ファイルに対する読み出しにおいては、読出部111は、各ファイル内のヘッダ部分やフッダ部分を除いたデータ部分を順次読み出す。状態管理部112は、読出部111の読み出しに応じて状態情報Sを管理する。状態管理部112は、図3に例示されるように、読出部111による開始タグや終了タグの読み出しに応じて状態情報Sの更新を行なう。算出部113は、読出部111による文字情報の読み出しに応じて、全文検索インデックス内の更新位置Qを算出する。算出部113は、読出し部111が読み出しを行なっているファイルのファイル番号、状態情報Sが示すタグの番号、読出部111が読み出した文字情報に基づいて、上述の方法により位置Qを算出する。この際、算出部113は、状態情報Sが複数の属性を示す場合には、それぞれの属性に基づいて複数の位置Qを算出する。さらに、生成部11は、算出部113により複数の位置Qが算出されると、全文検索インデックス内のそれぞれの位置Qに対して更新を行なう。
算出部131は、検索文字列に含まれる文字情報と、検索条件として指定されたタグとに基づいて、全文検索インデックス内のビット群を特定する情報を算出する。全文検索インデックスI2においては、算出部131は、ビット行と、ビット行内で指定されたタグと関連するビットの位置を特定する。全文検索インデックスI3においては、算出部131は、ビット行を特定する。状態情報Sが複数の属性を示す場合には、算出部131は、それぞれの属性について、対応するビット群を特定する。生成部132は、算出部131により特定されたビット群に基づき、検索対象のファイルを絞り込み、絞り込まれたファイルのファイル番号のリストを生成する。
コンピュータ1は、さらに、生成部132により生成されたリストに含まれる各ファイルに対して、検索条件に指定された検索文字列およびタグに基づいて検索を行なう検索部を含んでもよい。
図10は、インデックス生成処理の手順例を示す。記憶部12に含まれるファイルF1〜Fnに対する全文検索インデックスの生成指示を生成部11が受けると、読出部111は、ファイルF1〜Fnから1つのファイルを選択する(S101)。例えば、上述の通りファイルF1〜Fnにファイル番号が割り当てられていれば、ファイル番号の小さいファイルから順に選択される。続いて、読出部111は、S101で選択されたファイルから文字情報を読み出す(S102)。読出部111は、読み出し対象のファイルのファイル番号と、ファイル内の読み出し位置を示す情報を保持する。S102の処理においては、読出部111は、保持しているファイル番号と読み出し位置とに基づいて読み出しを行ない、読み出した文字情報のデータ長に応じて読み出し位置を更新する。
生成部11は、S102で読み出した文字情報がタグであるか否かを判定する(S103)。S102で読み出した文字情報がタグである場合(S103:YES)には、状態管理部112は状態情報Sの更新を行なう(S104)。S102で読み出したタグが開始タグであればタグに対応するビットの値を「1」とし、終了タグであればタグに対応するビットの値を「0」とする。状態管理部112が状態情報Sを更新すると、S102の手順に移り、読出部111による文字情報の読み出しが行なわれる。
S102で読み出した文字情報がタグでない場合(S103:NO)には、算出部113が位置Qの算出を行なう(S105)。続いて、生成部11は、S105で算出部113が算出した位置Qのビットの値を「1」に更新する(S106)。S106を終えると、読出部111は、読み出し位置がファイルのデータ部分の終端であるか否かを判定する(S107)。読み出し位置がファイルのデータ部分の終端でない場合(S107:NO)には、S102の手順に移り、読出部111による文字情報の読み出しが行なわれる。
また、読み出し位置がファイルの終端である場合(S107:YES)には、読出部111は、ファイルF1〜Fnの全てのファイルがS101の処理により選択されたか否かを判定する(S108)。ファイルF1〜Fnに選択されていないファイルが含まれている場合(S108:NO)には、手順がS101に移り、読出部111によるファイルの選択が行なわれる。ファイルF1〜Fnの全ファイルが選択された場合(S108:YES)には、生成部11が全文検索インデックスを記憶部12に格納し、インデックス生成処理が終了する。
図11は、対象ファイル抽出処理の手順例を示す。ファイルF1〜Fnに対して行なわれる検索の検索条件として検索文字列およびタグが指定されると、対象ファイル抽出処理が開始される。まず、抽出部13は、指定された検索文字列およびタグを取得する(S201)。続いて、抽出部13は、検索文字列を複数の文字情報に分解する(S202)。例えば、「発熱」などの検索文字列が指定された場合には、「発」および「熱」などの文字情報に分解される。
算出部131は、分解された文字情報から文字情報を1つ選択する(S203)。さらに、算出部131は、S203で選択した文字情報に基づいて、座標Qjを算出する(S204)。座標Qjの算出方法については、上述の通りである。全文検索インデックスI2のように、座標Ojのビット行に複数の属性に関する情報が含まれる場合には、S204において算出部131はさらに、検索条件に含まれる属性に関するビット群の位置を算出する。具体的には、上述の通り、各ビットの位置が座標Qi=(ファイル番号)×m+(指定されたタグの番号)で示される。
生成部132は、算出部131で座標Qjが生成されると、座標Qjに基づいてビット行の読み出しを行なう(S205)。S205のビット行の読み出しが初回の読み出しであれば、生成部132はS205で読み出したビット行をそのまま保持し、初回でなければ、過去に保持したビット行と直前のS205で読み出したビット行とで論理積演算を行ない、その結果得られたビット行を保持する(S206)。全文検索インデックスI2を用いる場合には、生成部132は、S204で特定されたビットの位置のビットのみを抽出して構成されるビット列で、S206の演算を行なう。
続いて、生成部132は、S202で分解された複数の文字情報のうち未選択の文字情報があるか否かを判定する(S207)。未選択の文字情報があれば(S207:NO)、手順がS203に移り、算出部131により文字情報が選択される。
生成部132が、S202で分解された複数の文字情報が全て選択されたと判断した場合(S207:YES)には、生成部132は、生成部132に保持されたビット列に示されるファイル番号のリストを生成する(S208)。S208で生成されたリストに番号を示されるファイルが検索対象のファイルとなる。S208の処理が終わると、対象ファイル抽出処理が終了する。
[全文検索インデックスの圧縮]
図4および図5に示す全文検索インデックスは、文字情報の種類の数、ファイル数およびタグの種類の数によりデータサイズが増減する。また、上述の実施形態によれば、全文検索インデックスのビット行を示す位置Qjは、例えばハッシュ関数を用いて算出された。例えば、図4に示す全文検索インデックスI2では、k1種類の文字情報を引数とするハッシュ値のそれぞれが別々の位置Qjを示すことにより、それぞれの文字情報について個別に存否を示すビット行が生成される。また、図5に示す全文検索インデックスI3では、k2種類の文字情報を引数とするハッシュ値のそれぞれが別々の位置Qjを示すことにより、それぞれの文字情報について個別に存否を示すビット行が生成される。
そこで、例えば、全文検索インデックスI2に用いられる文字情報の数k1よりも小さい数k3通りの値を返すハッシュ関数(Hash3)がハッシュ関数(Hash1)の代わりに用いられる。ハッシュ関数(Hash3)は、例えば、文字情報を引数として0〜k3−1までの値を返すハッシュ関数である。すると、全文検索インデックスに含まれる行数が全文検索インデックスI2よりも少なくなるため、全文検索インデックスのデータサイズが全文検索インデックスI2より小さくなる。この場合、文字情報の種類よりもハッシュ関数Hash3が返す値の種類が少ないため、一部の文字情報についてはハッシュ値が同じになる。この場合には、位置Qjのビット行に含まれる各ビットにより、同じハッシュ値Qjの引数である複数の文字情報のいずれかが含まれるか否かが示されている。
また、全文検索インデックスI3についても同様に圧縮される。例えば、k2×mよりも小さい数k4通りの値を返すハッシュ関数(Hash4)がハッシュ関数(Hash2)の代わりに用いられる。ハッシュ関数(Hash4)は、例えば、タグと文字情報とを引数として、0〜k4−1の値を返すハッシュ関数である。すると、全文検索インデックスに含まれる行数が全文検索インデックスI3よりも少なくなるため、全文検索インデックスのデータサイズが全文検索インデックスI3よりも小さくなる。
以下に、図5に示す全文検索インデックスI3の圧縮について説明する。図4に示す全文検索インデックスI2の圧縮を行なう場合にも、ハッシュ関数の引数が、タグおよび文字情報の2変数から文字情報のみの1変数に変更すればよい。
図12は、圧縮された全文検索インデックスの生成例を示す。図12の生成例においては、ファイルから読み出した文字情報およびその文字情報に属性を付与するタグとの組み合わせが、変換テーブルT3aに登録されているか否かに応じて、異なる全文検索インデックスに対して更新が行なわれる。すなわち、変換テーブルT3aに登録されたタグおよび文字情報の組み合わせが読み出されると全文検索インデックスI4aに反映され、変換テーブルT3aに登録されていないタグおよび文字情報の組み合わせが読み出されると全文検索インデックスI4bに反映される。
例えば、変換テーブルT3aには、出現頻度の高い(対応するビット行において「1」の値が多い)文字情報およびタグの組み合わせが登録される。また、変換テーブルT3aにおいては、登録される文字情報およびタグの組み合わせに対してそれぞれ異なるオフセット値が対応付けられる。すなわち、変換テーブルT3aに登録された文字情報およびタグの組み合わせに対応付けられたオフセット値が、全文検索インデックスI4aの1つのビット行の位置Qjを示す。全文検索インデックスI4aの行数をk5aとする。
一方、変換テーブルT3aに登録されていない文字情報およびタグについては、文字情報とタグとを引数とするハッシュ関数(Hash5)により、全文検索インデックスI3の位置Qjが算出される。ハッシュ関数(Hash5)は、k2×m−k5aよりも小さい数k5b通りの値を返すハッシュ関数である。変換テーブルT3aに登録されない文字情報およびタグの組み合わせの数がk2×m−k5aであるのに対し、ハッシュ関数(Hash5)のハッシュ値の種類はそれよりも少ない。そのため、変換テーブルT3aに登録されない組み合わせの一部は、同一の位置Qjのビット行に対応付けられる。これにより全文検索インデックスI4bは圧縮された状態となる。
図12の生成例では、文字情報とタグとの組み合わせの頻度に応じて、非圧縮の全文検索インデックスに反映させるか圧縮された全文検索インデックスに反映させるかが切り替えられる。高頻度で出現する組み合わせに対応するビット行には、値が「1」のビットが多く含まれる。検索文字列に含まれる各文字情報に対応するビット行の論理積を演算した際に、頻度の高い文字情報は論理積の値も「1」になりやすい傾向にある。そのため、頻度の高い文字情報C1が他の文字情報C2と同一のビット行に対応付けられてしまうと、文字情報C2で検索対象のファイルを絞り込む際に、文字情報C2を含まずに文字情報C1を含むファイルが検索対象となってしまう可能性が高くなる。そのため、出現頻度の高い文字情報を除いて全文検索インデックスの圧縮を行なうことにより、検索対象の絞り込みのノイズが抑制され、且つ絞込みノイズが発生しにくい文字情報を利用して全文検索インデックスのデータサイズ抑制を図ることができる。
[本実施形態の実現手段]
以下に、上述の検索処理および全文検索インデックス生成処理の実現手段について説明する。
図13は、コンピュータ1のハードウェア構成例を示す。コンピュータ1は、例えば、プロセッサ301、RAM(Random Access Memory)302、ROM(Read Only Memory)303、ドライブ装置304、記憶媒体305、入力インターフェース(I/F)306、入力デバイス307、出力インターフェース(I/F)308、出力デバイス309、通信インターフェース(I/F)310、SAN(Storage Area Network)インターフェース(I/F)311およびバス312などを含む。それぞれのハードウェアはバス312を介して接続されている。
RAM302は読み書き可能なメモリ装置であって、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの半導体メモリ、またはRAM以外にもフラッシュメモリなどが用いられてもよい。ROM303は、PROM(Programmable Read Only Memory)などでもよい。ドライブ装置304は、記憶媒体305に記録された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記憶媒体305は、ドライブ装置304によって書き込まれた情報を記憶する。記憶媒体305は、例えば、ハードディスク、SSD(Solid State Drive)などのフラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスクなどの記憶媒体である。また、例えば、コンピュータ1は、複数種類の記憶媒体それぞれについて、ドライブ装置304及び記憶媒体305を設ける。
入力インターフェース306は、入力デバイス307と接続されており、入力デバイス307から受信した入力信号をプロセッサ301に伝達する回路である。出力インターフェース308は、出力デバイス309と接続されており、出力デバイス309に、プロセッサ301の指示に応じた出力を実行させる回路である。通信インターフェース310はネットワーク3を介した通信を、有線または無線で実行させる回路である。通信インターフェース310は、例えばネットワークインターフェースカード(NIC)などである。SANインターフェース311は、ストレージエリアネットワーク4によりコンピュータ1と接続された記憶装置との通信の制御を行なう回路である。SANインターフェース311は、例えばホストバスアダプタ(HBA)などである。
入力デバイス307は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ1の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス309は、コンピュータ1の制御に応じて情報を出力する装置である。出力デバイス309は、例えば、ディスプレイなどの画像出力装置(表示デバイス)や、スピーカーなどの音声出力装置などである。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス307及び出力デバイス309として用いられる。また、入力デバイス307及び出力デバイス309は、コンピュータ1と一体になっていてもよいし、コンピュータ1に含まれず、例えば、コンピュータ1に外部から有線または無線で接続する装置であってもよい。
例えば、プロセッサ301は、ROM303や記憶媒体305に記憶されたプログラムをRAM302に読み出し、読み出されたプログラムの手順に従って生成部11および抽出部13の少なくとも一方の処理を行なう。その際にRAM302はプロセッサ301のワークエリアとして用いられる。記憶部12の機能は、ROM303および記憶媒体305がプログラムファイル(後述のアプリケーションプログラム24、ミドルウェア23およびOS22など)やデータファイル(ファイルF1〜nなど)を記憶し、RAM302がプロセッサ301のワークエリアとして用いられることによって実現される。プロセッサ301が読み出すプログラムについては、図14を用いて説明する。
図14は、コンピュータ1で動作するプログラム構成例を示す。アプリケーションプログラム24またはミドルウェア23は、本実施形態の全文検索インデックスの生成機能または全文検索インデックスを用いた検索対象ファイルの絞り込み機能の処理手順が定められたプログラムである。全文検索インデックスの生成機能の処理手順が定められた生成プログラムと、全文検索インデックスを用いた検索対象ファイルの絞り込み機能の処理手順が定められた検索制御プログラムとが一体のプログラムでもよいし、別体のプログラムでもよい。もしくはOS(オペレーティング・システム)22の一機能として、本実施形態の生成機能および絞り込み機能の少なくとも一方が提供されてもよい。
例えば、上述の生成機能および絞り込み機能の少なくとも一方の処理手順を示す、生成プログラムおよび検索制御プログラムの少なくとも1つは、記憶媒体に記憶される。例えば、その記憶媒体がドライブ装置304により読み取られ、インストールされることにより記憶媒体に記憶されたプログラムが実行可能な状態になる。インストールされたプログラムは順次RAM302に読み出され、RAM302に読み出されたプログラムに定められた処理手順が順次プロセッサ301により実行される。
図9に示すコンピュータ1に含まれる各機能ブロックの機能は、プロセッサ301が、生成プログラムまたは検索制御プログラムを実行することにより提供される。図10に示される処理手順がプロセッサ301に実行されることにより、生成部11および生成部11内に含まれる各機能ブロックの機能が提供される。また、図11に示される処理手順がプロセッサ301に実行されることにより抽出部13および抽出部13内に含まれる各機能ブロックの機能が提供される。
例えば、生成部11内の機能ブロックは、以下のようにハードウェア群21を用いて実行される。読出部111の機能は、プロセッサ301が、レジスタ内で処理ステータス(RAM302内の読出し位置など)を管理し、管理された処理ステータスに応じてRAM302内にアクセスすることにより提供される。状態管理部112の機能は、プロセッサ301が、RAM302から読み出されたデータに対して照合処理を行ない、照合結果に応じて、レジスタで管理する状態情報の更新を行なうことにより実現される。算出部113の機能は、RAM302から読み出されたデータに基づく演算処理を行なうことにより実現される。
例えば、抽出部13内の機能ブロックは、以下のようにハードウェア群21を用いて実行される。算出部131の機能は、プロセッサ301が、RAM302内へのアクセス位置を算出し、算出されたアクセス位置にアクセスして読み出したデータに対する演算処理を行なうことにより実現される。また、生成部132の機能は、プロセッサ301が、演算結果に基づき、RAM302に内にデータを書き込むことにより実現される。
本実施形態によれば、ファイルF1〜Fnからのタグの読み出しに応じて、データの属性を示す状態情報を適宜更新するため、読み出し位置のデータに対して属性を付与するタグが状態情報により示される。そのため、入れ子構造となったタグの双方について、タグの範囲内に存在する文字情報の構成を示す構成情報が生成される。このように、タグに対応する構成情報が生成されるため、タグを検索条件に指定して検索を行なう場合には、タグに対応した構成情報を参照することにより、タグの範囲内に検索文字列の文字情報が含まれるか否かが判定可能となる。そのため、タグの範囲外に検索文字列の文字情報が含まれるなど、タグに関する検索条件に合致しないファイルなどが検索対象となる事態(絞り込みのノイズ)が抑制される。そのため、検索処理において、ロードするファイルが減ることになるので、ファイルを格納する記憶装置(例えば記憶媒体305)でのI/O回数や、プロセッサ301での演算回数が抑制される。
図15は、コンピュータ1を用いたシステム構成例を示す。図15に例示する情報処理システムは、コンピュータ1、ネットワーク3、クライアント装置6、ストレージエリアネットワーク(SAN)4およびストレージ装置5を含む。例えば、コンピュータ1は、クライアント装置6からの要求に応じた検索処理を行なう。ファイルF1〜Fnは、例えばストレージ装置5に圧縮されて記憶されている。コンピュータ1は、クライアント装置6から要求を受けた場合に、圧縮されてストレージ装置5に記憶されたファイルF1〜Fnから検索対象のファイルを絞り込む。さらに、コンピュータ1は、絞り込まれた検索対象のファイルを伸張し、伸張したファイルに対してクライアント装置6から要求された条件に基づく検索処理を行なう。
図15に例示するシステムでは、検索要求を受けるたびにデータの伸張が行なわれる。伸張処理に時間がかかると要求に対する応答までの時間も増大してしまう。本実施形態の検索対象の絞り込み機能によれば、ファイルに対して無駄に伸張処理が実施されることが抑制される。また、圧縮されたファイルのロードに確保される記憶領域も少なく抑えられる。
[ユーザに提供される画面]
図16は、入力画面の例を示す。図16に例示される画面G1は、属性入力欄と、キーワード入力欄と、論理子指定欄と、検索実行ボタンおよびキャンセルボタンとを表示する画面である。
検索条件を入力するユーザは、例えば、属性入力欄に設けられたプルダウンメニューから検索条件として指定したい属性を選択する。プルダウンメニューには、例えば、全文検索インデックスに設定されるm種類のタグそれぞれに対応する属性が設定される。属性が設定されると、属性に対応するタグが検索条件として設定される。また、ユーザは、キーワード入力欄に、キーワードを入力する。入力されたキーワードが検索条件として設定される。キーワードが複数入力された場合には、論理子指定欄に指定された論理子で各キーワードを連結させた論理式が検索条件として設定される。論理子指定欄は、例えば、論理積演算子「AND」や論理和演算子「OR」などが選択可能なプルダウンメニューである。
検索実行ボタンに対して入力操作が行なわれると、属性入力欄、キーワード入力欄および論理子指定欄への入力内容に基づく検索条件を指定する検索要求のコンピュータ1への送信が行なわれる。キャンセルボタンへの入力が行なわれると、画面G1を閉じる動作が行なわれる。
[変形例の説明]
本発明の本旨を逸脱しない範囲で、上述の実施形態の設計変更は適宜行われうる。例えば、全文検索インデックスI1〜I3、I4aおよびI4b内の各値は「0」と「1」とが逆であっても構わない。また、「0」および「1」で表現されなくても、「0」および「1」の代わりに互いに識別可能な値が用いられればよい。また、全文検索インデックスI1〜I3、I4aおよびI4bにおける行と列が逆であってもよい。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1の属性を有する第1のデータの文字構成を示す第1の構成情報と、第2の属性を有し且つ前記第1のデータを含む第2のデータの文字構成を示す第2の構成情報と、を記憶する記憶部と、
検索要求に検索文字列および前記第1の属性が指定された場合に、前記第1の構成情報に基づいて前記第1のデータに対する前記検索文字列の検索を制御し、前記検索要求に前記検索文字列および前記第2の属性が指定された場合に、前記第2の構成情報に基づいて前記第2のデータに対する前記検索文字列の検索を制御する制御部と、
を含むことを特徴とする検索制御装置。
(付記2)
前記制御部が、
前記第1の構成情報に示される文字構成が、前記検索文字列に含まれる各文字情報を含む文字構成である場合に、前記第1のデータに対する前記検索文字列の検索を実行させ、
前記第2の構成情報に示される文字構成が、前記各文字情報を含む文字構成である場合に、前記第2のデータに対する前記検索文字列の検索を実行させる、
ことを特徴とする付記1に記載の検索制御装置。
(付記3)
前記第1の属性および前記第2の属性は、それぞれ意味の追加または表示形式の指定を示す属性である、
ことを特徴とする付記1または2に記載の検索制御装置。
(付記4)
前記第1のデータが存在する範囲は、前記第1の属性に対応するタグにより示され、
前記第2のデータが存在する範囲は、前記第2の属性に対応するタグにより示される、
ことを特徴とする付記1〜3のいずれか1つに記載の検索制御装置。
(付記5)
前記検索文字列に含まれる各文字情報は、1または複数の文字で構成される、
ことを特徴とする付記1〜4のいずれか1つに記載の検索制御装置。
(付記6)
コンピュータに、
検索要求に検索文字列および前記第1の属性が指定された場合に、第1の属性を有する第1のデータの文字構成を示す第1の構成情報に基づいて、前記第1のデータに対する前記検索文字列の検索を制御し、
前記検索要求に前記検索文字列および前記第2の属性が指定された場合に、第2の属性を有し且つ前記第1のデータを含む第2のデータの文字構成を示す第2の構成情報に基づいて、前記第2のデータに対する前記検索文字列の検索を制御する、
ことを実行させることを特徴とする検索制御方法。
(付記7)
コンピュータに、
検索要求に検索文字列および前記第1の属性が指定された場合に、第1の属性を有する第1のデータの文字構成を示す第1の構成情報に基づいて、前記第1のデータに対する前記検索文字列の検索を制御し、
前記検索要求に前記検索文字列および前記第2の属性が指定された場合に、第2の属性を有し且つ前記第1のデータを含む第2のデータの文字構成を示す第2の構成情報に基づいて、前記第2のデータに対する前記検索文字列の検索を制御する、
処理を実行させることを特徴とする検索制御プログラム。
(付記8)
検索対象データの読み出し位置を含む範囲を指定し、指定した前記範囲内のデータに関する追加情報を示すタグを複数種類検知する検知部と、
前記読み出し位置から第1の文字情報が読み出されると、タグにより指定される範囲内に前記第1の文字情報が含まれる旨を示す存在情報を、前記検知部により検知された前記複数種類のタグの各々について生成する生成部と、
を含むことを特徴とする生成装置。
(付記9)
前記検知部は、
前記読み出し位置を含む範囲を指定するタグを示す状態情報を、前記開始タグおよび前記終了タグのいずれかの読み出しに応じて更新し、
前記状態情報に示されるタグを検知する、
ことを特徴とする付記8に記載の生成装置。
(付記10)
前記開始タグの読み出しに応じた更新が行なわれると、前記状態情報は、読み出した前記開始タグに対応するタグが読み出し位置を含む範囲を指定するタグである旨を示し、
前記終了タグを読み出しに応じた更新が行なわれると、前記状態情報は、読み出した前記終了タグに対応するタグが読み出し位置含む範囲を指定するタグでない旨を示す、
ことを特徴とする付記9に記載の生成装置。
(付記11)
前記複数種類のタグの各々に対して文字情報群が設定され、
前記存在情報は、前記存在情報に対応するタグに対して設定された前記文字情報群に前記第1の文字情報が含まれる場合に生成される、
ことを特徴とする付記8〜10のいずれか1つに記載の生成装置。
(付記12)
前記存在情報が、前記第1の文字情報または前記第1の文字情報と異なる第2の文字情報が含まれる旨を示す、
ことを特徴とする付記8〜10のいずれか1つに記載の生成装置。
(付記13)
コンピュータに、
検索対象データの読み出し位置を含む範囲を指定し、指定した前記範囲内のデータに関する追加情報を示すタグを、複数種類検知し、
前記読み出し位置から第1の文字情報が読み出されると、タグにより指定される範囲内に前記第1の文字情報が含まれる旨を示す存在情報を、前記検知部により検知された前記複数種類のタグの各々について生成する、
ことを実行させることを特徴とする生成方法。
(付記14)
コンピュータに、
検索対象データの読み出し位置を含む範囲を指定し、指定した前記範囲内のデータに関する追加情報を示すタグを、複数種類検知し、
前記読み出し位置から第1の文字情報が読み出されると、タグにより指定される範囲内に前記第1の文字情報が含まれる旨を示す存在情報を、前記検知部により検知された前記複数種類のタグの各々について生成する、
処理を実行させることを特徴とする生成プログラム。
(付記15)
プロセッサを含む検索制御装置であって、
前記プロセッサが、
検索要求に検索文字列および前記第1の属性が指定された場合に、第1の属性を有する第1のデータの文字構成を示す第1の構成情報に基づいて、前記第1のデータに対する前記検索文字列の検索を制御し、
前記検索要求に前記検索文字列および前記第2の属性が指定された場合に、第2の属性を有し且つ前記第1のデータを含む第2のデータの文字構成を示す第2の構成情報に基づいて、前記第2のデータに対する前記検索文字列の検索を制御する、
ことを特徴とする検索制御装置。
(付記16)
プロセッサを含む生成装置であって、
前記プロセッサが、
検索対象データの読み出し位置を含む範囲を指定し、指定した前記範囲内のデータに関する追加情報を示すタグを、複数種類検知し、
前記読み出し位置から第1の文字情報が読み出されると、タグにより指定される範囲内に前記第1の文字情報が含まれる旨を示す存在情報を、前記検知部により検知された前記複数種類のタグの各々について生成する、
ことを特徴とする生成装置。
1 コンピュータ
2 基地局
3 ネットワーク
4 ストレージエリアネットワーク
5 ストレージ装置
6 クライアント装置

Claims (14)

  1. 文字情報と前記文字情報に付与された意味との組み合わせが、複数の文書データのそれぞれに存在するか否かを示す存否情報を記憶する記憶部と、
    特定文情報および前記特定文字情報に付与される特定意味の指定を含む検索要求を受信すると、前記存否情報に基づいて、前記特定意味が付与され、かつ、前記特定文字情報を含む文書データ、前記複数の文書データの中から抽出する制御部と、
    を含むことを特徴とする検索制御装置。
  2. 前記存否情報は、前記複数の文書データのうちの特定の文書データに含まれる文字情報に複数の意味が付与される場合、前記複数の意味それぞれについて、前記複数の意味が付与された文字情報との組合せが、前記特定の文書データに付与される旨を示す情報を含む
    ことを特徴とする請求項1に記載の検索制御装置。
  3. 前記存否情報は、文字情報および文字情報に対する表示形式の指定との組み合わせが、前記複数の文書データのそれぞれに存在するか否かを示す情報を含む
    ことを特徴とする請求項1または2に記載の検索制御装置。
  4. 所定形式のタグにより、前記複数の文書データに含まれる文字情報に意味が付与される、
    ことを特徴とする請求項1〜3のいずれか1項に記載の検索制御装置。
  5. 記文字情報は、1または複数の文字で構成される、
    ことを特徴とする請求項1〜4のいずれか1項に記載の検索制御装置。
  6. 前記存否情報は、文字情報に付与される意味と文字情報との組合せをビット行とし、前記複数の文書データのそれぞれを識別する識別情報をビット列とし、ビットの値に基づいて、ビット行に対応する、文字情報に付与される意味と文字情報との組合せが、ビット列に対応する文書データに存在するか否かを示すビットマップ情報であり、
    前記存否情報は、前記複数の文書データにおける、文字情報に付与される意味と文字情報との組合せが存在する文書データの出現頻度に基づいて、複数種類の前記組合せの論理積を1つのビット行とする、
    ことを特徴とする請求項1〜5のいずれか1項に記載の検索制御装置。
  7. コンピュータ
    特定文字情報および前記特定文字情報に付与される特定意味の指定を含む検索要求を受信し、
    記憶部に記憶された、文字情報と前記文字情報に付与された意味との組み合わせが、複数の文書データのそれぞれに存在するか否かを示す存否情報に基づいて、前記特定意味が付与された前記特定文字情報を含む文書データを、前記複数の文書データの中から抽出する、
    とを特徴とする検索制御方法。
  8. コンピュータに、
    特定文字情報および前記特定文字情報に付与される特定意味の指定を含む検索要求を受信し、
    記憶部に記憶された、文字情報と前記文字情報に付与された意味との組み合わせが、複数の文書データのそれぞれに存在するか否かを示す存否情報に基づいて、前記特定意味が付与された前記特定文字情報を含む文書データを、前記複数の文書データの中から抽出する、
    処理を実行させることを特徴とする検索制御プログラム。
  9. 文書データの読み出し位置を含む範囲を指定し、指定された前記範囲に含まれる文字情報付与される意味を示すタグを前記文書データから複数種類検知する検知部と、
    前記範囲に含まれる文字情報について、該文字情報と前記タグにより該文字情報に付与される意味との組合せ前記文書データに含まれる旨を示す存情報を、前記検知部により検知された前記複数種類のタグの各々について生成する生成部と、
    を含むことを特徴とする生成装置。
  10. 前記検知部は、
    前記読み出し位置を含む範囲を指定するタグを示す状態情報を、タグにより指定される範囲の開始を示す開始タグの読み出しが行われた場合、および、タグにより指定される範囲の終了を示す終了タグの読み出し行われた場合に更新し、
    前記状態情報に示されるタグを検知する、
    ことを特徴とする請求項に記載の生成装置。
  11. 前記状態情報は、前記複数種類のタグそれぞれについて、前記検出部によりタグの読み出しが行われたか否かを示す情報を含み、
    前記検知部は、
    前記文書データ中の所定の位置から順に、前記文書データに含まれる文字情報またはタグを読み出し、
    前記開始タグの読み出しに応じて、読み出された前記開始タグに対応する種類のタグについての状態情報前記検出部により前記開始タグに対応する種類のタグが読み出された旨を示す情報に更新し、
    前記終了タグ読み出しに応じ読み出された前記終了タグに対応する種類のタグについての状態情報前記検出部により前記終了タグに対応する種類のタグが読み出された旨を示す情報に更新し
    前記生成部は、
    前記複数種類のタグそれぞれについて、タグに対応する開始タグが読み出されてからタグに対応する終了タグが読み出されるまでに前記検出部により読み出された文字情報について、文字情報と前記開始タグおよび前記終了タグにより付与される意味との組合せが前記文書データに含まれる旨を示す存否情報を生成する、
    ことを特徴とする請求項10に記載の生成装置。
  12. 前記生成部は、複数の文書データに対して、前記存否情報を生成する処理を実行し、
    前記存否情報は、文字情報と前記タグにより該文字情報に付与される意味との組合せをビット行とし、前記複数の文書データのそれぞれを識別する識別情報をビット列とし、ビットの値に基づいて、ビット行に対応する、文字情報と前記タグにより該文字情報に付与される意味との組合せが、ビット列に対応する文書データに存在するか否かを示すビットマップ情報であり、
    前記存否情報は、前記複数の文書データにおける、文字情報と前記タグにより該文字情報に付与される意味との組合せが存在する文書データの出現頻度に基づいて、複数種類の前記組合せの論理積を1つのビット行として生成される
    ことを特徴とする請求項〜1のいずれか1項に記載の生成装置。
  13. コンピュータ
    文書データの読み出し位置を含む範囲を指定し、指定された前記範囲に含まれる文字情報付与される意味を示すタグを前記文書データから複数種類検知し、
    前記範囲に含まれる文字情報について、該文字情報と前記タグにより該文字情報に付与される意味との組合せ前記文書データに含まれる旨を示す存情報を、前記検知部により検知された前記複数種類のタグの各々について生成する、
    とを特徴とする生成方法。
  14. コンピュータに、
    文書データの読み出し位置を含む範囲を指定し、指定された前記範囲に含まれる文字情報付与される意味を示すタグを前記文書データから複数種類検知し、
    前記範囲に含まれる文字情報について、該文字情報と前記タグにより該文字情報に付与される意味との組合せ前記文書データに含まれる旨を示す存情報を、前記検知部により検知された前記複数種類のタグの各々について生成する、
    処理を実行させることを特徴とする生成プログラム。
JP2013095684A 2013-04-30 2013-04-30 検索制御装置、検索制御方法、生成装置および生成方法 Expired - Fee Related JP6163854B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013095684A JP6163854B2 (ja) 2013-04-30 2013-04-30 検索制御装置、検索制御方法、生成装置および生成方法
US14/256,662 US9576008B2 (en) 2013-04-30 2014-04-18 System and method for search indexing
US15/401,980 US10303672B2 (en) 2013-04-30 2017-01-09 System and method for search indexing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013095684A JP6163854B2 (ja) 2013-04-30 2013-04-30 検索制御装置、検索制御方法、生成装置および生成方法

Publications (2)

Publication Number Publication Date
JP2014215982A JP2014215982A (ja) 2014-11-17
JP6163854B2 true JP6163854B2 (ja) 2017-07-19

Family

ID=51790188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013095684A Expired - Fee Related JP6163854B2 (ja) 2013-04-30 2013-04-30 検索制御装置、検索制御方法、生成装置および生成方法

Country Status (2)

Country Link
US (2) US9576008B2 (ja)
JP (1) JP6163854B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220068276A1 (en) * 2020-09-01 2022-03-03 Sharp Kabushiki Kaisha Information processor, print system, and control method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6717152B2 (ja) * 2016-10-06 2020-07-01 富士通株式会社 インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法
TWI650656B (zh) * 2017-05-26 2019-02-11 虹光精密工業股份有限公司 於電腦系統搜尋影像檔案之方法、影像檔案搜尋裝置以及電腦系統
WO2020109921A1 (ja) * 2018-11-30 2020-06-04 株式会社半導体エネルギー研究所 文書検索方法、文書検索システム、プログラム、及び非一時的コンピュータ可読記憶媒体
US20230143568A1 (en) * 2021-11-11 2023-05-11 Microsoft Technology Licensing, Llc Intelligent table suggestion and conversion for text

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPQ131399A0 (en) * 1999-06-30 1999-07-22 Silverbrook Research Pty Ltd A method and apparatus (NPAGE02)
US5469354A (en) 1989-06-14 1995-11-21 Hitachi, Ltd. Document data processing method and apparatus for document retrieval
JP3263963B2 (ja) 1991-12-25 2002-03-11 株式会社日立製作所 文書検索方法及び装置
JPH08147311A (ja) 1994-11-17 1996-06-07 Hitachi Ltd 構造化文書検索方法及び装置
US5745745A (en) * 1994-06-29 1998-04-28 Hitachi, Ltd. Text search method and apparatus for structured documents
JP3518933B2 (ja) * 1995-06-05 2004-04-12 株式会社日立製作所 構造化文書検索方法
JP2962287B2 (ja) * 1997-07-31 1999-10-12 日本電気株式会社 構造化文書検索装置及びプログラムを記録した機械読み取り可能な記録媒体
JP3287307B2 (ja) * 1998-06-19 2002-06-04 日本電気株式会社 構造化文書検索システム、構造化文書検索方法および構造化文書検索用プログラムを記録した記録媒体
US20050154723A1 (en) * 2003-12-29 2005-07-14 Ping Liang Advanced search, file system, and intelligent assistant agent
US7707039B2 (en) * 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
WO2006123429A1 (ja) * 2005-05-20 2006-11-23 Fujitsu Limited 情報検索方法、装置、プログラム、該プログラムを記録した記録媒体
US8805781B2 (en) * 2005-06-15 2014-08-12 Geronimo Development Document quotation indexing system and method
JP4860416B2 (ja) * 2006-09-29 2012-01-25 株式会社ジャストシステム 文書検索装置、文書検索方法および文書検索プログラム
JP2010244388A (ja) * 2009-04-08 2010-10-28 Pioneer Electronic Corp 情報提供装置、情報提供方法、及び情報提供用プログラム
JP5741577B2 (ja) * 2010-05-28 2015-07-01 富士通株式会社 情報生成プログラム、情報生成装置、および情報生成方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220068276A1 (en) * 2020-09-01 2022-03-03 Sharp Kabushiki Kaisha Information processor, print system, and control method

Also Published As

Publication number Publication date
JP2014215982A (ja) 2014-11-17
US20140324878A1 (en) 2014-10-30
US20170116240A1 (en) 2017-04-27
US9576008B2 (en) 2017-02-21
US10303672B2 (en) 2019-05-28

Similar Documents

Publication Publication Date Title
US9424187B1 (en) Policy-based storage of portions of an object in a multi-tiered storage system
US9361187B2 (en) File system metadata capture and restore
WO2020211236A1 (zh) 基于b+树的读写冲突解决方法、装置及存储介质
JP6163854B2 (ja) 検索制御装置、検索制御方法、生成装置および生成方法
US20160055227A1 (en) Database scale-out
JPWO2016157314A1 (ja) 計算機システム、及び、情報処理方法
JP7060792B2 (ja) 情報処理装置、ファイル格納方法およびプログラム
US8935474B1 (en) Policy based storage of object fragments in a multi-tiered storage system
US20230244680A1 (en) Systems and methods for expedited large file processing
EP3158471A1 (en) Efficient storage of related sparse data in a search index
JP6506201B2 (ja) 目的変数に対応する説明変数群を決定するシステム及び方法
JP5880699B2 (ja) インデックス生成プログラム及び検索プログラム
WO2023081032A1 (en) Query-based database redaction
JP6212639B2 (ja) 検索方法
JP6245571B2 (ja) データ構造、データ生成装置、その方法及びプログラム
US9916419B2 (en) Processing electronic documents
EP4179435A1 (en) Systems and methods for targeted data discovery
CN106776601A (zh) 搜索条件的配置方法及装置
JP6753190B2 (ja) 文書検索装置及びプログラム
US11262893B1 (en) Apparatus, system and method for generating custom workspaces in a medical computer system environment
KR200487047Y1 (ko) 처방 조회 장치
JP2017162096A (ja) 電子カルテプログラム、電子カルテ装置、及び電子カルテ処理方法
JP5846788B2 (ja) 医用画像処理装置
US10127256B2 (en) Asset storage system and method, and computer readable recording medium thereof
JP2016095723A (ja) 対応情報生成プログラム、対応情報生成装置及び対応情報生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160113

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20160401

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170605

R150 Certificate of patent or registration of utility model

Ref document number: 6163854

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees