JP4746433B2 - 文書検索方法、文書検索プログラムおよび文書検索装置 - Google Patents

文書検索方法、文書検索プログラムおよび文書検索装置 Download PDF

Info

Publication number
JP4746433B2
JP4746433B2 JP2006020460A JP2006020460A JP4746433B2 JP 4746433 B2 JP4746433 B2 JP 4746433B2 JP 2006020460 A JP2006020460 A JP 2006020460A JP 2006020460 A JP2006020460 A JP 2006020460A JP 4746433 B2 JP4746433 B2 JP 4746433B2
Authority
JP
Japan
Prior art keywords
document
search
storage unit
stored
searched
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
JP2006020460A
Other languages
English (en)
Other versions
JP2007200189A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006020460A priority Critical patent/JP4746433B2/ja
Priority to US11/625,983 priority patent/US7620614B2/en
Publication of JP2007200189A publication Critical patent/JP2007200189A/ja
Application granted granted Critical
Publication of JP4746433B2 publication Critical patent/JP4746433B2/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/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、電子化文書の検索において、利用可能なメモリ容量が限定されている場合でも、高速な検索を実現する技術に関するものである。
PC(Personal Computer)をはじめとする情報機器の普及に伴い、これらを用いて作成される電子化文書の量は今後も増え続けることは容易に想像される。この背景を受け、大量の文書の中から必要とする文書を探し出す全文検索装置に対する要求は、ますます高まってきている。
また、最近の傾向としては、例えば、電子メールを対象とし、送信者名やタイトルなど、文書の一部に記載された内容を検索したいという要求や、XML(eXtensible Markup Language)文書の特定のタグに含まれる内容を検索したいという要求が増えてきている。以上のような要求に応えるために、範囲や構造を限定して検索できる文書検索システムが開発されてきた。このような文書検索システムの一つとして、走査型の全文検索方式を挙げることができる。この方式は、ディスクやメモリに格納されたデータを走査することにより、検索者の必要とする文書(以下、目的文書と呼ぶ)を検索する方式である。例えば、特許文献1には、文書全体をメモリに格納することで、高速な全文検索を実現する技術(以下、従来技術1と呼ぶ)が開示されている。
特開2003−30197号公報
しかし、一般に、文書検索装置に搭載されているメモリ容量は有限である。したがって、検索対象となる文書容量が文書検索装置のメモリ容量より多い場合には、従来技術1をそのまま適用することができず、文書検索装置のメモリを増設するなどの方法により文書容量よりも多くのメモリを用意するといった対策や、メモリだけでなくディスクを含めて検索するといった対策を講ずる必要がある。前者の場合、メモリ増設のための投資が必要となる。また、後者の場合には、ディスクを参照する文書件数に応じて検索時間が必要となる。
そこで、本発明は、構造化データを対象にした文書を参照する検索において、利用可能なメモリ容量が限定されている制約の下でも、高速な検索を実現することを課題とする。
前記の目的を達成するために、本発明の文書検索方法は、文書の検索条件を受け付ける入力装置と、前記検索条件に基づいて文書の検索を行なう文書検索装置と、前記検索の結果を出力する出力装置とを含んで構成され、前記文書検索装置が、第1の記憶部と、第2の記憶部と、処理部とを備え、前記第2の記憶部が、前記検索の対象となる文書を格納し、前記第1の記憶部が、前記処理部によって前記第2の記憶部よりも高速にデータの読み出しが可能である文書検索システムによる文書検索方法であって、前記処理部が、前記第1の記憶部にデータを格納する際に、前記第1の記憶部に格納可能なデータの容量を取得し、前記第2の記憶部に格納された前記検索の対象となる文書の件数を取得し、前記取得した前記第1の記憶部に格納可能なデータの容量を、前記取得した前記検索の対象となる文書の件数で除算して、該件数の1件あたりの容量を算出し、前記算出した1件あたりの容量に相当するデータを、前記検索の対象となる文書のそれぞれから抽出して、部分文書として前記第1の記憶部に格納し、文書検索をする際に、前記入力装置が受け付けた前記検索条件に合致する前記検索の対象となる文書を、前記第1の記憶部に格納した前記部分文書を検索する第1の検索によって抽出し、前記第1の検索によって前記検索条件に合致しないと判定した場合、前記検索条件に合致する文書を、前記第2の記憶部に格納された前記検索の対象となる文書からさらに検索する第2の検索によって抽出し、前記第1の検索および前記第2の検索の各検索によって前記検索条件に合致すると判定した前記検索の対象となる文書を、前記検索の結果として前記出力装置に出力させる方法とした。
かかる方法によれば、文書検索装置は、第2の記憶部に検索の対象となる文書を格納し、処理部が、第1の記憶部に格納可能なデータの容量を取得し、第2の記憶部に格納された検索の対象となる文書から取得した容量のデータを抽出して、部分文書として、処理部によって第2の記憶部よりも高速にデータの読み出しが可能な第1の記憶部に格納し、入力装置を介して受け付けた検索条件に合致する検索の対象となる文書を、第1の記憶部に格納した部分文書を検索する第1の検索によって抽出し、検索条件に合致する検索の対象となる文書を、第1の検索によって検索条件に合致しないと判定した場合、検索条件に合致する文書を、第2の記憶部に格納された検索の対象となる文書をさらに検索する第2の検索によって抽出し、第1の検索および第2の検索の各検索によって検索条件に合致すると判定した検索の対象となる文書を、検索の結果としてユーザに出力装置を介して出力することが可能である。したがって、処理部が、第2の記憶部よりも高速にデータの読み出しが可能な第1の記憶部をまず検索するので、構造検索のような文書の一部を参照する検索において、利用可能なメモリ容量が限定されている制約の下でも、メモリを増設することなく、高速な検索を実現することが可能になる。
本発明によれば、構造検索のような文書を参照する検索において、利用可能なメモリ容量が限定されている制約の下でも、高速な検索を実現することが可能になる。
(第1の実施形態)
以下、本発明の第1の実施形態について図1を用いて説明する。
本発明の第1の実施形態における文書検索システム10は、文書検索サーバ(文書検索装置)100、クライアント101およびこれらを接続するネットワーク103を含んで構成される。
以下、文書検索サーバ100の構成について説明する。
文書検索サーバ100は、磁気ディスク装置102、ディスプレイ110、キーボード111、中央演算処理装置(CPU(Central Processing Unit))112、外部記憶媒体駆動装置113、ネットワークボード(Ethernet(登録商標)ボード)114、主メモリ117およびこれらを結ぶバス115から構成される。
外部記憶媒体116に格納されている情報は、文書検索サーバ100のCPU112によって、外部記憶媒体駆動装置113を介して主メモリ117へ読み込まれ、バス115を介して磁気ディスク装置102に格納される。文書検索サーバ100の主メモリ117には、システム制御プログラム120(文書登録制御プログラム121、検索制御プログラム122、検索対象文書格納プログラム130、メモリ容量算出プログラム131、部分文書ロードプログラム132、検索条件解析プログラム133、メモリ検索プログラム134、検索継続判定プログラム135、ディスク検索プログラム136および検索結果出力プログラム137)が磁気ディスク装置102から読み出されて格納されると共に、部分文書格納エリア140、ワークエリア141、ヒット文書管理テーブル142、ディスク検索対象文書管理テーブル143が確保される。
システム制御プログラム120は、文書登録制御プログラム121および検索制御プログラム122を含んで構成される。
文書登録制御プログラム121は、検索対象文書格納プログラム130、メモリ容量算出プログラム131および部分文書ロードプログラム132を含んで構成される。
検索制御プログラム122は、検索条件解析プログラム133、メモリ検索プログラム134、検索継続判定プログラム135、ディスク検索プログラム136、および検索結果出力プログラム137を含んで構成される。
文書登録制御プログラム121および検索制御プログラム122は、キーボード111あるいはネットワーク103に接続されたクライアント101からのユーザによる指示に応じてシステム制御プログラム120によって起動され、それぞれ、検索対象文書格納プログラム130、メモリ容量算出プログラム131、部分文書ロードプログラム132の制御と、検索条件解析プログラム133、メモリ検索プログラム134、検索継続判定プログラム135、ディスク検索プログラム136、検索結果出力プログラム137の制御を行なう。
磁気ディスク装置102は、二次記憶装置の一つであり、検索対象文書150が格納される。あわせて、システム制御プログラム120をはじめとした各プログラム121、122、130〜137が格納されている。
以上が、文書検索サーバ100のシステム構成についての説明である。
なお、本実施形態では、文書検索サーバ100上のキーボード111あるいはネットワーク103に接続されたクライアント101から入力されたコマンドにより、文書登録制御プログラム121、あるいは検索制御プログラム122が起動されるものとしたが、他の入力装置を介して入力されたコマンドあるいはイベントにより起動されるものであってもよい。
また、これらのプログラムを磁気ディスク装置102、外部記憶媒体117、あるいはMO(Magneto-Optical disk)、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)などの記憶手段(図1には示していない)に格納し、文書検索サーバ100のCPU112が、駆動装置を介して文書検索サーバ100上の主メモリ117に読み込み、実行することも可能である。
また、これらのプログラムを、ネットワーク103を介して文書検索サーバ100の主メモリ117に読み込み、文書検索サーバ100上のCPU112によって実行することも可能である。
さらに、本実施形態では、検索対象文書150を磁気ディスク装置102に格納するものとしたが、文書検索サーバ100の主メモリ117に格納されるものであってもよいし、あるいは外部記憶媒体116、MO、CD−ROM、DVD等の記憶媒体(図1には示していない)に格納し、駆動装置を介して文書検索サーバ100の主メモリ117に読み込み、利用することも可能である。また、磁気ディスク装置102がネットワーク103を介して接続されていてもよい。
また、文書検索サーバ100のワークエリア141は、文書検索サーバ100の主メモリ117に確保されるものとしたが、磁気ディスク装置102に確保されるものであってもよいし、外部記憶媒体117、MO、CD−R(Compact Disk Recordable)、DVDなどの書込み可能な記憶媒体(図1には示していない)に確保されるものであってもよい。
また、本実施形態では、文書検索サーバ100およびクライアント101は、物理的に異なる装置を用いて構成されるものとしたが、同一の装置であってもよい。
以下、本実施形態における文書検索システム10の処理手順について説明する。
まず、文書検索サーバ100のシステム制御プログラム120の処理手順について、図2のPAD(Problem Analysis Diagram)図を用いて(適宜図1参照)説明する。
システム制御プログラム120は、キーボード111から入力されたコマンドの種類を判定する(ステップS200)。システム制御プログラム120は、ここで登録実行(登録処理)のコマンドであると判定した場合には(ステップS200で登録処理)、文書登録処理プログラム121を起動し、(登録実行のコマンドで)指定された文書を登録する(ステップS201)。
また、システム制御プログラム120は、前記ステップS200で検索実行(検索処理)のコマンドであると判定した場合には、検索制御プログラム122を起動し、検索実行のコマンドで指定された検索条件に適合する文書を検索する(ステップS202)。
以上が、文書検索サーバ100のシステム制御プログラム120の処理手順についての説明である。
次に、図2に示したステップS201でシステム制御プログラム120により起動される文書登録制御プログラム121の処理手順について、図3のPAD図を用いて(適宜図1参照)説明する。
文書登録制御プログラム121は、まず検索対象文書格納プログラム130を起動し、検索対象となる文書を検索対象文書150として磁気ディスク装置102に格納する(ステップS300)。この検索対象文書は、外部記憶媒体116から外部記憶媒体駆動装置113を介して取得してもよいし、ネットワーク103を介して取得してもよい。
次に、メモリ容量算出プログラム131を起動し、ステップS300で磁気ディスク装置102に検索対象文書150として格納された文書の件数と部分文書格納エリア140の容量を取得して、1文書あたりで使用可能な文書別メモリ容量を算出する(ステップS301)。
次に、検索対象文書150として格納された各文書に対して(検索対象文書150として格納された文書を順に選択して)、次の処理(ステップS303)を繰り返す(ステップS302)。部分文書ロードプログラム132を起動し、前記ステップS302で選択された文書から、前記ステップS301で算出されたメモリ容量分を部分文書として抽出し、部分文書格納エリア140に格納する(ステップS303)。
以上が、文書登録制御プログラム121の処理手順についての説明である。
次に、図2に示したステップS202で、システム制御プログラム120により起動される検索制御プログラム122の処理手順について図4のPAD図を用いて(適宜図1参照)説明する。
検索制御プログラム122は、まず検索条件解析プログラム133を起動し、ユーザからの検索条件を解析する(ステップS400)。なお、ユーザは、クライアント101から検索条件を入力することが可能である。
次に、部分文書格納エリア140に格納され各部分文書に対して(部分文書格納エリア140に格納された部分文書を順に選択して)、ステップS402以降の処理を繰り返し実行する(ステップS401)。
まず、メモリ検索プログラム134を起動し、該部分文書(前記ステップS401で選択された部分文書)に対する照合を実行する(ステップS402)。次に、前記ステップS402で実行された照合処理の結果、該部分文書がヒット文書であるか(検索条件を満たす文書であるか)どうかを判定する(ステップS403)。該部分文書がヒット文書であると判定された場合には(ステップS403でYes)、ヒット文書管理テーブル142の該部分文書に対応する文書IDのフラグをたてる(ステップS404)。なお、ここでは一例として、フラグの各値は、「0:検索結果として出力しない文書」「1:検索結果として出力する文書」をそれぞれ表している。
また、前記ステップS402で実行された照合処理の結果、該部分文書がヒット文書でないと判定された場合には(ステップS403でNo)、検索継続判定プログラム135を起動し、検索条件で指定された範囲を検索し終えているかを判定する(ステップS405)。前記ステップS405で、検索条件で指定された範囲を検索し終えていないと判定された場合には(ステップS405でNo)、ディスク検索対象文書管理テーブル143に(該部分文書に対応する)文書IDを記録する(ステップS406)。
次に、ディスク検索対象文書管理テーブル143に格納された各文書IDに対して、ステップS408以降の処理を繰り返し実行する(ステップS407)。
まず、ディスク検索プログラム136を起動し、該文書IDに対応する文書データを磁気ディスク装置102の検索対象文書150からワークエリア141に読み込み、ステップS400で解析された検索条件に適合するかを判定する(ステップS408)。そして、該文書がヒット文書かどうかを判定する(ステップS409)。この結果、該文書データがヒット文書であると判定された場合には(ステップS409でYes)、ヒット文書管理テーブル142の該文書に対応する文書IDのフラグをたてる(ステップS410)。
次に、ヒット文書管理テーブル142を参照して、フラグのたっている文書を検索結果として出力する(ステップS411)。
以上が、検索制御プログラム122の処理手順についての説明である。
以下、本発明の第1の実施形態における文書検索システムの具体的な処理手順を図5および図6を用いて説明する。
まず、本発明の第1の実施形態に示した文書検索システムにおける文書の登録処理(図3)について、図5を用いて(適宜図1および図3参照)具体的に説明する。
図5は、文書1から文書10が登録される場合の処理の流れを表している。文書1から文書10の内容は、図5の文書1(501)から文書10(510)に示す通りである。なお、文書2(502)のimgタグで囲まれた部分は、BASE64でエンコードされた野球選手の画像であることを示している。
図5に示した例では、文書1(501)から文書10(510)に対して、まず、図3に示したステップS300が実行され、検索対象文書格納プログラム130により、文書1(501)から文書10(510)が、それぞれ検索対象文書1(501a)から検索対象文書10(510a)として磁気ディスク装置102に格納された状態を表している。次に、図3に示したステップS301が実行され、メモリ容量算出プログラム131により、磁気ディスク装置102に格納された文書の件数と部分文書格納エリア140の容量を取得して、1文書あたりで使用可能な文書別メモリ容量を算出する。
図5に示した例では、磁気ディスク装置102に格納されている文書の件数10件と、部分文書格納エリア140の容量1500Byteが取得され、1文書あたりで使用可能な文書別メモリ容量が(1500Byte/10=)150Byteであると算出された状態を表している。
次に、図3に示したステップS302が実行され、部分文書ロードプログラム132により、磁気ディスク装置102に格納された検索対象文書150から、ステップS301で算出されたメモリ容量分だけ部分文書が読み込まれ、部分文書格納エリア140に格納される。図5に示した例では、磁気ディスク装置102に格納された検索対象文書1(501a)から検索対象文書10(510a)のそれぞれから150Byteずつ読み込まれ、これらが部分文書1(501b)から部分文書10(510b)として部分文書格納エリア140に格納されたことを表している。
以上が、本実施形態に示した文書検索システムにおける文書の登録処理の具体的な流れについての説明である。
次に、本発明の第1の実施形態に示した文書検索システムにおける文書の検索処理(図4)について、図6を用いて(適宜図1および図4参照)具体的に説明する。
図6は、前記文書1から文書10が格納された文書検索サーバ100に対し、“title:Tokyo”が検索条件600として指定された場合の例を表している。ここで、検索条件600“title:Tokyo”は、ユーザが、“title”構造に“Tokyo”という文字列が含まれる文書を検索条件として指定したことを示している。
部分文書格納エリア140に格納された各部分文書について、図4に示したステップS402以降の処理が繰り返される。まず、部分文書1(501b)について、図4に示したステップS402が実行され、メモリ検索プログラム134により、部分文書1(501b)が検索される。次に、図4に示したステップS403では、部分文書1(501b)がヒット文書であるかどうかが判定される。図6に示した例では、検索条件600“title:Tokyo”に対し、部分文書1(501b)がヒット文書でないため、ヒット文書管理テーブル142は更新されず(ヒット文書管理テーブル142aからヒット文書管理テーブル142bになる)、図4に示したステップS405が実行され、検索継続判定プログラム135により、検索条件で指定された範囲を検索し終えているかが判定される。図6に示した例では、部分文書1(501b)に対する照合により、検索条件600“title:Tokyo”で指定された範囲であるtitle部分の照合を終えている(“title”構造の最後まで照合を終えている)ので、ディスク検索対象文書管理テーブル143には、何も記録されない(null)状態(ディスク検索対象文書管理テーブル143aからディスク検索対象文書管理テーブル143bになる)を示している。
次に、部分文書2(502b)について、図4に示したステップS402が実行され、メモリ検索プログラム134により、部分文書2(502b)が照合される。図6に示した例では、検索条件600“title:Tokyo”に対し、部分文書2(502b)がヒット文書であるため、ヒット文書管理テーブル142bの「文書ID」=「2」のフラグが「0」から「1」に更新され、ディスク検索対象文書管理テーブル142cの状態になることを示している。
さらに、部分文書3(503b)について、図4に示したステップS402が実行され、メモリ検索プログラム134により、部分文書3(503b)が照合される。図6に示した例では、検索条件“title:Tokyo”に対し、部分文書3(503b)がヒット文書でないため、図4に示したステップS405が実行され、検索継続判定プログラム135により、検索条件で指定された範囲を検索し終えているかが判定される。図6に示した例では、文書503に対しては、部分文書3(503b)を照合しても、検索条件“title:Tokyo”で指定された範囲を照合し終えていない(“title”構造の最後まで照合し終えていない)ので、ディスク検索対象文書管理テーブル143bに「文書ID」=「3」が記録され、ディスク検索対象文書管理テーブル143cの状態になったことを示している。
次に、図4に示したステップS407が実行され、ディスク検索対象文書管理テーブル143に記録された各文書IDについて、ステップS408以降の処理が繰り返される。
まず、図4に示したステップS408が実行され、ディスク検索プログラム136により、選択された文書IDに対応する文書データが、磁気ディスク装置102の検索対象文書150から、ワークエリア141に読み込まれる。そして、図4に示したステップS400で指定された検索条件に適合するかが判定される。次に、図4に示したステップS409で該文書が、ヒット文書かどうかが判定される。ヒット文書であれば、図4に示したステップS410でヒット文書管理テーブル142の該部分文書IDに対応する文書IDのフラグをたてる。図6に示した例では、ディスク検索対象文書管理テーブル143cに「文書ID」=「3」が記録されているので、文書3(503b)に対応する文書データが磁気ディスク装置102の検索対象文書150からワークエリア141に読み込まれ、文書3(503b)に対する照合が実行される。この結果、この文書3(503b)はヒット文書であると判定され、ヒット文書管理テーブル142dの「文書ID」=「3」のフラグが「0」から「1」に更新され、ヒット文書管理テーブル142eになることを示している。
以上が、本発明の第一の実施形態についての説明である。
以上説明したように、本発明の第一の実施形態では、文書の一部を参照する検索において、文書の先頭部分をメモリに格納し、まずこのメモリに格納された部分文書に対して照合を行なう。これにより文書の先頭部分に検索される構造が集中している場合には、メモリ上で照合が完了するため、小容量のメモリでも高速な検索を実現することができる。また、本発明によれば、メモリ上に格納された部分文書で検索が終了しない場合でも、ディスク上に格納された文書を検索するので、検索条件で指定された任意の構造に対して検索することができるのは明らかであろう。
(第2の実施形態)
次に、本発明の第2の実施形態について、図7を用いて説明する。
第1の実施形態のように、文書の先頭部分を主メモリに格納するのでは、検索対象となる構造が必ずしも主メモリにあるとは限らないため、ディスクを検索しなければならない状況も、少なからず生じる。そこで本発明の第2の実施形態における文書検索システムは、文書中の構造が検索条件で指定された回数(以下、検索回数と呼ぶ)を数えておき、よく検索される構造を主メモリに格納することで高速な検索を実現しようとするものである。
本実施形態は、第1の実施形態(図1)とほぼ同様の構成をとるが、符号122aで示される検索制御プログラムの構成が異なると共に、符号117aで示される主メモリに構造別検索回数テーブル705および構造格納場所管理テーブル706が確保される点で異なる(図7)。本実施形態における検索制御プログラム122aは、構造別検索回数カウントプログラム702、構造データ管理プログラム703、構造データロードプログラム704を有する。それ以外の部分は図1と同様の構成である。
以下、本実施形態における処理手順のうち、第1の実施形態とは異なる検索制御プログラム122aの処理手順について図8に示すPAD図を用いて(適宜図7参照)説明する。図8に示した処理手順のうち、図4に示した第1の実施形態とはステップS801、802、803が異なる。ステップS801では文書の論理構造の検索回数をカウントすることを特徴とする。ステップS802では文書の論理構造の格納場所によっては、メモリでの検索を省略することを特徴とする。また、ステップS803では、文書の論理構造の検索回数テーブルを参照して、文書の論理構造を入れ替えることを特徴とする。
検索制御プログラム122aは、まず、検索条件解析プログラム133を起動し、ユーザからの検索条件を解析する(ステップS400)。次に、構造別検索回数カウントプログラム702を起動し、ステップS400で解析された検索条件で指定された構造の回数を1増やす(検索条件で指定された構造に対応する構造別検索回数テーブル705の構造の回数を1増やす)(ステップS801)。
次に、部分文書格納エリア140に格納された各部分文書に対して(部分文書格納エリア140に格納された部分文書を順に選択して)、ステップS802以降の処理を繰り返し実行する(ステップS401)。
まず、構造データ管理プログラム703を起動し、ステップS400で解析された検索条件中の構造が、どこに格納されているかを、構造格納場所管理テーブル706を参照して判断する(ステップS802)。前記ステップS802で実行される判断処理の結果、ステップS400で解析された検索条件中の構造が「すべてメモリ、または一部メモリ」に格納されていると判断された場合には(ステップS802で「すべてメモリ、または一部メモリ」)、前記したステップS402からステップS406の処理を行なう。
前記ステップS802で実行される判断処理の結果、ステップS400で解析された検索条件中の構造が「メモリにはない」と判断された場合には(ステップS802で「メモリにはない」)、前記したステップS406の処理を行なう。
次に、ディスク検索対象文書管理テーブル143に格納された各文書IDに対して、ステップS408以降の処理を繰り返し実行する(ステップS407)。
前記したステップS408からステップS410の処理については、説明を省略する。ステップS408からステップS410の後、構造データロードプログラム704を起動し、構造別検索回数テーブル705の検索回数の降順に(検索回数の多い方から少ない方へ順に)、ステップS301で算出したメモリ容量に達するまで、構造データを部分文書格納エリア140にロードし、構造格納場所管理テーブル706を書き換える(ステップS803)。
以上が、検索制御プログラム122aの処理手順についての説明である。
次に、本発明の第2の実施形態に示した文書検索システムにおける文書の検索処理(図8)について、図9を用いて(適宜図7および図8参照)具体的に説明する。
図9においては、部分文書格納エリア140に部分文書1(501b)、部分文書2(502b)および部分文書3(503b)が格納されているものとする。
まず、図8に示したステップS801が実行され、構造別検索回数カウントプログラム702により、検索条件で指定された構造に対応する構造別検索回数テーブル705の値が1増やされる。
図9に示した例では、検索条件900“title:Tokyo”であるので、構造別検索回数テーブル705aの構造“title”の回数が「8」から「9」に増やされ、構造別検索回数テーブル705bになったことを示している。
次に、部分文書格納エリア140に格納された各部分文書について、ステップS802以降の処理が繰り返される。
まず、部分文書1(501b)について、図8に示したステップS802が実行され、構造データ管理プログラム703により、図8に示したステップS400で解析された検索条件中の構造が、すべてメモリ、または一部メモリに格納されているか、メモリには格納されていないかを、構造格納場所管理テーブル706を参照して判断される。
図9に示した例では、構造格納場所管理テーブル706aが参照され、文書1(501b)については検索条件900で指定された“title”が一部メモリにあると判断されたため、メモリ検索プログラム134が起動され、部分文書1(501b)に対する検索が実行されることを示している。なお、ここでは一例として、構造格納場所管理テーブル706(706a、706b、706cおよび706d)の各値は、「1:すべてメモリ」「2:一部メモリ」および「3:メモリにはない」をそれぞれ表している。
次に、図8に示したステップS403が実行され、部分文書1(501b)がヒット文書であるかどうかが判定される。
図9に示した例では、検索条件“title:Tokyo”に対して、部分文書1(501b)がヒット文書ではないため、図8に示したステップS405が実行され、検索継続判定プログラム135により、検索条件で指定された範囲を検索し終えているかが判定される。
図9に示した例では、部分文書1(501b)に対する照合を行なうことで、検索条件“title:Tokyo”で指定された範囲を検索し終えているので、ディスク検索対象文書管理テーブル143には、何も記録されない(null)状態(ディスク検索対象文書管理テーブル143aからディスク検索対象文書管理テーブル143bになる)を示している。
次に、部分文書2(502b)について、図8に示したステップS802が実行され、構造データ管理プログラム703により、図8に示したステップS400で解析された検索条件中の構造が、すべてメモリ、または一部メモリに格納されているか、メモリには格納されていないかを、構造格納場所管理テーブル706を参照して判断される。
図9に示した例では、構造格納場所管理テーブル706aが参照され、文書2(502b)については検索条件900で指定された“title”がすべてメモリにあると判断されたため、メモリ検索プログラム134が起動され、部分文書2(502b)に対する検索が実行されることを示している。
次に、図8に示したステップS403が実行され、部分文書2(502b)がヒット文書であるかどうかが判定される。
図9に示した例では、検索条件“title:Tokyo”に対して、部分文書2(502b)がヒット文書であるため、ヒット文書管理テーブル142aの「文書ID」=「2」のフラグが「0」から「1」に更新され、ヒット文書管理テーブル142bになることを示している。
さらに、部分文書3(503b)について、図8に示したステップS802が実行され、構造データ管理プログラム703により、図8に示したステップS400で解析された検索条件中の構造が、すべてメモリ、または一部メモリに格納されているか、メモリには格納されていないかを、構造格納場所管理テーブル706を参照して判断される。
図9に示した例では、構造格納場所管理テーブル706aが参照され、文書3(503b)については検索条件900で指定された“title”がメモリにはないと判断されたため、ディスク検索対象文書管理テーブル143cに「文書ID」=「3」が記録された状態を示している。
次に、図8に示したステップS407が実行され、ディスク検索対象文書管理テーブル143に記録された各文書IDについて、ステップS408以降の処理が繰り返される。
まず、図8に示したステップS408が実行され、ディスク検索プログラム136により、選択された文書IDに対応する検索対象文書150が磁気ディスク装置102から、ワークエリア141に読み込まれる。そして、図8に示したステップS400で指定された検索条件に適合するかが判定される。次に、図8に示したステップS409で該文書が、ヒット文書かどうかが判定される。
図9に示した例では、ディスク検索対象文書管理テーブル143cに「文書ID」=「3」が記録されているので、「文書ID」=「3」に対応する文書データ(検索対象文書3(503a)のデータ)が磁気ディスク装置102の検索対象文書150からワークエリア141に読み込まれ、検索対象文書3(503a)の照合が実行される。この結果、検索対象文書3(503a)は、ヒット文書であると判定され、ヒット文書管理テーブル142bの「文書ID」=「3」のフラグが「0」から「1」に更新され、ヒット文書管理テーブル142cになることを示している。
次に、ステップS803が実行される。
まず、部分文書1(501b)について、構造データロードプログラム704が実行される。構造データロードプログラム704は、構造別検索回数テーブル705を参照して、検索回数の多い構造から、ステップS301で算出したメモリ容量150Byteに達するまで、構造を部分文書格納エリア140にロードし、部分文書格納エリア140にすべてロードできた構造に関しては、“1”(すべてメモリ)、部分文書格納エリア140に一部ロードできた構造に関しては、“2”(一部メモリ)、部分文書格納エリア140にロードできなかった構造に関しては、“3”(メモリにはない)を用いて、構造格納場所管理テーブル706を更新する。
図9に示した例では、部分文書1(501b)について、構造別検索回数テーブル705を参照して、その検索回数の多い順“author”、“title”、“date”、“body”の順に読み込まれる。150Byteに達して部分文書1(901)が生成され、構造格納場所管理テーブル706bの「文書ID」=「1」の行が、“date”については“3”(メモリにはない)、“author”については“1”(すべてメモリ)、“title”については“1”(すべてメモリ)、“body”については“3”(メモリにはない)状態に更新されたことを示している。
次に、部分文書2(502b)について、構造データロードプログラム704が実行される。構造データロードプログラム704は、構造別検索回数テーブル705を参照して、検索回数の多い構造から、ステップS301で算出したメモリ容量150Byteに達するまで、構造を部分文書格納エリア140にロードし、構造格納場所管理テーブル706を更新する。
図9に示した例では、部分文書2(502b)について、構造別検索回数テーブル705を参照して、その検索回数の多い順“author”、“title”、“date”、“body”の順に読み込まれる。150Byteに達して部分文書2(902)が生成され、構造格納場所管理テーブル706cの「文書ID」=「2」の行が、“date”については“2”(一部メモリ)、“author”については“1”(すべてメモリ)、“title”については“1”(すべてメモリ)、“body”については“3”(メモリにはない)の状態に更新されたことを示している。
次に、部分文書3(503b)について、構造データロードプログラム704が実行される。構造データロードプログラム704は、構造別検索回数テーブル705を参照して、検索回数の多い構造から、ステップS301で算出したメモリ容量150Byteに達するまで、構造を部分文書格納エリア140にロードし、構造格納場所管理テーブル706を更新する。
図9に示した例では、部分文書3(503b)について、構造別検索回数テーブル705を参照して、その検索回数の多い順“author”、“title”、“date”、“body”の順に読み込まれる。150Byteに達して部分文書3(903)が生成され、構造格納場所管理テーブル706dの「文書ID」=「3」の行が、“date”については“3”(一部メモリ)、“author”については“1”(すべてメモリ)、“title”については“1”(すべてメモリ)、“body”については“3”(メモリにはない)の状態に更新されたことを示している。
以上が、本発明の第2の実施形態についての説明である。
なお、図9では文書の論理構造の入れ替えを、構造別検索回数テーブル705を参照することで行なったが、後記する図18に示すGUI(Graphical User Interface)1801を用いて、部分文書格納エリア140に格納する構造をユーザが指定したり、除外したりすることも可能である。
図18に示すGUI1801は、文書構造指定部1802、指定ボタン1803、除外ボタン1804、構造別検索回数テーブル参照ボタン1805、登録済み文書構造表示部1806、除外文書構造表示部1807を有する。
図18に示すGUI1801では、文書構造指定部1802には、“title”が入力されており、登録済み文書構造表示部1806には、“author”が登録済みであることが表示されている。登録済み文書構造として登録されている“author”は、部分文書格納エリア140に格納する構造として指定されることを意味する。また、除外文書構造表示部1807には、“date”が登録済みであることが示されている。除外文書構造として登録されている“date”は、部分文書格納エリア140に格納する構造からは除外されることを意味する。
図18に示すように、GUI1801の状態で指定ボタン1803が押されると、登録済み文書構造表示部1806aに“title”が追加され、部分文書格納エリア140に格納する構造として指定される。ここでは図示しないが、仮に、GUI1801の状態で指定ボタン1803ではなく、除外ボタン1804が押されると、除外文書構造表示部1807に“title”が追加され、部分文書格納エリア140に格納する構造からは除外される。構造別検索回数テーブル参照ボタン1805が押されると、構造別検索回数テーブル705が参照できる。
以上説明したように、本発明の第2の実施形態によれば、文書中の構造の検索回数を計数しておき、よく検索される構造を主メモリに格納することで、該構造に対する高速な検索を実現することができる。ここで、構造に関しては、計数された構造だけでなく、管理者が指定した構造であってもよい。また、主メモリに格納される構造は、構造名に基づいて指定された属性や、型定義によって決定されてもよい。さらに、構造で囲まれている文字列の長さに基づいて決定してもよい。この結果、構造を指定する検索条件については、ユーザによって利用に応じて最適化が行なわれ、文書検索装置は高速な検索を実現することができる。
(第3の実施形態)
次に、本発明の第3の実施形態について、図10を用いて説明する。
第1の実施形態および第2の実施形態では、主メモリは部分文書を格納するために、すべて使用されている状態である。この状態のときに、検索対象となる文書を追加していくと、追加された文書の部分文書は、主メモリに格納することができない。したがって、追加文書中に検索条件が含まれる場合には、低速な検索性能しか得られない。
そこで、本発明の第3の実施形態における文書検索システムは、メモリ容量が文書容量で満たされている状態で文書が追加登録された場合でも、1文書あたりで使用可能なメモリ容量を再計算し、メモリ上にロードし直すことで、追加登録された文書を含めて、高速な検索を実現しようとするものである。
本実施形態は、第1の実施形態(図1)とほぼ同様の構成をとるが、符号121aで示されるように、主メモリ117bに格納される文書登録制御プログラムの構成が異なり、検索対象文書格納プログラム130、メモリ容量算出プログラム131、部分文書ロードプログラム132に加えて、構造データ管理プログラム703および構造データロードプログラム704を有する。それ以外の部分は、図1と同様の構成である。
以下、本実施形態における処理手順のうち、第1の実施形態とは異なる文書登録制御プログラム121aの処理手順について、図11に示すPAD図を用いて説明する。図11に示した処理手順のうち、図3に示した第1の実施形態とは、ステップS303の代わりにステップS1102およびステップS1103が実行される点が異なる。以下、ステップS1102およびステップS1103の処理手順について、説明する。
文書登録制御プログラム121aは、まず、構造データロードプログラム704を起動し、構造別検索回数テーブル705を、検索回数の降順にソートする。そして、ステップS301で算出された文書別メモリ容量が満たされるまで、磁気ディスク装置102から部分文書格納エリア140へ格納する(ステップS1102)。
次に、構造データ管理プログラム703を起動し、構造が格納されている場所を記録する(ステップS1103)。
以上が、文書登録制御プログラム121aの処理手順についての説明である。
次に、本発明の第3の実施形態に示した文書検索システムにおける文書の登録処理(図11)について、図12を用いて(適宜図10および図11参照)具体的に説明する。
図12において、磁気ディスク装置102には、検索対象文書1(1201)から検索対象文書11(1211)の11件の文書があらかじめ格納されている状態を表している。
まず、図3に示したステップS301が実行され、メモリ容量算出プログラム131により、磁気ディスク装置102に格納された文書の件数と部分文書格納エリア140の容量から、1文書あたりで使用可能な文書別メモリ容量が算出される。
図12に示した例では、磁気ディスク装置102に格納されている文書の件数11件と、部分文書格納エリア140の容量1500Byteが取得され、1文書あたりで使用可能な文書別メモリ容量が(1500Byte/11=)約136Byteであると算出された状態を表している。
次に、検索対象文書150として磁気ディスク装置102に格納された文書に対して、ステップS1102以降の処理が繰り返し実行される。
まず、ステップS1102が実行され、構造データロードプログラム704により、構造別検索回数テーブル705を、検索回数の降順にステップS301で算出された文書別メモリ容量が満たされるまで、構造を磁気ディスク装置102から部分文書格納エリア140へ格納する。次に、ステップS1103が実行され、構造データ管理プログラム703により、各構造の格納場所を記録する。
図12に示した例では、構造データロードプログラム704により、各検索対象文書150を読み込み、“author”、“title”、“date”、“body”の順に文書内の構造を並び替え、先頭の136Byteを部分文書として部分文書格納エリア140に格納する。
検索対象文書1(1201)については、“author”、“title”、“date”の構造データまでで136Byteになり部分文書1(1201a)として部分文書格納エリア140に格納されたことを示している。また、構造データ管理プログラム703により、部分文書1(1201a)については、“author”、“title”、“date”までが部分文書格納エリア140に格納されているため、構造格納場所管理テーブル706の「文書ID」=「1」において、“author”、“title”については“1”が付与され、“body”は部分文書格納エリア140に格納されていないため、“3”が付与されていることを示している。
検索対象文書2(1202)については、“author”、“title”、“date”の途中の構造データまでで136Byteになり、部分文書2(1202a)として部分文書格納エリア140に格納されたことを示している。また、構造データ管理プログラム703により、部分文書2(1202a)については、“author”、“title”、“date”の途中までが部分文書格納エリア140に格納されているため、構造格納場所管理テーブル706の「文書ID」=「2」において、“author”、“title”については“1”が付与され、“date”は部分文書格納エリア140に一部が格納されているため“2”が、“body”は部分文書格納エリア140に格納されていないため、“3”が付与されていることを示している。
検索対象文書10(1210)については、“author”、“title”、“date”の途中の構造データまでで136Byteになり、部分文書10(1210a)として部分文書格納エリア140に格納されたことを示している。また、構造データ管理プログラム703により、部分文書10(1210a)については、“author”、“title”、“date”の途中までが部分文書格納エリア140に格納されているため、構造格納場所管理テーブル706の「文書ID」=「10」において、“author”、“title”については“1”が付与され、“date”は部分文書格納エリア140に一部が格納されているため、“2”が付与され、“body”は部分文書格納エリア140に格納されていないため、“3”が付与されていることを示している。
検索対象文書11(1211)については、“author”、“title”、“date”の途中の構造データまでで136Byteになり、部分文書11(1211a)として部分文書格納エリア140に格納されたことを示している。また、構造データ管理プログラム703により、部分文書11(1211a)については、“author”、“title”、“date”の途中までが部分文書格納エリア140に格納されているため、構造格納場所管理テーブル706の「文書ID」=「11」において、“author”、“title”については“1”が付与され、“date”は部分文書格納エリア140に一部が格納されているため、“2”が付与され、“body”は部分文書格納エリア140に格納されていないため、“3”が付与されていることを示している。
以上が、本発明の第3の実施形態についての説明である。
以上説明したように、本発明の第3の実施形態によれば、検索対象となる部分文書に関して、メモリがすべて使用されている状態で文書が追加登録された場合でも、1文書あたりで使用可能なメモリ容量を再計算し、メモリ上にロードし直すことで、追加登録された文書を含めて、高速な検索を実現することができる。
また、本発明によれば、部分文書格納エリア140として使用可能な容量が増加した場合には、図11に示すステップS301からステップS1103を実行することによって、一つの部分文書あたりで使用可能な主メモリ容量を増加させることができる。したがって、部分文書に対する照合のみで検索が終了する確率が高くなるため、効率的な検索を行なうことができる。一方、部分文書格納エリア140として使用可能な主メモリ容量が減少した場合でも、図11に示すステップS301の処理およびステップS302の繰り返し処理を実行することによって、検索対象文書に対応するすべての部分文書をメモリに格納できるため、利用可能な主メモリを最大限に活用した検索を行なうことができる。
(第4の実施形態)
次に、本発明の第4の実施形態について、図13を用いて説明する。
第2の実施形態では、よく検索される構造の容量が大きい場合には、1文書あたりに割り当てられた容量分の部分文書格納エリア140に、該構造の一部しか格納できない状況になりやすい。そういった状況では、磁気ディスク装置を検索することが多く、低速な検索性能しか得られない。
そこで、本発明の第4の実施形態における文書検索システムは、検索者にとって有用な文書のみに着目し、この有用な文書中に存在する頻繁に検索される構造全体を主メモリに格納することで、高速な検索を実現しようとするものである。
本実施形態は、第2の実施形態(図7)とほぼ同様の構成をとるが、文書検索サーバ100の主メモリ117におけるシステム制御プログラム120aは、図7の検索制御プログラム122aの構成に、文書別ヒット回数カウントプログラム1301を加えた検索制御プログラム122b、部分文書最適化制御プログラム123で構成されるとともに、主メモリ117cに文書別ヒット回数テーブル1304が確保される点で異なる。
部分文書最適化制御プログラム123は、文書別ヒット回数テーブルソートプログラム1302、構造格納判断プログラム1303、構造データ管理プログラム703、および構造データロードプログラム704で構成される。
以下、本実施形態における処理手順のうち、第2の実施形態とは異なるシステム制御プログラム120aの処理手順について、図14のPAD図を用いて(適宜図13参照)説明する。図14に示した処理手順のうち、図7に示した第2の実施形態とは、ステップS1401、ステップS1402が異なる。
システム制御プログラム120aは、キーボード111から入力されたコマンドの種類を解析する(ステップS1401)。この結果が部分文書最適化処理実行のコマンドであると解析された場合には(ステップS1401で「部分文書最適化処理」)、部分文書最適化制御プログラム123を起動し、部分文書格納エリア140に格納される部分文書の最適化を行なう(ステップS1402)。
以上が第2の実施形態とは異なるシステム制御プログラム120aの処理手順である。
次に、第2の実施形態とは異なる検索制御プログラム122bの処理手順について、図15のPAD図を用いて(適宜図13参照)説明する。図15に示した処理手順のうち、図8に示した第2の実施形態とは、ステップS411の実行前にステップS1501、ステップS1502を実行する点で異なる。
以下、図8と異なるステップS1501およびステップS1502の処理について説明する。
ヒット文書管理テーブル142を参照して、フラグのたっている文書に対して、ステップS1502を繰り返し実行する(ステップS1501)。
文書別ヒット回数カウントプログラム1301を起動し、該文書のヒット回数を1増やす(ステップS1502)。
以上が、検索制御プログラム122bの処理手順である。
次に、部分文書最適化制御プログラム123の処理手順について、図16のPAD図を用いて(適宜図13参照)説明する。
部分文書最適化制御プログラム123は、まず文書別ヒット回数テーブルソートプログラム1302を起動し、文書別ヒット回数テーブル1304をヒット回数の降順にソートする(ステップS1601)。
次に、部分文書格納エリア140の容量を取得し、この値を残容量値の初期値とする(ステップS1602)。
次に、ステップS1601でソートされた文書別ヒット回数テーブル1304を参照して文書IDを選択し、ステップS1604以降の処理を繰り返し実行する(ステップS1603)。
まず、コマンドにより指定された構造(ユーザから検索条件として指定された構造)について、該文書IDの構造の容量を計算する(ステップS1604)。次に、構造格納判断プログラム1303を起動し、部分文書格納エリア140の残容量が、ステップS1604で計算された構造の容量以上であるかを判断する(ステップS1605)。
前記ステップS1605で実行される判断処理の結果、部分文書格納エリア140の残容量値が、ステップS1602で計算された構造の容量以上であると判断された場合には(ステップS1605でYes)、次の処理を行なう。まず、構造データロードプログラム704を起動し、コマンドにより指定された構造を部分文書格納エリア140にロードする(ステップS1606)。次に、構造データ管理プログラム703を起動し、構造格納場所管理テーブル706を更新する(ステップS1607)。次に、残容量値から、ステップS1604で計算された構造の容量を減算し、残容量値として設定する(ステップS1608)。
また、前記ステップS1605で実行された判断処理の結果、部分文書格納エリア140の残容量が、ステップS1602で計算された構造の容量よりも小さいと判断された場合には(ステップS1605でNo)、次の処理を行なう。まず、構造データロードプログラム704を起動し、コマンドにより指定された構造を、残容量分だけ、部分文書格納エリア140にロードする(ステップS1609)。そして、部分文書最適化処理を終了する(ステップS1610)。
以上が、部分文書最適化制御プログラム123の処理手順である。
以下、図16に示した本発明の第4の実施形態における文書最適化処理手順を、図17を用いて(適宜図13および図16参照)具体的に説明する。
まず、図16に示したステップS1601が実行され、文書別ヒット回数テーブルソートプログラム1302により、ヒット回数の降順に文書IDがソートされる。
図17に示した例では、文書別ヒット回数テーブル1304が、ヒット回数の降順にソートされ、文書別ヒット回数テーブル1304aになったことを示している。
次に、部分文書格納エリア140の容量を取得し、この値を残容量値の初期値とする。
図17に示した例では、部分文書格納エリア140の残容量値1706の初期値として1500Byteが設定されたことを示す。
次に、ステップS1601でソートされた文書別ヒット回数テーブル1304aが参照され、ステップS1604以降の処理が繰り返される。
まず、文書別ヒット回数テーブル1304aから、ヒット回数の降順に文書IDを選択する。次に、コマンドにより指定された構造について、該文書IDにおけるその構造の容量を計算する。次に、計算された構造の容量と、部分文書格納エリア140の残容量値の大小を判定する。
図17に示した例では、まず、文書別ヒット回数テーブル1304aから、「文書ID」=「3」(1702)が選択され、コマンドにより指定された構造“body”(1701)について、その構造の容量が500Byteであると計算される。部分文書格納エリア140の残容量値1706(初期値)の1500Byteが、その構造の容量500Byte以上であるので、部分文書最適化制御プログラム123により、「文書ID」=「3」(1702)の構造“body”が、部分文書3(1710)として部分文書格納エリア140にロードされたことを示している。また、部分文書格納エリア140の残容量値1706(1500Byte)が、残容量値1707(1500Byte−500Byte=1000Byte)になったことを示している。
次に、文書別ヒット回数テーブル1304aから、「文書ID」=「1」(1703)が選択され、コマンドにより指定された構造“body”(1701)について、その構造の容量が150Byteであると計算される。部分文書格納エリア140の残容量値1707(1000Byte)が、その構造の容量150Byte以上であるので、部分文書最適化制御プログラム123により、「文書ID」=「1」(1703)の構造“body”が、部分文書1(1711)として部分文書格納エリア140にロードされたことを示している。また、部分文書格納エリア140の残容量値1707(1000Byte)が、残容量値1708(1000Byte−150Byte=850Byte)になったことを示している。
次に、文書別ヒット回数テーブル1304aから、「文書ID」=「2」(1704)が選択され、コマンドにより指定された構造“body”(1701)について、その構造の容量が800Byteであると計算される。部分文書格納エリア140の残容量値1708(850Byte)が、その構造の容量800Byte以上であるので、部分文書最適化制御プログラム123により、「文書ID」=「2」(1704)の構造“body”が、部分文書2(1712)として部分文書格納エリア140にロードされたことを示している。また、部分文書格納エリア140の残容量値1708(850Byte)が、残容量値1709(850Byte−800Byte=50Byte)になったことを示している。
次に、文書別ヒット回数テーブル1304aから、「文書ID」=「8」(1705)が選択され、コマンドにより指定された構造“body”(1701)について、その構造の容量が300Byteであると計算される。部分文書格納エリア140の残容量値1709(50Byte)が、その構造の容量300Byte以上ではないので、部分文書最適化制御プログラム123により、「文書ID」=「8」(1705)の構造“body”が、部分文書8(1713)として残容量値1709(50Byte)分だけ、部分文書格納エリア140にロードされたことを示している。
なお、本実施形態では、図17で説明したように、文書の論理構造を、コマンドにより指定することで行なったが、図19に示すGUI1901を用いて、部分文書格納エリア140に格納する構造をユーザが指定したり、除外したりすることも可能である。また、図19に示すGUI1901は、重要な文書を優先して部分文書格納エリア140に格納しておくことを指定する重要文書格納チェックボックス1902を有する。
それ以外の部分は、図18に示したGUI1801と同様の構成である。
図19に示した例では、重要文書格納チェックボックス1902にチェックが入力され、重要な文書を優先して部分文書格納エリア140に格納しておくことを示す。図17では、文書のヒット回数をカウントして、その降順に文書をソートし、ユーザにより指定された構造を、ソートした文書から順に部分文書格納エリア140にロードする方法を説明したが、図19に示すように、ユーザが重要文書格納チェックボックス1902にチェックを入れることによって、重要な文書を優先して部分文書格納エリア140にロードし、格納しておく方法も考えられる。例えば、検索時に指定された単語が多く含まれるような文書を重要文書として扱うようにしてもよい。また、他の画面からユーザが重要文書を設定できるようにする方法なども考えられる。さらに、文書の参照回数や、文書の最終参照日付などを管理し、参照回数の多い文書や、最終参照日付が新しい文書を重要な文書として扱うようにしてもよい。
以上が、本発明の第4の実施形態についての説明である。
以上説明したように、本発明の第4の実施形態によれば、検索者にとって有用な文書のみに着目し、この有用な文書中に存在する頻繁に検索される構造全体を主メモリに格納して、高速な検索を実現することができる。
以上の第1の実施形態乃至第4の実施形態においては、磁気ディスク装置から、それよりも高速な記憶装置としての主メモリに部分文書をロードする場合について説明したが、本発明が適用可能な記憶手段は、これらに限定されず、速度の異なる複数種類の記憶手段に対して適用可能である。また、第1の実施形態乃至第4の実施形態においては、文書検索装置(文書検索サーバ)が、ネットワークを介してクライアントと接続され、クライアントから入力されたコマンドに基づいて検索処理を行い、検索結果をクライアントに返却する構成を示したが、文書検索装置が入力装置および出力装置を備え、入力装置を介してコマンドを入力し、出力装置を介して検索結果を出力する構成としてもよい。
また、本発明は、XML文書や電子メールなどの構造化データを対象にした文書を検索する場合であり、それらの文書の一部を参照する検索に適用した場合に、特に効果があり、利用可能なメモリ容量が限定されている制約の下でも、メモリを増設することなく、高速な検索を実現することが可能となる。
第1の実施形態における文書検索システムの全体構成を示す図である。 第1の実施形態におけるシステム制御プログラムの処理手順を示すPAD図である。 第1の実施形態における文書登録制御プログラムの処理手順を示すPAD図である。 第1の実施形態における検索制御プログラムの処理手順を示すPAD図である。 第1の実施形態における文書登録処理手順を示す図である。 第1の実施形態における検索処理手順を示す図である。 第2の実施形態における検索制御プログラムの構成を示す図である。 第2の実施形態における検索制御プログラムの処理手順を示すPAD図である。 第2の実施形態における検索処理手順を示す図である。 第3の実施形態における文書登録制御プログラムの構成を示す図である。 第3の実施形態における文書登録制御プログラムの処理手順を示すPAD図である。 第3の実施形態における文書登録処理手順を示す図である。 第4の実施形態におけるシステム制御プログラムの構成を示す図である。 第4の実施形態におけるシステム制御プログラムの処理手順を示すPAD図である。 第4の実施形態における検索制御プログラムの処理手順を示すPAD図である。 第4の実施形態における部分文書最適化制御プログラムの処理手順を示すPAD図である。 第4の実施形態における部分文書最適化制御プログラムの処理手順を示す図である。 第2の実施形態におけるGUIを示す図である。 第4の実施形態におけるGUIを示す図である。
符号の説明
100 文書検索サーバ(文書検索装置)
101 クライアント
102 磁気ディスク装置
103 ネットワーク
110 ディスプレイ
111 キーボード
112 中央演算処理装置(CPU)
113 外部記憶媒体駆動装置
114 ネットワークボード
115 バス
116 外部記憶媒体
117 主メモリ
120 システム制御プログラム
121 文書登録制御プログラム
122 検索制御プログラム
130 検索対象文書格納プログラム
131 メモリ容量算出プログラム
132 部分文書ロードプログラム
133 検索条件解析プログラム
134 メモリ検索プログラム
135 検索継続判定プログラム
136 ディスク検索プログラム
137 検索結果出力プログラム
140 部分文書格納エリア
141 ワークエリア
142 ヒット文書管理テーブル
143 ディスク検索対象文書管理テーブル
150 検索対象文書
702 構造別検索回数カウントプログラム
703 構造データ管理プログラム
704 構造データロードプログラム
705 構造別検索回数テーブル
706 構造格納場所管理テーブル
1301 文書別ヒット回数カウントプログラム
1302 文書別ヒット回数テーブルソートプログラム
1303 構造格納判断プログラム
1304 文書別ヒット回数テーブル

Claims (10)

  1. 文書の検索条件を受け付ける入力装置と、前記検索条件に基づいて文書の検索を行なう文書検索装置と、前記検索の結果を出力する出力装置とを含んで構成され、
    前記文書検索装置が、
    第1の記憶部と、第2の記憶部と、処理部とを備え、
    前記第2の記憶部は、
    前記検索の対象となる文書を格納し、
    前記第1の記憶部は、
    前記処理部によって前記第2の記憶部よりも高速にデータの読み出しが可能である文書検索システムによる文書検索方法であって、
    前記処理部は、
    前記第1の記憶部にデータを格納する際に、
    前記第1の記憶部に格納可能なデータの容量を取得し、
    前記第2の記憶部に格納された前記検索の対象となる文書の件数を取得し、
    前記取得した前記第1の記憶部に格納可能なデータの容量を、前記取得した前記検索の対象となる文書の件数で除算して、該件数の1件あたりの容量を算出し、
    前記算出した1件あたりの容量に相当するデータを、前記検索の対象となる文書のそれぞれから抽出して、部分文書として前記第1の記憶部に格納し、
    文書検索をする際に、
    前記入力装置が受け付けた前記検索条件に合致する前記検索の対象となる文書を、前記第1の記憶部に格納した前記部分文書を検索する第1の検索によって抽出し、
    前記第1の検索によって前記検索条件に合致しないと判定した場合、前記検索条件に合致する文書を、前記第2の記憶部に格納された前記検索の対象となる文書からさらに検索する第2の検索によって抽出し、
    前記第1の検索および前記第2の検索の各検索によって前記検索条件に合致すると判定した前記検索の対象となる文書を、前記検索の結果として前記出力装置に出力させる
    ことを特徴とする文書検索方法。
  2. 前記入力装置は、
    文書構造を含んだ前記検索条件を受け付け、
    前記第1の記憶部は、
    前記検索の対象となる文書内の各前記文書構造の格納場所に関する情報である文書構造格納場所情報を格納し、
    前記処理部は、
    前記文書構造格納場所情報を参照して、前記入力装置が前記検索条件として受け付けた前記文書構造が前記第1の記憶部に格納されていると判定した場合に、前記第1の検索を行ない、
    前記文書構造格納場所情報を参照して前記検索条件として指定された前記文書構造が前記第1の記憶部に格納されていないと判定した場合または前記第1の検索によって前記検索条件に合致しないと判定した場合に、前記第2の検索を行なう
    ことを特徴とする請求項1に記載の文書検索方法。
  3. 前記第1の記憶部は、
    前記文書構造の重要度に関する情報である構造別重要度情報をさらに格納し、
    前記処理部は、
    前記構造別重要度情報に基づいて、前記検索の対象となる文書からデータを抽出して、前記部分文書として前記第1の記憶部に格納し、
    前記第1の記憶部に格納した前記文書構造に関しては、前記第1の記憶部に前記文書構造が存在することを表す情報で前記文書構造格納場所情報を更新し、前記第1の記憶部に格納しなかった前記文書構造に関しては、前記第1の記憶部に前記文書構造が存在しないことを表す情報で前記文書構造格納場所情報を更新する
    ことを特徴とする請求項に記載の文書検索方法。
  4. 前記構造別重要度情報は、
    前記文書構造の検索回数を含み、
    前記処理部は、
    前記文書構造の検索回数の降順に、前記検索の対象となる文書からデータを抽出して、前記第1の記憶部に格納する
    ことを特徴とする請求項に記載の文書検索方法。
  5. 前記構造別重要度情報は、
    前記入力装置が受け付けた優先的に前記第1の記憶部に格納する前記文書構造である登録済み文書構造および前記入力装置が受け付けた前記第1の記憶部に格納しない前記文書構造である除外文書構造に関する情報のうち、少なくとも1つ以上の情報を含み、
    前記処理部は、
    前記登録済み文書構造および前記除外文書構造のうち、少なくとも1つ以上を指標として、前記検索の対象となる文書からデータを抽出して、前記第1の記憶部に格納する
    ことを特徴とする請求項または請求項に記載の文書検索方法。
  6. 前記第1の記憶部は、
    前記検索の対象となる文書のヒット回数、参照回数および最終参照日付のうち、少なくとも1つ以上を格納し、
    前記処理部は、
    前記ヒット回数、前記参照回数および前記最終参照日付のうち、少なくとも1つ以上を指標として文書の重要度を決定し、前記文書の重要度の降順に前記検索の対象となる文書からデータを抽出して前記第1の記憶部に格納し、前記重要度が高い文書は、前記第1の記憶部に格納しておく
    ことを特徴とする請求項1乃至請求項のいずれか1項に記載の文書検索方法。
  7. 請求項1乃至請求項のいずれか1項に記載の文書検索方法をコンピュータに実行させるための文書検索プログラム。
  8. 文書の検索条件を受け付ける入力装置と、前記検索条件に基づいて文書の検索を行なう文書検索装置と、前記検索の結果を出力する出力装置とを含んで構成される文書検索システムにおける文書検索装置であって、
    第1の記憶部と、第2の記憶部と、処理部とを備え、
    前記第2の記憶部は、
    前記検索の対象となる文書を格納し、
    前記第1の記憶部は、
    前記処理部によって前記第2の記憶部よりも高速にデータの読み出しが可能であり、
    前記処理部は、
    前記第1の記憶部にデータを格納する際に、
    前記第1の記憶部に格納可能なデータの容量を取得し、
    前記第2の記憶部に格納された前記検索の対象となる文書の件数を取得し、
    前記取得した前記第1の記憶部に格納可能なデータの容量を、前記取得した前記検索の対象となる文書の件数で除算して、該件数の1件あたりの容量を算出し、
    前記算出した1件あたりの容量に相当するデータを、前記検索の対象となる文書のそれぞれから抽出して、部分文書として前記第1の記憶部に格納し、
    文書検索をする際に、
    前記入力装置が受け付けた前記検索条件に合致する前記検索の対象となる文書を、前記第1の記憶部に格納した前記部分文書を検索する第1の検索によって抽出し、
    前記第1の検索によって前記検索条件に合致しないと判定した場合、前記検索条件に合致する文書を、前記第2の記憶部に格納された前記検索の対象となる文書からさらに検索する第2の検索によって抽出し、
    前記第1の検索および前記第2の検索の各検索によって前記検索条件に合致すると判定した前記検索の対象となる文書を、前記検索の結果として前記出力装置に出力させる
    ことを特徴とする文書検索装置。
  9. 前記入力装置は、
    文書構造を含んだ前記検索条件を受け付け、
    前記第1の記憶部は、
    前記検索の対象となる文書内の各前記文書構造の格納場所に関する情報である文書構造格納場所情報を格納し、
    前記処理部は、
    前記文書構造格納場所情報を参照して、前記入力装置が前記検索条件として受け付けた前記文書構造が前記第1の記憶部に格納されていると判定した場合に、前記第1の検索を行ない、
    前記文書構造格納場所情報を参照して前記検索条件として指定された前記文書構造が前記第1の記憶部に格納されていないと判定した場合または前記第1の検索によって前記検索条件に合致しないと判定した場合に、前記第2の検索を行なう
    ことを特徴とする請求項に記載の文書検索装置。
  10. 前記第1の記憶部は、
    前記文書構造の重要度に関する情報である構造別重要度情報をさらに格納し、
    前記処理部は、
    前記構造別重要度情報に基づいて、前記検索の対象となる文書からデータを抽出して、前記部分文書として前記第1の記憶部に格納し、
    前記第1の記憶部に格納した前記文書構造に関しては、前記第1の記憶部に前記文書構造が存在することを表す情報で前記文書構造格納場所情報を更新し、前記第1の記憶部に格納しなかった前記文書構造に関しては、前記第1の記憶部に前記文書構造が存在しないことを表す情報で前記文書構造格納場所情報を更新する
    ことを特徴とする請求項に記載の文書検索装置。
JP2006020460A 2006-01-30 2006-01-30 文書検索方法、文書検索プログラムおよび文書検索装置 Expired - Fee Related JP4746433B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006020460A JP4746433B2 (ja) 2006-01-30 2006-01-30 文書検索方法、文書検索プログラムおよび文書検索装置
US11/625,983 US7620614B2 (en) 2006-01-30 2007-01-23 Method, program and apparatus for document retrieval system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006020460A JP4746433B2 (ja) 2006-01-30 2006-01-30 文書検索方法、文書検索プログラムおよび文書検索装置

Publications (2)

Publication Number Publication Date
JP2007200189A JP2007200189A (ja) 2007-08-09
JP4746433B2 true JP4746433B2 (ja) 2011-08-10

Family

ID=38369932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006020460A Expired - Fee Related JP4746433B2 (ja) 2006-01-30 2006-01-30 文書検索方法、文書検索プログラムおよび文書検索装置

Country Status (2)

Country Link
US (1) US7620614B2 (ja)
JP (1) JP4746433B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266140B2 (en) * 2009-03-13 2012-09-11 International Business Machines Corporation Tagging system using internet search engine
US9898167B2 (en) * 2013-03-15 2018-02-20 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10254856A (ja) * 1997-03-07 1998-09-25 Canon Inc 文書検索装置及び文書検索方法
JP2001282842A (ja) * 2000-03-30 2001-10-12 Mitsubishi Electric Corp データ検索出力装置及びデータ検索出力方法
JP2002229985A (ja) * 2001-02-06 2002-08-16 Ricoh Co Ltd 構造化文書処理装置、構造化文書処理方法およびコンピュータに構造化文書処理を実行させるためのプログラム
JP2003178049A (ja) * 2001-09-10 2003-06-27 Fujitsu Ltd 構造化文書処理システム
JP2005234837A (ja) * 2004-02-19 2005-09-02 Fujitsu Ltd 構造化文書処理方法、構造化文書処理システム及びそのプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3813669B2 (ja) * 1995-10-27 2006-08-23 松下電器産業株式会社 端末装置及び端末装置の能力情報通知方法
JP3218007B2 (ja) * 1998-03-20 2001-10-15 富士通株式会社 インデックスの管理装置,更新方法及び管理方法並びにコンピュータ読取可能な記憶媒体
US6536577B2 (en) * 2000-03-22 2003-03-25 Kabushiki Kaisha Nippon Conlux Coin handling method and device
JP4066621B2 (ja) 2001-07-19 2008-03-26 富士通株式会社 全文検索システム及び全文検索プログラム
US20050129042A1 (en) * 2003-12-16 2005-06-16 Nokia Corporation System and associated terminal, method and computer program product for controlling memory for storage of content

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10254856A (ja) * 1997-03-07 1998-09-25 Canon Inc 文書検索装置及び文書検索方法
JP2001282842A (ja) * 2000-03-30 2001-10-12 Mitsubishi Electric Corp データ検索出力装置及びデータ検索出力方法
JP2002229985A (ja) * 2001-02-06 2002-08-16 Ricoh Co Ltd 構造化文書処理装置、構造化文書処理方法およびコンピュータに構造化文書処理を実行させるためのプログラム
JP2003178049A (ja) * 2001-09-10 2003-06-27 Fujitsu Ltd 構造化文書処理システム
JP2005234837A (ja) * 2004-02-19 2005-09-02 Fujitsu Ltd 構造化文書処理方法、構造化文書処理システム及びそのプログラム

Also Published As

Publication number Publication date
US20070192274A1 (en) 2007-08-16
JP2007200189A (ja) 2007-08-09
US7620614B2 (en) 2009-11-17

Similar Documents

Publication Publication Date Title
US7899831B2 (en) Method and system for folder recommendation in a file operation
US8375007B2 (en) Status tool to expose metadata read and write queues
US8959079B2 (en) Method and system for providing relationships in search results
JP4973503B2 (ja) ファイル検索プログラム、方法及び装置
JP4746433B2 (ja) 文書検索方法、文書検索プログラムおよび文書検索装置
US10963425B2 (en) Data placement on magnetic data storage tape
JP7293780B2 (ja) 情報処理装置、文書管理システム及びプログラム
WO2012081165A1 (ja) データベース管理装置及びデータベース管理方法
JP2008234078A (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録した記録媒体
WO2013145129A1 (ja) データベース管理方法、プログラム、および情報処理装置
US20080177777A1 (en) Database management method, program thereof and database management apparatus
WO2011099114A1 (ja) ハイブリッド型データベースシステム及びその動作方法
US9165063B2 (en) Organising and storing documents
JP2009037359A (ja) データ登録検索方法、データ登録検索プログラムおよびデータベースシステム
JP6753190B2 (ja) 文書検索装置及びプログラム
JPWO2007105512A1 (ja) 回送データ管理システム
JP5696280B1 (ja) 用語統一システム及び用語統一プログラム、並びに用語統一方法
JP5906810B2 (ja) 全文検索装置、プログラム及び記録媒体
JPH10149367A (ja) テキスト蓄積検索装置
JP5393582B2 (ja) 文書管理プログラム、文書管理方法及び文書管理装置
JP2021067962A (ja) 情報処理システム及び情報処理方法
JP2012064159A (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP2007011721A (ja) 文書検索装置
US20230018268A1 (en) System for managing database having records with varying number of fields
JP4750674B2 (ja) データ表示制御プログラム、データ表示制御方法およびデータ表示制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110318

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: 20110510

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110513

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4746433

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees