JP4930153B2 - 文書検索システム、文書番号部分列取得装置、および文書検索方法 - Google Patents

文書検索システム、文書番号部分列取得装置、および文書検索方法 Download PDF

Info

Publication number
JP4930153B2
JP4930153B2 JP2007091664A JP2007091664A JP4930153B2 JP 4930153 B2 JP4930153 B2 JP 4930153B2 JP 2007091664 A JP2007091664 A JP 2007091664A JP 2007091664 A JP2007091664 A JP 2007091664A JP 4930153 B2 JP4930153 B2 JP 4930153B2
Authority
JP
Japan
Prior art keywords
document
search
subsequence
document number
start address
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
JP2007091664A
Other languages
English (en)
Other versions
JP2008250722A (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 JP2007091664A priority Critical patent/JP4930153B2/ja
Priority to US12/054,198 priority patent/US7797324B2/en
Publication of JP2008250722A publication Critical patent/JP2008250722A/ja
Application granted granted Critical
Publication of JP4930153B2 publication Critical patent/JP4930153B2/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/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems

Landscapes

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

Description

本発明は利用者が指定したキーワードを含む文書を検索する文書検索システム、文書番号部分列取得装置、および文書検索方法に関し、特に大量の電子文書を解析して転置インデックスを用いて文書を高速に検索する文書検索システム、文書番号部分列取得装置、および文書検索方法に関する。
大量の電子文書の中から、利用者が指定したキーワード文字列(検索キーワード)を含む文書を検索する文書検索方法として、転置インデックス方式と呼ばれる手法が知られている。転置インデックス方式では、利用者が指定し得るキーワード文字列と、そのキーワード文字列を含む文書集合を示す情報とを組としたデータ構造を有する転置インデックスを事前に作成しておく。なお、キーワード文字列に対応付けられる文書集合を示す情報は、検索対象となる各文書を一意に識別する文書番号の配列(文書番号配列)によって、文書集合に含まれる各文書と関連付けられている。
転置インデックス方式の文書検索装置において、大量の文書を検索対象として、単一の検索キーワードを含む文書を検索する場合、転置インデックスから検索キーワードに対応するキーワード文字列を検索する。次に、文書検索装置は、見つけ出したキーワード文字列に対応する文書番号配列を転置インデックスから取得する。そして、文書検索装置は、取得した文書番号配列に含まれる各文書番号で示される文書の情報(たとえば、その文書のURL(Uniform Resource Locator)やタイトル等)を文書データベースから抽出し、検索結果として出力する。
ところで、近年のストレージデバイスの大容量化に伴い、膨大な量の文書をストレージデバイスに保存しておくことが可能となっている。また、情報通信技術の発達により、ネットワークを介して接続された多数のコンピュータに保存されている文書を、まとめて検索対象とすることも可能となっている。その結果、文書検索における検索対象の文書量は増加の一途を辿っている。検索対象の文書量の増加に伴い、転置インデックスのデータ量が増大する。すると、文書検索装置が転置インデックスから当該キーワード文字列を含む文書の文書番号配列を取り出す処理に多くの時間を要することとなる。
そこで、転置インデックスから文書番号配列を取り出す処理を高速化するために、文書番号配列の取り出し処理を並列化することが行われている。
図19は、従来の文書検索システムの例を示す図である。並列化された文書検索システムでは、複数の転置インデックス記憶装置93a,93b,93c,93dが設けられている。転置インデックス記憶装置93a,93b,93c,93dには、転置インデックスが格納されている。各転置インデックスには、同様のキーワード文字列が設定されており、各キーワード文字列を含む文書の文書番号が、いずれかの転置インデックスに登録されている。すなわち、膨大な数の文書の文書番号が、複数の転置インデックス記憶装置93a,93b,93c,93dに分散格納されている。
検索キーワード入力装置91に入力された検索キーワード(図19の例では「情報」)は、複数の文書番号部分列取得装置92a,92b,92c,92dそれぞれに対して渡される(ステップS91)。文書番号部分列取得装置92a,92b,92c,92dは、それぞれに対応付けられた転置インデックス記憶装置93a,93b,93c,93dから、検索キーワードに対応するキーワード文字列を検索する(ステップS92)。
さらに、文書番号部分列取得装置92a,92b,92c,92dは、それぞれに対応付けられた転置インデックス記憶装置93a,93b,93c,93dから、見つけ出したキーワード文字列に対応付けられた文書番号配列を取得する(ステップS93)。そして、文書番号部分列取得装置92a,92b,92c,92dは、取得した文書番号配列を文書番号配列集計出力装置94に渡す(ステップS94)。文書番号配列集計出力装置94は、受け取った文書番号配列を集計し、検索結果として出力する。
このようにして複数の転置インデックス記憶装置93a,93b,93c,93dに文書番号を分散格納することで、複数の文書番号部分列取得装置92a,92b,92c,92dを用いて文書番号配列の取り出しを並列で行うことができる(たとえば、非特許文献1参照)。
佐藤俊一、佐藤理、"Web検索サービス:InfoNavigator"、雑誌FUJITSU Vol.49, No.5, pp.353-357 、[online]、1998年9月、富士通株式会社、[平成19年2月15日検索]、インターネット<URL:http://img.jp.fujitsu.com/downloads/jp/jmag/vol49-5/paper04.pdf>
しかし、転置インデックスを作成する際にインデックスデータを複数に分割する方法では、以下のような問題点があった。
第1に、転置インデックスを作成する際のインデックスデータ分割数によって、検索時に使用する処理装置の数が固定されてしまうという問題がある。すなわち、インターネット上の文書検索等に用いる場合、検索対象の文書は日々変化する。そのため、文書検索システムの運用を開始し、ある程度の期間が経過すると、適切な検索処理時間を実現できる装置台数に対して、運用している文書番号部分列取得装置の過不足が生じる。検索対象の文書量に対して文書番号部分列取得装置が不足していれば、処理時間の超過(保証すべき検索処理時間を超過すること)が発生する。また、運用開始時に、処理能力に余裕を持って文書番号部分列取得装置の並列化を図ると、資源の無駄が生じ、文書検索システムの運用効率が低下してしまう。
第2に、検索対象の文書の文書番号を転置インデックスに登録する際に、処理負荷が均等化されるように分散配置する必要がある。均等に文書番号を登録する手続きは、それぞれの転置インデックスに対して、運用管理者が操作入力することで行われる。その結果、文書検索装置の運用管理者の作業負担が過大となっている。
特に、検索対象となる文書集合が人為的に集められている場合、人が理解しやすいように文書集合が分類されていることが多い。たとえば、文書の作成された日付に基づいて、作成年ごとに文書集合が分類される。このような分類単位をそのまま転置インデックスへの分類に流用すると、文書数が均等にならない。そのため、文書が均等に分けられるように、転置インデックスへの文書番号の登録を変更する操作入力が必要となる。その結果、運用管理者の作業が増大する。
本発明はこのような点に鑑みてなされたものであり、転置インデックスの文書番号配列を並列処理で取得する装置の数を容易に変更可能な文書検索システム、文書番号部分列取得装置、および文書検索方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような電子化された文書の検索を行う文書検索システムが提供される。文書検索システムには、文書DB1、転置インデックス記憶装置2、文書番号部分列探索開始アドレス表記憶装置3、文書検索管理装置5、および複数の文書番号部分列取得装置6a,6b,6c,6dが設けられている。
文書DB1は、文書番号が付与された複数の文書データを記憶する。転置インデックス記憶装置2は、複数のキーワード文字列それぞれに対応付けて、キーワード文字列を含む文書データの文書番号が、文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する。文書番号部分列探索開始アドレス表記憶装置3は、文書DB1に登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を1台当たりの担当文書数とし、文書DB1内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する文書番号の値を担当文書群頭出し文書番号とし、転置インデックスにおいてキーワード文字列それぞれに対応付けられた文書番号の配列上で担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する担当文書群頭出し文書番号の値の小さい順にキーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する。
文書検索管理装置5は、検索依頼装置4からの検索キーワードを含む文書検索依頼7aに応答して、文書DB1に登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および検索キーワードを含む文書番号部分列取得要求7bを、複数の文書番号部分列取得装置それぞれに送信する文書番号部分列取得要求手段5aと、文書番号部分列取得要求7bに応じて複数の文書番号部分列取得装置から返される文書番号部分列7eを取得し、文書番号部分列7eに含まれる文書番号を集計して文書番号配列7fを生成する文書番号配列集計手段5bと、文書番号配列集計手段5bが生成した文書番号配列7fに含まれる文書番号それぞれに対応する文書データを文書データベースから抽出し、抽出した文書データに関する文書リスト7gを作成する文書リスト作成手段5cと、文書リスト作成手段5cが作成した文書リスト7gを検索依頼装置に送信する検索結果通知手段5dと、を有する。
文書番号部分列取得装置6aは、文書番号部分列取得要求7bを文書検索管理装置5から受け取ると、文書総数を並列処理台数で除算して1台当たりの担当文書数を計算し、文書DB1内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の文書群を担当文書群7cとして決定する担当文書群決定手段6aaと、文書番号部分列探索開始アドレス表記憶装置内の文書番号部分列探索開始アドレス表を参照し、検索キーワードに対応するキーワード文字列に関連付けられた複数の部分列探索開始アドレスの中から、自装置の装置番号に応じた順番で登録された担当文書群頭出し文書番号に対応する部分列探索開始アドレスを抽出する部分列探索開始位置決定手段6abと、転置インデックス記憶装置2内の転置インデックスを参照し、部分列探索開始位置決定手段6abで抽出された部分列探索開始アドレス7dで示される位置から文書番号の配列を昇順に探索し、検索キーワードに対応するキーワード文字列に関連付けられた文書番号配列内の担当文書群7cに含まれる文書番号を取得し、取得した文書番号の集合を文書番号部分列7eとして文書検索管理装置5に送信する部分列取得手段6acと、を有する。
他の文書番号部分列取得装置6b,6c,6dの構成も文書番号部分列取得装置6aと同様である。
このような文書検索システムによれば、検索依頼装置4からの文書検索依頼7aが文書検索管理装置5に入力されると、文書番号部分列取得要求手段5aにより、文書番号部分列取得要求7bが複数の文書番号部分列取得装置6a,6b,6c,6dそれぞれに送信される。すると、文書番号部分列取得装置6aの担当文書群決定手段6aaにより、文書DB1内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の文書群が担当文書群7cとして決定される。次に、文書番号部分列取得装置6aの部分列探索開始位置決定手段6abにより、検索キーワードに対応するキーワード文字列に関連付けられた複数の部分列探索開始アドレスの中から、自装置の装置番号に応じた順番で登録された担当文書群頭出し文書番号に対応する部分列探索開始アドレスが抽出される。さらに、文書番号部分列取得装置6aの部分列取得手段6acにより、抽出された部分列探索開始アドレス7dで示される位置から文書番号の配列が昇順に探索され、検索キーワードに対応するキーワード文字列に関連付けられた文書番号配列内の担当文書群7cに含まれる文書番号が取得され、取得された文書番号の集合が文書番号部分列7eとして文書検索管理装置5に送信される。同様に、他の文書番号部分列取得装置6b,6c,6dからも、文書番号部分列が文書検索管理装置5に送信される。文書検索管理装置5の文書番号配列集計手段5bにより、複数の文書番号部分列取得装置から返される文書番号部分列が取得され、文書番号部分列に含まれる文書番号が集計され文書番号配列7fが生成される。次に、文書検索管理装置5の文書リスト作成手段5cにより、文書番号配列7fに含まれる文書番号それぞれに対応する文書データが文書DB1から抽出され、文書リスト7gが作成される。そして、文書検索管理装置5の検索結果通知手段5dにより、文書リスト7gが検索依頼装置4に送信される。
本発明では、文書番号部分列取得装置の装置番号ごとに、各キーワード文字列を探索する際の探索開始位置を示す部分列探索開始アドレスを文書番号部分列探索開始アドレス表に予め登録しておくことにより、文書番号部分列取得装置は文書番号部分列探索開始アドレス表に基づいて転置インデックス内の文書番号の探索開始位置を知り、その位置から担当文書群に含まれる文書番号の部分列を抽出することができる。その結果、並列で運用する文書番号部分列取得装置の予定台数が異なる複数の文書番号部分列探索開始アドレス表を予め用意しておけば、並列して運用される文書番号部分列取得装置の台数が予定台数の範囲内で変更された場合、使用する文書番号部分列探索開始アドレス表を切り替えるだけで済み、文書番号部分列取得装置の台数の変更を迅速に行うことができる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、発明の概要を示す図である。本発明に係る文書検索システムには、文書DB1、転置インデックス記憶装置2、文書番号部分列探索開始アドレス表記憶装置3、文書検索管理装置5、および複数の文書番号部分列取得装置6a,6b,6c,6dが設けられている。
文書DB1は、文書番号が付与された複数の文書データを記憶する。
転置インデックス記憶装置2は、転置インデックスを記憶する。転置インデックスには、複数のキーワード文字列それぞれに対応付けて、キーワード文字列を含む文書データの文書番号が、文書番号の数値に応じて昇順の配列で登録されている。
文書番号部分列探索開始アドレス表記憶装置3は、文書番号部分列探索開始アドレス表を記憶する。文書番号部分列探索開始アドレス表には、転置インデックスにおいてキーワード文字列それぞれに対応付けられた文書番号の配列上で担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する担当文書群頭出し文書番号の値の小さい順にキーワード文字列に対応付けて登録されている。ここで、担当文書群頭出し文書番号は、文書DB1内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において、対応するキーワード文字列を含む先頭の文書データに対応する文書番号の値である。1台当たりの担当文書数は、文書DB1に登録されている文書データの数を示す文書総数を、予定されている文書番号部分列取得装置の並列運用予定台数で除算して得られる値である。
文書検索管理装置5は、文書番号部分列取得要求手段5a、文書番号配列集計手段5b、文書リスト作成手段5c、および検索結果通知手段5dを有する。
文書番号部分列取得要求手段5aは、検索依頼装置4からの検索キーワードを含む文書検索依頼7aに応答して、文書DB1に登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および検索キーワードを含む文書番号部分列取得要求7bを、複数の文書番号部分列取得装置6a,6b,6c,6dそれぞれに送信する。
文書番号配列集計手段5bは、文書番号部分列取得要求7bに応じて複数の文書番号部分列取得装置から返される文書番号部分列7eを取得し、文書番号部分列7eに含まれる文書番号を集計して文書番号配列7fを生成する。
文書リスト作成手段5cは、文書番号配列集計手段5bが生成した文書番号配列7fに含まれる文書番号それぞれに対応する文書データを文書データベースから抽出し、抽出した文書データに関する文書リスト7gを作成する。
検索結果通知手段5dは、文書リスト作成手段5cが作成した文書リスト7gを検索依頼装置に送信する。
文書番号部分列取得装置6aは、担当文書群決定手段6aa、部分列探索開始位置決定手段6ab、および部分列取得手段6acを有する。
担当文書群決定手段6aaは、文書番号部分列取得要求7bを文書検索管理装置5から受け取ると、文書総数を並列処理台数で除算して1台当たりの担当文書数を計算する。さらに、担当文書群決定手段6aaは、文書DB1内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の文書群を担当文書群7cとして決定する。
部分列探索開始位置決定手段6abは、文書番号部分列探索開始アドレス表記憶装置内の文書番号部分列探索開始アドレス表を参照し、検索キーワードに対応するキーワード文字列に関連付けられた複数の部分列探索開始アドレスの中から、自装置の装置番号に応じた順番で登録された担当文書群頭出し文書番号に対応する部分列探索開始アドレスを抽出する。
部分列取得手段6acは、転置インデックス記憶装置2内の転置インデックスを参照し、部分列探索開始位置決定手段6abで抽出された部分列探索開始アドレス7dで示される位置から文書番号の配列を昇順に探索し、検索キーワードに対応するキーワード文字列に関連付けられた文書番号配列内の担当文書群7cに含まれる文書番号を取得し、取得した文書番号の集合を文書番号部分列7eとして文書検索管理装置5に送信する。
他の文書番号部分列取得装置6b,6c,6dの構成も文書番号部分列取得装置6aと同様である。
このような文書検索システムによれば、検索依頼装置4からの文書検索依頼7aが文書検索管理装置5に入力されると、文書番号部分列取得要求手段5aにより、文書番号部分列取得要求7bが複数の文書番号部分列取得装置6a,6b,6c,6dそれぞれに送信される。すると、文書番号部分列取得装置6aの担当文書群決定手段6aaにより、文書DB1内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の文書群が担当文書群7cとして決定される。次に、文書番号部分列取得装置6aの部分列探索開始位置決定手段6abにより、検索キーワードに対応するキーワード文字列に関連付けられた複数の部分列探索開始アドレスの中から、自装置の装置番号に応じた順番で登録された担当文書群頭出し文書番号に対応する部分列探索開始アドレス7dが抽出される。さらに、文書番号部分列取得装置6aの部分列取得手段6acにより、抽出された部分列探索開始アドレス7dで示される位置から文書番号の配列が昇順に探索され、検索キーワードに対応するキーワード文字列に関連付けられた文書番号配列内の担当文書群7cに含まれる文書番号が取得され、取得された文書番号の集合が文書番号部分列7eとして文書検索管理装置5に送信される。同様に、他の文書番号部分列取得装置6b,6c,6dからも、文書番号部分列が文書検索管理装置5に送信される。
文書検索管理装置5の文書番号配列集計手段5bにより、複数の文書番号部分列取得装置から返される文書番号部分列が取得され、文書番号部分列に含まれる文書番号が集計され文書番号配列7fが生成される。次に、文書検索管理装置5の文書リスト作成手段5cにより、文書番号配列7fに含まれる文書番号それぞれに対応する文書データが文書DB1から抽出され、文書リスト7gが作成される。そして、文書検索管理装置5の検索結果通知手段5dにより、文書リスト7gが検索依頼装置4に送信される。
これにより、並列で運用する文書番号部分列取得装置の予定台数が異なる複数の文書番号部分列探索開始アドレス表を予め用意しておけば、並列して運用される文書番号部分列取得装置の台数が予定台数の範囲内で変更された場合、使用する文書番号部分列探索開始アドレス表を切り替えるだけで済む。その結果、文書番号部分列取得装置の台数の変更を迅速に行うことができる。
ところで、最近は、インターネットを介して文書検索を行うことが一般的になっている。このように、インターネット経由の文書検索サービスを行った場合、24時間不停止で運用することが多い。その場合、サービスを継続したまま、システムを増強できることが望まれる。そこで、本発明をインターネット経由の文書検索システムに適用し、システムの増強を容易にした実施の形態について以下に詳細に説明する。
[第1の実施の形態]
図2は、第1の実施の形態の文書検索システム構成例を示す図である。第1の実施の形態では、インターネット10にWebサーバ300が接続されている。Webサーバ300は、インターネット10を介して、複数のクライアント21,22に対して情報提供を行う。なお、このWebサーバ300は、図1に示す検索依頼装置4に相当する。
Webサーバ300には、文書検索管理装置100が接続されている。そして、Webサーバ300は、クライアント21,22から検索条件の入力が行われ、文書の検索指示が出されると、文書検索依頼を文書検索管理装置100に対して送信する。
文書検索管理装置100は文書データベース(DB)110を有しており、Webサーバ300からの文書検索依頼が入力されると、その文書検索依頼に応じて文書検索を行う。具体的には、文書検索管理装置100は、文書番号部分列取得装置210,220,230,240を介して、検索条件に含まれる検索キーワードに応じた文書番号配列を取得する。そして、文書検索管理装置100は、取得した文書番号配列に含まれる文書の情報を文書DB110から抽出し、検索結果としてWebサーバ300に送信する。
文書検索管理装置100には、複数の文書番号部分列取得装置210,220,230,240が接続されている。また、文書番号部分列取得装置210,220,230,240には、文書番号部分列探索開始アドレス表記憶装置410と転置インデックス記憶装置420とが接続されている。
文書番号部分列探索開始アドレス表記憶装置410には、文書番号部分列探索開始アドレス表が記憶されている。文書番号部分列探索開始アドレス表には、各文書番号部分列取得装置210,220,230,240が転置インデックス記憶装置420内の転置インデックスから文書番号を取得する際の部分列探索開始アドレスが、キーワード文字列ごとに設定されている。この部分列探索開始アドレスは、転置インデックスにおいてキーワード文字列それぞれに対応付けられた文書番号の配列上で、担当文書群頭出し文書番号が記録される位置を示している。
担当文書群頭出し文書番号は、複数の文書番号部分列取得装置それぞれに担当文書群を割り当てる際の各担当文書群において、対応するキーワード文字列を含む先頭の文書データの文書番号である。なお、担当文書群頭出し文書番号は、少なくとも想定される文書番号部分列取得装置の並列運用予定台数以上の数が定義される。並列運用予定台数ごとに個別の文書番号部分列探索開始アドレス表が作成されている場合(同時運用台数が変われば常に使用する文書番号部分列探索開始アドレス表も変更される場合)には、並列運用予定台数と同数の担当文書群頭出し文書番号が定義されていればよい。
転置インデックス記憶装置420には、転置インデックスが格納されている。転置インデックスには、キーワード文字列ごとに、そのキーワード文字列を含む文書の文書番号の配列(文書番号配列)が登録されている。
文書番号部分列取得装置210,220,230,240は、文書検索管理装置100からの文書番号部分列取得要求に応じて、文書番号配列の部分列を転置インデックス記憶装置420から取得する。なお、文書番号部分列取得装置210,220,230,240は、それぞれ異なる装置番号が予め付与されている。装置番号は、0から始まる整数である。図2の例では、文書番号部分列取得装置210の装置番号は「0」、文書番号部分列取得装置220の装置番号は「1」、文書番号部分列取得装置230の装置番号は「2」、文書番号部分列取得装置240の装置番号は「3」である。この装置番号に基づいて、各文書番号部分列取得装置210,220,230,240が検索の対象とすべき文書群が決定される。
文書番号部分列取得装置210,220,230,240は、文書番号部分列探索開始アドレス表記憶装置410に格納された文書番号部分列探索開始アドレス表を参照し、自己の装置番号に基づいて、自身が取得すべき文書番号部分列の探索開始アドレスを取得する。そして、各文書番号部分列取得装置210,220,230,240が、独自の探索開始アドレスから所定の範囲の文書番号部分列を転置インデックスから取得する。
このような文書検索システムにおいて、クライアント21,22から検索条件を含む検索要求がWebサーバ300に対して送信されると、その検索条件が文書検索管理装置100に渡される。検索条件には、1以上の検索キーワードが含まれる。そこで、文書検索管理装置100は、検索キーワードに応じた文書番号部分列取得要求を、各文書番号部分列取得装置210,220,230,240に対して送信する。
各文書番号部分列取得装置210,220,230,240は、文書番号部分列探索開始アドレス表記憶装置410に格納された文書番号部分列探索開始アドレス表に基づいて、自己の探索開始アドレスを認識する。そして、各文書番号部分列取得装置210,220,230,240は、転置インデックス記憶装置420内の転置インデックス内の探索開始アドレスから文書番号配列の部分列を取得する。文書番号部分列取得装置210,220,230,240が取得した文書番号部分列は、文書検索管理装置100に渡される。
文書検索管理装置100は、文書番号部分列取得装置210,220,230,240から取得した文書番号部分列を集計し、転置インデックス記憶装置420に記憶されている転置インデックスに登録されていた文書番号配列を再構成する。次に、文書検索管理装置100は、文書番号配列に含まれる一部またはすべての文書番号に対応する文書の情報を文書DB110から取得する。そして、文書検索管理装置100は、取得した文書データを検索結果としてWebサーバ300に渡す。
Webサーバ300は、文書検索管理装置100から受け取った検索結果をWebページ用の文書データ(たとえば、HTML(HyperText Markup Language)文書)内に配置して、検索要求を出力したクライアントに対して送信する。
このようにして、クライアント21,22を利用するユーザに対して、文書DB110に格納された文書の文書検索サービスが提供される。
図3は、第1の実施の形態に用いる文書検索管理装置のハードウェア構成例を示す図である。文書検索管理装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス108を介してCPU101に送信する。
通信インタフェース106は、ネットワーク81に接続されている。通信インタフェース106は、ネットワーク81を介して、Webサーバ300との間でデータの送受信を行う。
通信インタフェース107は、ネットワーク82に接続されている。通信インタフェース107は、ネットワーク82を介して、文書番号部分列取得装置210,220,230,240との間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、文書検索管理装置100のハードウェア構成を示したが、文書番号部分列取得装置210,220,230,240、Webサーバ300、クライアント21,22も同様のハードウェア構成で実現することができる。
図4は、第1の実施の形態における文書検索機能を示すブロック図である。図4に示すように、文書検索管理装置100は、検索条件解析部121、文書番号部分列取得要求部122、文書番号配列集計部123、文書リスト作成部124、検索結果通知部125、および転置インデックス作成部126を有している。
検索条件解析部121は、Webサーバ300から検索条件を含む文書検索依頼を受け取ると、その文書検索依頼に含まれる検索条件を解析する。具体的には、検索条件解析部121は、検索条件から検索キーワードを抽出する。そして、検索条件解析部121は、検索キーワードを文書番号部分列取得要求部122に渡す。なお、検索条件に複数の検索キーワードと論理演算子が含まれていた場合、検索条件解析部121は、検索条件から抽出した複数のキーワードおよび論理演算子の組を文書番号部分列取得要求部122に渡す。論理演算子は、複数の検索キーワードの論理和(OR)なのか論理積(AND)なのかを示す情報である。
文書番号部分列取得要求部122は、検索条件解析部121から渡された検索キーワードを含む文書番号部分列取得要求を、各文書番号部分列取得装置210,220,230,240に送信する。なお、文書番号部分列取得要求部122は、検索条件解析部121から複数の検索キーワードと論理演算子との組が渡された場合、複数の検索キーワードと論理演算子とを含む文書番号部分列取得要求を、各文書番号部分列取得装置210,220,230,240に送信する。
文書番号配列集計部123は、文書番号部分列取得要求に応じて各文書番号部分列取得装置210,220,230,240から送られた文書番号配列の部分列を取得する。次に、文書番号配列集計部123は、取得した文書番号部分列を集計し、検索キーワードに応じた文書番号配列を生成する。そして、文書番号配列集計部123は、生成した文書番号配列を文書リスト作成部124に渡す。
文書リスト作成部124は、文書番号配列集計部123から渡された検索キーワードの文書番号配列を取得する。そして、文書リスト作成部124は、文書番号配列に含まれる文書番号に対応する文書データを、文書DB110から取得する。
文書リスト作成部124は、取得した文書データに基づいて、文書リストを作成する。文書リストには、たとえば、文書のタイトル、文書のURL、検索キーワードを含む文の文字列などが含まれる。そして、文書リスト作成部124は、作成した文書リストを検索結果通知部125に渡す。
検索結果通知部125は、文書リスト作成部124から取得した文書リストをWebサーバ300に対して送信する。
転置インデックス作成部126は、運用管理者からの操作入力等により転置インデックスの作成指示を受け取ると、文書DB110から文書データを取得し、転置インデックスと文書番号部分列探索開始アドレス表とを作成する。転置インデックス作成部126は、作成した転置インデックスを転置インデックス記憶装置420に格納し、作成した文書番号部分列探索開始アドレス表を文書番号部分列探索開始アドレス表記憶装置410に格納する。
文書番号部分列取得装置210は、担当文書群決定部211、部分列探索開始位置決定部212、文書番号部分列探索開始アドレス表キャッシュ領域213、部分列取得部214、および論理演算部215を有している。
担当文書群決定部211は、文書検索管理装置100から検索キーワードを含む文書番号部分列取得要求を受け取ると、その文書番号部分列取得要求から、文書番号最大値と、運用している文書番号部分列取得装置の台数とを抽出する。そして、担当文書群決定部211は、文書番号部分列取得装置210自身の装置番号に基づいて、検索対象とすべき担当文書群を決定する。担当文書群は、部分列開始文書番号と部分列終了文書番号とで示される。部分列開始文書番号から部分列終了文書番号までの文書番号に対応する文書が、検索対象となる。担当文書群決定部211は、決定した検索対象文書群を部分列取得部214に通知する。
部分列探索開始位置決定部212は、文書検索管理装置100から検索キーワードを含む文書番号部分列取得要求を受け取ると、文書番号部分列探索開始アドレス表記憶装置410内の文書番号部分列探索開始アドレス表と、文書番号部分列探索開始アドレス表キャッシュ領域213に格納されている文書番号部分列探索開始アドレス表とを比較し、最新の文書番号部分列探索開始アドレス表が文書番号部分列探索開始アドレス表キャッシュ領域213に格納されているか否かを判断する。文書番号部分列探索開始アドレス表キャッシュ領域213に格納されている文書番号部分列探索開始アドレス表が最新でなければ、部分列探索開始位置決定部212は、文書番号部分列探索開始アドレス表記憶装置410から文書番号部分列探索開始アドレス表を取得し、文書番号部分列探索開始アドレス表キャッシュ領域213に格納する。
さらに、部分列探索開始位置決定部212は、文書番号部分列探索開始アドレス表記憶装置410を参照し、文書番号部分列取得装置210が取得すべき部分列探索開始アドレスを取得する。具体的には、文書番号部分列取得装置210の装置番号が予め部分列探索開始位置決定部212内に保持されている。部分列探索開始位置決定部212は、文書番号部分列探索開始アドレス表記憶装置410に格納されている文書番号部分列探索開始アドレス表の検索キーワードに対応するキーワード文字列を検索する。次に、部分列探索開始位置決定部212は、検出されたキーワード文字列に対応付けられた部分列探索開始アドレスのリストの中から、文書番号部分列取得装置210の装置番号に対応する部分列探索開始アドレスを取得する。そして、部分列探索開始位置決定部212は、取得した部分列探索開始アドレスを部分列取得部214に渡す。
文書番号部分列探索開始アドレス表キャッシュ領域213は、文書番号部分列探索開始アドレス表を記憶するための記憶領域である。たとえば、文書番号部分列取得装置210のRAM内の一部の記憶領域が、文書番号部分列探索開始アドレス表キャッシュ領域213として使用される。
部分列取得部214は、転置インデックス記憶装置420内の転置インデックスから、所定数の文書番号(文書番号部分列)を取得する。なお、部分列取得部214が取得する文書番号部分列の先頭アドレスは、部分列探索開始位置決定部212から渡された部分列探索開始アドレスで示される。部分列取得部214は、取得した文書番号のうち、担当文書群に属する文書番号のみを抽出し、それらの文書番号を論理演算部215に渡す。
論理演算部215は、文書検索管理装置100から送られた文書番号部分列取得要求に論理演算子が含まれていた場合、その論理演算子を取得する。そして、論理演算部215は、文書番号部分列取得要求に含まれていた複数の検索キーワードそれぞれに対する文書番号部分列を部分列取得部214から受け取ると、論理演算子に従って、取得した文書番号部分列を統合する。
具体的には、論理演算部215は、文書番号部分列取得要求に含まれていた論理演算子の内容を判断する。論理演算子が論理和(OR)であれば、論理演算部215は、複数の検索キーワードそれぞれの文書番号部分列の少なくとも一方に含まれる文書番号の配列を作成し、文書番号部分列取得要求に応じた文書番号部分列とする。また、論理演算子が論理積(AND)であれば、論理演算部215は、複数の検索キーワードそれぞれの文書番号配列の双方に含まれる文書番号の配列を作成し、文書番号部分列取得要求に応じた文書番号部分列とする。
論理演算部215は、文書番号部分列取得要求に応じた文書番号部分列を文書検索管理装置100に送信する。なお、文書番号部分列取得要求に検索キーワードが1つだけ含まれており論理演算子が含まれていない場合、論理演算部215は、その検索キーワードに応じて部分列取得部214で取得された文書番号部分列を、文書番号部分列取得要求に応じた文書番号部分列として文書検索管理装置100に送信する。
なお、図4には、文書番号部分列取得装置210の機能のみを示しているが、他の文書番号部分列取得装置220,230,240も同様の機能を有している。
また、検索条件に複数の検索キーワードが含まれていた場合の論理演算は、文書検索管理装置100内で行うことも可能である。たとえば、検索条件解析部121で抽出された論理演算子を文書リスト作成部124が取得する。そして、文書リスト作成部124は、検索キーワードそれぞれに応じて取得された文書番号配列を論理演算子に応じて統合する。統合方法は、論理演算部215の処理と同様である。そして、文書リスト作成部124は、統合後の文書番号配列に応じた文書データを、文書DB110から取得する。
このようにして論理演算を文書検索管理装置100で行うことも可能であるが、本実施の形態のように文書番号部分列取得装置210,220,230,240で論理演算を行った方が効率的である。すなわち、文書番号部分列取得装置210,220,230,240で論理演算を行い、統合された文書番号部分列を各文書番号部分列取得装置210,220,230,240から文書検索管理装置100に送信することで、送信するデータ量を減らすことができる。
次に、文書検索システムで利用する各データのデータ構造について説明する。
図5は、文書DBのデータ構造例を示す図である。文書DB110には、複数の文書データ111,112,113,・・・が格納されている。文書データ111,112,113,・・・には、その文書の内容を示す文字列が含まれている。また、各文書データ111,112,113,・・・には、文書番号が付与されている。
なお、文書データ111,112,113,・・・がインターネット10を介して収集したコンテンツであれば、収集元のURLが文書データ111,112,113,・・・に含められる。また、文書データ111,112,113,・・・にタイトルが付いている場合、タイトルを示す文字列に対して、所定のタグなどによって、タイトルであることを示す情報が付与される。
図6は、文書番号部分列探索開始アドレス表記憶装置のデータ構造例を示す図である。文書番号部分列探索開始アドレス表記憶装置410には、運用される文書番号部分列取得装置の台数に応じた複数の文書番号部分列探索開始アドレス表411、412,413が格納されている。たとえば、文書番号部分列探索開始アドレス表411は文書番号部分列取得装置が2台の場合に利用され、文書番号部分列探索開始アドレス表412は文書番号部分列取得装置が3台の場合に利用され、文書番号部分列探索開始アドレス表413は文書番号部分列取得装置が4台の場合に利用される。
各文書番号部分列探索開始アドレス表411、412,413には、キーワード文字列と部分列探索開始アドレスとの欄が設けられている。キーワード文字列の欄には、検索キーワードとして指定可能な文字列が設定されている。部分列探索開始アドレスの欄には、キーワード文字列に対応付けて、装置番号ごとの部分列探索開始アドレスが設定されている。部分列探索アドレスは、探索開始位置の文書番号が、転置インデックスに登録された文書番号配列における何番目に相当するのかを示す数値(アドレス)である。
図7は、転置インデックス記憶装置の内部構造およびデータ構造例を示す図である。転置インデックス記憶装置420は、複数のHDD420a,420b,420c,420d,・・・を有している。そして、転置インデックス記憶装置420は、これらのHDD420a,420b,420c,420d,・・・によってRAID(Redundant Arrays of Inexpensive Disks)システムを構成している。
転置インデックス記憶装置420は少なくともストライピングを行い、データを複数のHDD420a,420b,420c,420d,・・・に分散格納する。たとえば、RAID5などの技術が利用される。そして、このようなRAIDシステム構成の転置インデックス記憶装置420に、転置インデックス421が格納されている。
転置インデックス421には、キーワード文字列それぞれに関連付けて文書番号配列が登録されている。各キーワード文字列の文書番号配列に含まれる文書番号には、転置インデックス421の上位に登録されたキーワード文字列から優先的にアドレスが割り振られている。また、キーワード文字列の文書番号配列内では、左から右に向かってアドレスが順に割り当てられている。
なお、図7の例では、文書番号が「0」から「11」までの12件の文書しか登録されていないが、実際には、数百万件、あるいはそれ以上の文書が文書DB110に登録される。そして、各文書に含まれるキーワード文字列に基づいて、膨大な量の文書番号配列が、転置インデックスに登録される。
ただし、文書検索処理の説明としては、少ない文書数の例で説明した方が分かりやすいため、以後の説明においても図7の例を適宜参照することとする。
図8は、文書番号配列とアドレスの関係を示す図である。図8に示すように、転置インデックス421の最上位に登録されているキーワード文字列「研究」の文書番号配列に含まれる文書番号から順番に、0から始まるアドレスが付与されている。
すなわち、キーワード文字列「研究」を含む文書の文書番号が7つ登録されているため、各文書番号には「0」から「6」までのアドレスが付与されている。キーワード文字列「研究」の次には「検索」が登録されている。従って、キーワード文字列「検索」を含む文書の文書番号に対して、「7」から順にアドレスが付与されている。
以上のような構成に基づいて、文書検索処理が行われる。
図9は、文書検索処理の手順を示すシーケンス図である。以下、図9に示す処理をステップ番号に沿って説明する。なお、図9では、文書番号部分列取得装置210の処理を代表として示しているが、他の文書番号部分列取得装置220,230,240の処理も、文書番号部分列取得装置210の処理と同様である。
[ステップS11]Webサーバ300は、クライアント21,22から検索要求を受信する。
[ステップS12]すると、Webサーバ300は、検索要求に示される検索条件による文書検索を文書検索管理装置100に依頼する。
[ステップS13]文書検索管理装置100では、検索条件解析部121が文書検索依頼を取得する。
[ステップS14]検索条件解析部121は、文書検索依頼に含まれる検索条件を解析し、1つ以上の検索キーワードを抽出する。また、検索条件解析部121は、検索条件に論理演算子が含まれている場合、その論理演算子も抽出する。検索条件解析部121は、抽出した検索キーワードや論理演算子を、文書番号部分列取得要求部122に渡す。
[ステップS15]文書番号部分列取得要求部122は、検索条件解析部121から渡された検索キーワードを含む文書番号部分列取得要求を、4台の文書番号部分列取得装置210,220,230,240それぞれに対して送信する。この際、文書番号部分列取得要求部122は、文書DB110を参照し、最後に登録された文書の文書番号(文書番号最大値)を取得する。そして、文書番号部分列取得要求部122は、文書番号最大値と、運用している文書番号部分列取得装置の台数(並列処理台数)とを文書番号部分列取得要求に付与し、各文書番号部分列取得装置210,220,230,240に伝える。
なお、本実施の形態では、文書番号が0から開始されている。そのため、文書番号最大値に1を加算した値が、文書DB110に登録されている文書データの総数であり、文書番号最大値から文書総数を容易に導き出すことができる。すなわち、技術的には、文書総数と文書番号最大値とは等価である。
[ステップS16]文書番号部分列取得装置210の担当文書群決定部211が、文書検索管理装置100から文書番号部分列取得要求を受信する。
[ステップS17]担当文書群決定部211は、取得すべき文書番号部分列の、担当文書番号の範囲を決定する。具体的には、担当文書群決定部211は、最後に登録された文書の文書番号(文書番号最大値)に1を加えた数を、並列処理台数で割る。これにより、1台当たりの担当文書数が求められる。
次に、担当文書群決定部211は、文書番号部分列取得装置210自身の装置番号を1台当たりの担当文書数に乗算した結果を、担当文書群の部分列開始文書番号とする。計算式で表すと以下の通りである。
・部分列開始文書番号
=文書番号部分列取得装置1台当たりの担当文書数
×着目している文書番号部分列取得装置の装置番号;
さらに、担当文書群決定部211は、文書番号部分列取得装置210自身の装置番号に1を加算した値に1台当たりの担当文書数を乗算し、乗算結果から1を減算した値を、担当する文書群の部分列終了文書番号とする。計算式で表すと以下の通りである。
・部分列終了文書番号
=文書番号部分列取得装置1台当たりの担当文書数
×(装置番号+1)−1;
これにより、文書番号部分列取得装置210が担当すべき文書群の部分列開始文書番号と部分列終了文書番号とが決定される。本実施の形態では4台の文書番号部分列取得装置210,220,230,240で運用しているため、図7の例の様に文書番号最大値が「11」の場合、1台当たりの担当文書数は「3」(12÷4)となる。
また、文書番号部分列取得装置210の装置番号は「0」である。文書番号部分列取得装置210の部分列開始文書番号は「0」(3×0)である。また、文書番号部分列取得装置210の部分列終了文書番号は「2」(3×1−1)である。すなわち、文書番号部分列取得装置210が担当する文書群は、文書番号「0」から「2」までの文書となる。
同様の計算が、他の文書番号部分列取得装置220,230,240それぞれで行われる。その結果、文書番号部分列取得装置220(装置番号「1」)が担当する文書群は、文書番号「3」から「5」までの文書となる。文書番号部分列取得装置230(装置番号「2」)が担当する文書群は、文書番号「6」から「8」までの文書となる。文書番号部分列取得装置240(装置番号「3」)が担当する文書群は、文書番号「9」から「11」までの文書となる。
担当文書群決定部211は、担当文書群指定情報(部分列開始文書番号と部分列終了文書番号)を部分列取得部214に渡す。
[ステップS18]部分列探索開始位置決定部212は、文書番号部分列探索開始アドレス表記憶装置410から部分列探索開始アドレスを取得する。
具体的には、部分列探索開始位置決定部212は、まず、文書番号部分列探索開始アドレス表キャッシュ領域213に格納されている文書番号部分列探索開始アドレス表が、並列処理台数に対応する最新のものかどうかを判断する。それには、まず、部分列探索開始位置決定部212は、文書番号部分列探索開始アドレス表キャッシュ領域213に格納されている文書番号部分列探索開始アドレス表が、文書検索管理装置100から指定された並列処理台数に対応しているか否かを判断する。たとえば、部分列探索開始位置決定部212は、部分列開始探索アドレスの欄に設定されている装置番号の種類が並列処理台数と一致すれば、並列処理台数に対応していると判断できる。
部分列探索開始位置決定部212は、並列処理台数に対応した文書番号部分列探索開始アドレス表が文書番号部分列探索開始アドレス表キャッシュ領域213に格納されていた場合、次に、文書番号部分列探索開始アドレス表記憶装置410に格納されている文書番号部分列探索開始アドレス表(本実施の形態では文書番号部分列探索開始アドレス表413)の更新日時を取得する(更新日時は、OS内のファイルシステムから取得できる)。そして、部分列探索開始位置決定部212は、取得した更新日時が、文書番号部分列探索開始アドレス表キャッシュ領域213に格納されている文書番号部分列探索開始アドレス表の更新日時と一致するか否かを判断する。
更新日時が一致すれば、文書番号部分列探索開始アドレス表キャッシュ領域213内の文書番号部分列探索開始アドレス表が最新であると判断できる。更新日時が一致しない場合、文書番号部分列探索開始アドレス表キャッシュ領域213内の文書番号部分列探索開始アドレス表が最新でないと判断される。
文書番号部分列探索開始アドレス表キャッシュ領域213内の文書番号部分列探索開始アドレス表が、並列処理台数に対応した最新のものであれば、そのまま使用することができる。文書番号部分列探索開始アドレス表キャッシュ領域213内の文書番号部分列探索開始アドレス表が並列処理台数に対応していないか、あるいは最新で無い場合、部分列探索開始位置決定部212は、文書番号部分列探索開始アドレス表記憶装置410から並列処理台数に対応した文書番号部分列探索開始アドレス表を取得し、文書番号部分列探索開始アドレス表キャッシュ領域213に格納する。その際、文書番号部分列探索開始アドレス表413の更新日時も文書番号部分列探索開始アドレス表キャッシュ領域213に格納される。
その後、部分列探索開始位置決定部212は、文書番号部分列探索開始アドレス表キャッシュ領域213内の文書番号部分列探索開始アドレス表を参照し、検索キーワードに対応するキーワード文字列に関連付けられた部分列探索開始アドレスの中から、文書番号部分列取得装置210の装置番号「0」に関する部分列探索開始アドレスを取得する。たとえば、検索キーワードが「情報」の場合、文書番号部分列取得装置210の部分列探索開始アドレスは「12」となる(図6参照)。取得した部分列探索開始アドレスは、部分列取得部214に渡される。
なお、図6の例では、文書番号部分列探索開始アドレス表411,412,413において、各部分列探索アドレスに装置番号が対応付けられているが、文書番号部分列探索開始アドレス表411,412,413内に装置番号は設定されていなくてもよい。その場合、各文書番号部分列取得装置は、キーワード文字列に対応付けられた部分列探索開始アドレスの配列の中から、自己の装置番号に応じた順番の部分列探索開始アドレスを取得する。図6の例では、部分列探索開始アドレスの配列における左側が先頭であり、装置番号「0」の文書番号部分列取得装置が、順番としては1番である。
[ステップS19]部分列取得部214は、転置インデックス記憶装置420から文書番号配列の部分列を取得する。具体的には、部分列取得部214は、転置インデックス記憶装置420内の転置インデックス421を参照し、部分列探索開始アドレスから順番(昇順)に文書番号を抽出する。そして、部分列取得部214は、担当文書群に含まれる文書番号のみを文書番号部分列として取得する。
抽出した文書番号が、部分列終了文書番号より大きくなったとき、部分列取得部214は文書番号の抽出処理を終了する。
[ステップS20]論理演算部215は、文書番号部分列取得要求に複数の検索キーワードと論理演算子とが含まれていた場合、各検索キーワードに対応する文書番号部分列を、部分列取得部214から受け取る。そして、論理演算部215は、取得した文書番号部分列を、論理演算子に基づいて統合する。
すなわち、論理演算部215は、論理演算子が論理和(OR)であれば、複数の検索キーワードそれぞれの文書番号部分列の少なくとも一方に含まれる文書番号の配列を作成し、文書番号部分列取得要求に応じた文書番号部分列とする。また、論理演算部215は、論理演算子が論理積(AND)であれば、複数の検索キーワードそれぞれの文書番号配列の双方に含まれる文書番号の配列を作成し、文書番号部分列取得要求に応じた文書番号部分列とする。さらに、論理演算部215は、文書番号部分列取得要求に検索キーワードが1つだけ含まれており論理演算子が含まれていない場合、その検索キーワードに応じて部分列取得部214で取得された文書番号部分列を、文書番号部分列取得要求に応じた文書番号部分列とする。
[ステップS21]論理演算部215は、文書番号部分列取得要求に応じた文書番号部分列を文書検索管理装置100に送信する。
[ステップS22]文書検索管理装置100の文書番号配列集計部123は、各文書番号部分列取得装置210,220,230,240から送信された文書番号部分列を集計し、1つの纏まった文書番号配列を生成する。文書番号配列集計部123は、生成した文書番号配列を文書リスト作成部124に渡す。
[ステップS23]文書リスト作成部124は、文書番号配列に含まれる一部またはすべての文書番号に合致する文書データを、文書DB110から取得する。そして、文書リスト作成部124は、取得した文書データに基づいて文書リストを作成し、検索結果通知部125に渡す。
[ステップS24]検索結果通知部125は、文書リスト作成部124から受け取った文書リストを、文書検索依頼に対する検索結果としてWebサーバ300に送信する。
[ステップS25]Webサーバ300は、文書検索管理装置100から送られた検索結果を受信する。
[ステップS26]Webサーバ300は、検索結果に含まれる文書リストを、検索結果表示用の文書内に挿入し、検索指示を出したクライアント21,22に対して送信する。
このようにして、転置インデックス記憶装置420から検索キーワードに応じた文書番号配列を取得し、文書検索結果を生成することができる。
図10は、文書番号配列の取得状況を示す図である。この図には、検索キーワード「情報」に対応する文書番号配列を取得する例を示している。
文書番号部分列探索開始アドレス表記憶装置410のキーワード文字列「情報」のレコードを参照すると、文書番号部分列取得装置210の部分列探索開始アドレスは、「12」である。そこで、文書番号部分列取得装置210は、転置インデックス記憶装置420においてキーワード文字列「情報」に対応付けられた文書番号配列のアドレス「12」から文書番号の抽出を行う。このとき、文書番号部分列取得装置210の担当文書群は、文書番号「0」から「2」までである。すると、文書番号部分列取得装置210は、文書番号「0」、「1」を文書番号部分列31として取得する。その次の、文書番号「3」は担当文書群に含まれないため、文書番号部分列取得装置210は文書番号「3」を破棄すると共に、文書番号の抽出処理を終了する。その結果、文書番号部分列取得装置210から文書検索管理装置100へは、文書番号「0」、「1」が文書番号部分列31として送信される。
同様の処理が、他の文書番号部分列取得装置220,230,240でも行われる。その結果、文書番号部分列取得装置220から文書検索管理装置100へ、文書番号「3」、「4」が文書番号部分列32として送信される。文書番号部分列取得装置230から文書検索管理装置100へ、文書番号「6」、「7」、「8」が文書番号部分列33として送信される。文書番号部分列取得装置240から文書検索管理装置100へ、文書番号「9」、「10」、「11」が文書番号部分列34として送信される。
その結果、文書検索管理装置100において、検索キーワードに対応付けて転置インデックスに登録されていた全ての文書番号配列を取得することができる。しかも、各文書番号部分列取得装置210,220,230,240は、それぞれ部分列探索開始アドレスから担当文書群に含まれる文書番号の探索を開始し、文書番号配列の一部分のみを取得する。そのため、短時間で文書番号部分列を取得することができる。
なお、転置インデックス記憶装置420は、ストライピングを行うRAIDシステムであるため、複数の文書番号部分列取得装置210,220,230,240が同時に転置インデックス記憶装置420にアクセスしたとしても、実際のアクセス対象となるHDDは分散される。従って、文書番号部分列取得装置210,220,230,240が同時に転置インデックス記憶装置420にアクセスしても、文書番号部分列を高速に読み出すことができる。
次に、転置インデックス作成処理について説明する。
図11は、転置インデックス作成処理の手順を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。なお、以下の処理は、運用管理者から転置インデックス作成を指示する操作入力があったときに実行される。
[ステップS31]転置インデックス作成部126は、文書DB110から転置インデックスに情報を反映していない文書データを1件読み込む。たとえば、文書DB110から転置インデックスに情報を反映していない文書データについては、文書DB110内の特定のフォルダに入れておく。そして、転置インデックス作成部126は、文書DB110内の特定のフォルダから文書データを1件読み込みむと共に、読み込んだ文書データを、その文書データを文書DB110内の通常のフォルダ(転置インデックスに情報を反映した文書データを格納するフォルダ)に移動する。
[ステップS32]転置インデックス作成部126は、読み込んだ文書データの内容を解析し、キーワード文字列を抽出する。具体的には、転置インデックス作成部126は、文書データに対して形態素解析を行い、複数の形態素に分割する。そして、転置インデックス作成部126は、生成した形態素のうち所定の品詞(たとえば、名詞、動名詞など)をキーワード文字列とする。また、転置インデックス作成部126は、連続する複数の形態素(所定の品詞)を結合してキーワード文字列を生成する。
[ステップS33]転置インデックス作成部126は、転置インデックス記憶装置420にアクセスし、抽出したキーワード文字列に対応する転置インデックス内の文書番号配列に文書番号を追加する。
[ステップS34]転置インデックス作成部126は、全ての文書に対して処理を実行したか否かを判断する。全ての文書に対して処理を実行した場合、処理がステップS35に進められる。未処理の文書がある場合、処理がステップS31に進められる。
[ステップS35]転置インデックス作成部126は、検索に使用する文書番号部分列取得装置の台数の候補を決定する。台数の候補は、たとえば、運用管理者から予め転置インデックス作成部126に対して指定されている。転置インデックス作成部126は、運用管理者から指定された台数の候補を示す複数の数字をRAM102などに記憶する。本実施の形態では、文書番号部分列取得装置の台数の候補(並列運用予定台数候補)として、2台、3台、および4台が指定されているものとする。
[ステップS36]転置インデックス作成部126は、文書番号部分列取得装置の並列運用予定台数候補から、未処理の並列運用予定台数候補を1つ選択する。
[ステップS37]転置インデックス作成部126は、文書番号部分列取得装置1台当たりの担当文書数を決定する。具体的には、転置インデックス作成部126は、最後に登録された文書データの文書番号に1を加えた数(文書データの総数)を、並列運用予定台数候補の数で割る。除算によって得られた値(小数点以下は繰り上がりとする)が、文書番号部分列取得装置1台当たりの担当文書数として決定される。
この計算を式で表すと以下の通りである。
・文書番号部分列取得装置1台当たりの担当文書数
=ceil((最後に登録された文書の文書番号+1)
/並列運用予定台数候補);
なお、文書番号および装置番号は0から数える。また、関数ceil()は、引数に指定した値と等しいか大きい最小の整数を返す。
[ステップS38]転置インデックス作成部126は、並列運用予定台数候補に応じた数の装置番号を定義し、転置インデックスに登録された各キーワード文字列について、装置番号ごとに部分列探索開始位置を求める。部分列探索開始位置は、転置インデックス内のアドレスで示される。この処理の詳細は後述する。
[ステップS39]転置インデックス作成部126は、文書番号部分列探索開始アドレス表記憶装置410内の選択された並列運用予定台数候補に応じた文書番号部分列探索開始アドレス表にアクセスし、各キーワード文字列の装置番号ごとの部分列探索開始アドレスを更新する。
[ステップS40]転置インデックス作成部126は、ステップS35で決定した全ての並列運用予定台数候補について処理を実行したか否かを判断する。全ての並列運用予定台数候補に対して処理が行われていれば、転置インデックス作成処理が終了する。未処理の並列運用予定台数候補があれば、処理がステップS36に進められる。
以上のような手順で転置インデックスと、並列運用予定台数候補ごとの文書番号部分列探索開始アドレス表とが作成される。
次に、部分列探索開始位置決定処理の手順を詳細に説明する。
図12は、部分列探索開始位置決定処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS51]転置インデックス作成部126は、選択されている並列運用予定台数候補に応じた数の装置番号の中から、未処理の装置番号の1つに着目する。
[ステップS52]転置インデックス作成部126は、部分列開始文書番号を算出する。具体的には、転置インデックス作成部126は、文書番号部分列取得装置1台当たりの担当文書数に着目している装置番号を乗算した値を、部分列開始文書番号とする。数式で表すと以下の通りである。
・部分列開始文書番号
=文書番号部分列取得装置当たりの担当文書数
×着目している文書番号部分列取得装置の装置番号;
[ステップS53]転置インデックス作成部126は、転置インデックス記憶装置420内の転置インデックス421に登録されたキーワード文字列のうち、着目している装置番号について部分列探索開始アドレスを算出していないキーワード文字列の1つに着目する。
[ステップS54]転置インデックス作成部126は、着目したキーワード文字列に対する部分列探索開始アドレスを算出する。具体的には、転置インデックス作成部126は、転置インデックス記憶装置420内の転置インデックス421を参照し、着目しているキーワード文字列に対応する文書番号配列の中で、部分列開始文書番号以上の文書番号のうち最小の文書番号のアドレスを部分列探索開始アドレスとする。
なお、着目しているキーワード文字列に対応する文書番号配列の中に、部分列開始文書番号と等しいか大きい文書番号が存在しない場合、転置インデックス作成部126は、着目しているキーワード文字列に対応する文書番号配列の中で最も大きい文書番号のアドレスを、部分列探索開始アドレスとする。
[ステップS55]転置インデックス作成部126は、転置インデックス記憶装置420内の転置インデックス421に登録されたキーワード文字列の中に未処理のキーワード文字列があるか否かを判断する。未処理のキーワード文字列があれば、処理がステップS53に進められる。全てのキーワード文字列に対して処理が終了していれば、処理がステップS56に進められる。
[ステップS56]転置インデックス作成部126は、選択されている並列運用予定台数候補に応じた数の装置番号の中に、未処理の装置番号があるか否かを判断する。未処理の装置番号があれば処理がステップS53に進められる。未処理の装置番号がなければ、処理が終了する。
なお、図12に示したフローチャートでは、先に装置番号を特定し、その装置番号に対応する文書番号探索開始アドレスをキーワード文字列ごとに求めているが、逆に、先にキーワード文字列を特定し、そのキーワード文字列に関する文書番号ごとの文書番号探索開始アドレスを求めるようにしてもよい。キーワード文字列を先に特定した場合、転置インデックス421内の当該キーワード文字列に対応する文書番号配列を全てRAM内に読み込んでおけば、以後、転置インデックス421にアクセスせずに文書番号ごとの文書番号探索開始アドレスを求めることができる。そのため、処理が効率的である。
図11,図12に示した処理によって、図7に示した転置インデックス421と図6に示す文書番号部分列探索開始アドレス表411,412,413とが作成される。この例では、文書番号部分列取得装置が2台、3台、4台それぞれの場合に応じた文書番号部分列探索開始アドレス表411,412,413が作成されている。その結果、文書番号部分列取得装置の台数が1台から4台の範囲内であれば、台数の変動があっても文書検索サービスを続行することができる。なお、台数が1台の場合には、文書番号部分列探索開始アドレス表を用いることなく、1台の文書番号部分列取得装置が文書番号配列全体を処理すればよい。
たとえば、図2の例では、4台の文書番号部分列取得装置210,220,230,240が動作している。従って、運用中の文書番号部分列取得装置210,220,230,240は、4台用の文書番号部分列探索開始アドレス表413を使用して文書番号配列の部分列を取得する。
このとき文書検索サービスの運用中に単位時間当たりの検索要求数が減少し、3台の文書番号部分列取得装置で処理可能な処理量になったものとする。その場合、文書番号部分列取得装置の1台をシステムから除外し、他のサービスに使用することができる。たとえば、文書番号部分列取得装置240の運用を停止すると、運用中の文書番号部分列取得装置の台数が3台となる。文書検索管理装置100は、各文書番号部分列取得装置210,220,230,240の動作状況をチェックしており、文書番号部分列取得装置240の運用が停止したことを検出すると、文書番号部分列取得装置の運用台数を3台に変更する。その後、Webサーバ300から文書検索管理装置100に文書検索依頼が出されると、文書検索管理装置100は、運用している文書番号部分列取得装置の台数を3台として、各文書番号部分列取得装置210,220,230へ文書番号部分列取得要求を送信する。文書番号部分列取得要求を受け取った各文書番号部分列取得装置210,220,230は、3台用の文書番号部分列探索開始アドレス表412を取得し、文書番号配列の部分列を取得する。その結果、文書番号部分列取得装置240の運用が停止したにも拘わらず、検索キーワードに対応する転置インデックス内の文書番号配列を漏れなく取得することができる。
以上のように、本実施の形態によれば、運用中であっても文書番号部分列取得装置の台数を動的に変更可能である。すなわち、文書番号部分列取得装置の台数が変更された場合、文書検索管理装置から文書番号部分列取得装置に渡す並列処理台数の値を、変更すればよい。それにより、文書番号部分列取得装置では、現在の運用台数に応じた文書番号部分列探索開始アドレス表に基づいて部分列探索開始アドレスや担当文書群を判断し、適切な文書番号部分列を取得する。
その結果、検索対象の文書量に対して文書番号部分列取得装置が不足していれば、容易に文書番号部分列取得装置を追加できる。また、処理能力に余裕があれば、文書番号部分列取得装置の台数を減らし、余った装置を別のサービスに利用することもできる。
なお、検索対象文書量の増大による文書番号部分列取得装置の追加の場合、それほど緊急の事態では無いこともある。その場合、文書番号部分列取得装置の追加を必要と判断したときに、追加後の文書番号部分列取得装置の台数に合わせた文書番号部分列探索開始アドレス表を作成し、文書番号部分列探索開始アドレス表記憶装置410に格納してもよい。その場合であっても、システムの運用を継続しながら文書番号部分列取得装置の追加が可能であることには変わりない。
また、転置インデックス421は、1つのストレージシステム(論理的に1つのディスクとして扱われるRAIDシステム)内に格納されているため、従来のように、複数のディスクに文書番号配列を分散させるための手間は発生しない。その結果、運用管理者の管理負荷を軽減させることができる。しかも、ストライピングを行うRAIDシステム内のHDDの数を、出来るだけ多くすれば、複数の文書番号部分列取得装置が同時に転置インデックス記憶装置420にアクセスしても、実際のアクセス対象となるHDDは分散される。その結果、転置インデックス記憶装置420への同時アクセスによる処理の遅延が極めて少なくて済む。
[第2の実施の形態]
次に、第2の実施の形態について説明する。第2の実施の形態は、文書番号部分列取得装置の並列運用予定台数候補を、連続の整数ではなく、不連続の値とすることで、生成すべき文書番号部分列探索開始アドレス表を削減したものである。第2の実施の形態では、第1の実施の形態を基本形として、部分列探索開始アドレスの計算処理を以下のとおり変更する。
まず、転置インデックスの作成処理では、使用を想定する文書番号部分列取得装置の台数を連続した整数の連続した範囲とせず、たとえば2の倍数や2のべき乗の値のみとする。一方、検索処理に関しては、想定されている2の倍数や2のべき乗の台数の文書番号部分列取得装置を使用し、それ以外の台数では処理を行わないものとする。
使用を想定する文書番号部分列取得装置の数を、2の倍数である2または4とした場合の、文書番号部分列探索開始アドレス表を図13に示す。
図13は、並列運用予定台数候補を2の倍数としたときの文書番号部分列探索開始アドレス表の例を示す図である。図13に示すように、文書番号部分列取得装置を2台で運用するとき用の文書番号部分列探索開始アドレス表415と、4台で運用するとき用の文書番号部分列探索開始アドレス表416とが文書番号部分列探索開始アドレス表記憶装置410に格納されている。
この例では、使用を想定する文書番号部分列取得装置の構成パターン数を減らすことによって、文書番号部分列探索開始アドレス表の作成に掛かる処理時間、および文書番号部分列探索開始アドレス表記憶装置が必要とする記録領域を削減することができる。
[第3の実施の形態]
第3の実施の形態は、複数の並列運用予定台数候補用の文書番号部分列探索開始アドレス表を、1つに統合したものである。第3の実施の形態では、第1の実施の形態を基本形として、部分列探索開始アドレスの計算処理を以下のとおり変更する。
まず、転置インデックスの作成処理では、使用する文書番号部分列取得装置の数として、複数の数の公倍数を設定する。たとえば12であれば、2,3,4,6の公倍数である。一方、検索処理においては、この公倍数の約数に当たる2,3,4または6台の文書番号部分列取得装置を使用し、それ以外の台数では処理を行わないものとする。
使用する文書番号部分列取得装置の数を、2および4の倍数である4と想定した場合の、部分列探索開始アドレスの計算例を図14に示す。
図14は、並列処理台数が2台と4台との場合に使用可能な文書番号部分列探索開始アドレス表の例を示す図である。図14に示すように、文書番号部分列取得装置の台数が2台の場合と4台の場合とで使用可能な文書番号部分列探索開始アドレス表417が文書番号部分列探索開始アドレス表記憶装置410に格納される。
この文書番号部分列探索開始アドレス表417を作成する場合、転置インデックス作成部126は、まず文書番号部分列取得装置の台数が公倍数(図14の例では4台)の場合用の文書番号部分列検索開始アドレス表を作成する。そして、転置インデックス作成部126は、公倍数の約数に当たる台数(図14の例では2台)での運用における装置番号のリストを追加する。
装置番号を追加する際には、転置インデックス作成部126は、公倍数/並列運用予定台数を計算し、倍数を求める。そして、転置インデックス作成部126は、約数に当たる台数で運用するときの装置番号に倍数を乗算し、公倍数に当たる台数で運用するときの装置番号のうち、乗算結果と同じ番号の装置番号を選択する。そして、選択した装置番号と同じ欄に、約数に当たる台数で運用するときの装置番号を設定する。
たとえば、図14における2台運用の装置番号を登録する場合を考える。まず、公倍数が4であり約数が2であるため、倍数(4÷2)は「2」となる。そこで、文書番号部分列取得装置を2台で運用する際の装置番号:1であれば、4台運用時の装置番号:2(1(装置番号)×2(倍数))と同じ欄に、その装置番号を登録する。
このように、複数の数の公倍数に当たる台数に応じた文書番号部分列探索開始アドレス表を作成しておけば、その公倍数の約数に当たる台数で文書番号部分列取得装置を運用する際に、同じ文書番号部分列探索開始アドレス表を使用することができる。これにより、文書番号部分列探索開始アドレス表の作成に掛かる処理時間、および文書番号部分列探索開始アドレス表記憶装置が必要とする記録領域が削減される。
なお、上記の例では、運用台数に応じた装置番号のリストを文書番号部分列探索開始アドレス表417に登録しているが、文書番号のリストが文書番号部分列探索開始アドレス表417に含まれていなくてもよい。その場合、部分列探索開始位置決定部212が文書番号部分列探索開始アドレス表417を参照する際に、自己の装置番号に倍数(公倍数/並列運用予定台数)を乗算する。そして、部分列探索開始位置決定部212は、乗算された値を装置番号としたとき、その装置番号に対応する順番の部分列探索開始アドレスを文書番号部分列探索開始アドレス表417から取得する。
[第4の実施の形態]
第4の実施の形態は、文書番号部分列取得装置の運用台数が何台であっても、1つの文書番号部分列探索開始アドレス表で対応できるようにしたものである。すなわち、第1の実施の形態では、計算する文書番号部分列探索開始アドレス表の数を、使用を想定する文書番号部分列取得装置の台数と等しくしている。一方、第4の実施の形態では、文書番号部分列探索開始アドレス表を1つだけ作成し、文書番号部分列取得装置の台数を特に想定しない。
そのため、本実施の形態では、文書番号部分列探索開始アドレス表に正確な(担当文書群頭出し文書番号と一致する)部分列探索開始アドレスを設定するのではなく、所定の間隔の文書番号(所定間隔頭出し文書番号とする)に近い文書番号(所定間隔頭出し文書番号以下の値)のアドレスを文書番号部分列探索開始アドレス表に設定しておく。そして、部分列探索開始アドレスを判断する際には、部分列探索開始文書番号以下の文書番号のうち値が最大の文書番号に対応付けて文書番号部分列探索開始アドレス表に登録されているアドレスを、探索開始アドレスとする。
具体的には以下の処理を行う。なお、システムの構成要素は第1の実施の形態と同じであるため、図4に示した各要素を用いて第4の実施の形態における処理(第1の実施の形態との相違点)を説明する。
図15は、第4の実施の形態における転置インデックス作成処理の手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。なお、ステップS61〜S64については、図11に示した第1の実施の形態の処理のステップS31〜S34と同じであるため説明を省略する。
[ステップS65]転置インデックス作成部126は、転置インデックス421に登録されている未処理のキーワード文字列の1つに着目する。
[ステップS66]転置インデックス作成部126は、部分列探索開始文書番号の集合(部分列探索開始文書番号集合)を作成する。具体的には、転置インデックス作成部126は、着目しているキーワード文字列に対応する文書番号配列の中で、予め指定された文書間隔(たとえば、1000)を示す数値の倍数(0以上の整数)それぞれに対して、その値以下で最大の文書番号の集合を作成する。
たとえば、文書間隔をk(kは1以上の整数)とした場合、転置インデックス作成部126は、所定間隔頭出し文書番号N=k×n(nは0以上の整数)とする。そして、転置インデックス作成部126は、nを0から1ずつカウントアップさせながら、以下の処理を行う。
転置インデックス421内の着目しているキーワード文字列に対応する文書番号配列を参照し、所定間隔頭出し文書番号以下の文書番号を取得する。そして、転置インデックス作成部126は、取得した文書番号のうち値が最も大きい文書番号を、部分列探索開始文書番号集合に加える。このとき、所定間隔頭出し文書番号以下の文書番号が存在しなければ、転置インデックス作成部126は、その所定間隔頭出し文書番号に対応する文書番号は無いと判断する。また、転置インデックス作成部126は、nをカウントアップするごとに所定間隔頭出し文書番号Nが文書番号の最大値より大きいか否かを判断する。所定間隔頭出し文書番号Nが最後に登録された文書の文書番号より大きくなった場合、転置インデックス作成部126は、着目しているキーワード文字列に関する部分列探索開始文書番号集合の作成を終了する。
[ステップS67]転置インデックス作成部126は、部分列探索開始文書集合に含まれる文書番号ごとに部分列探索開始アドレスを決定し、部分列探索開始アドレス集合を作成する。具体的には、転置インデックス作成部126は、部分列探索開始文書番号集合に含まれる各文書番号の転置インデックス記憶装置420上のアドレスを取得し、部分列探索開始アドレスとする。そして、転置インデックス作成部126は、部分列探索開始アドレスの集合を、部分列探索開始アドレス集合とする。
[ステップS68]転置インデックス作成部126は、対応関係にある部分列探索開始アドレスと文書番号との組を、文書番号部分列探索開始アドレス表記憶装置410内の文書番号部分列探索開始アドレス表において着目しているキーワード文字列に関連付けて登録する。
[ステップS69]転置インデックス作成部126は、転置インデックス記憶装置420内の転置インデックス421に登録されているすべてのキーワード文字列に対して処理を実行したか否かを判断する。すべてのキーワード文字列に対して処理が終了していれば、転置インデックス作成処理が終了する。未処理のキーワード文字列があれば、処理がステップS65に進められる。
このようにして、キーワード文字列ごとに、部分列探索開始アドレスと文書番号を組とした文書番号部分列探索開始アドレス表が作成される。
図16は、第4の実施の形態における文書番号部分列探索開始アドレス表の例を示す図である。この例は、文書間隔を2とした場合である。文書番号部分列探索開始アドレス表418には、キーワード文字列ごとに、複数の部分列探索開始アドレスが登録されている。各部分列探索開始アドレスには、該当するアドレスに格納されている文書番号(図中、括弧書きで示す)が設定されている。
文書検索時には、担当文書群決定部211は、第1の実施の形態と同様に、部分列開始文書番号と部分列終了文書番号とを求める。すなわち、文書番号部分列取得要求を受け取った担当文書群決定部211は、最後に登録された文書の文書番号に1を加えた数を、使用する文書番号部分列取得装置の台数で割ることで、文書番号部分列取得装置1台当たりの担当文書数を求める。そして、担当文書群決定部211は、部分列開始文書番号と部分列終了文書番号とを計算する。すなわち、以下の計算を行う。
・部分列開始文書番号
=文書番号部分列取得装置1台当たりの担当文書数
×着目している文書番号部分列取得装置の装置番号;
・部分列終了文書番号
=文書番号部分列取得装置1台当たりの担当文書数
×(装置番号+1)−1;
その後、担当文書群決定部211は、検索キーワードと部分列開始文書番号とを部分列探索開始位置決定部212に渡す。また、担当文書群決定部211は、検索キーワード、部分列開始文書番号、および部分列終了文書番号を部分列取得部214に渡す。
部分列探索開始位置決定部212は、文書番号部分列探索開始アドレス表418にアクセスし、検索キーワードに対応するキーワード文字列に関連付けられた複数の部分列探索開始アドレスそれぞれに付与された文書番号を参照する。そして、部分列探索開始位置決定部212は、自己の部分列開始文書番号以下で最も大きい文書番号を抽出する。さらに、部分列探索開始位置決定部212は、抽出した文書番号に対応する部分列探索開始アドレスを部分列取得部214に渡す。部分列取得部214は、転置インデックス記録装置420内の転置インデックス421にアクセスし、部分列探索開始アドレスから順次、部分列探索開始文書番号から部分列探索終了文書番号までの文書番号を抽出する。
このようにして、任意の数の文書番号部分列取得装置を使用することができる。その結果、利用者や運用管理者が求める処理性能に対して、必要かつ十分な計算機資源を割り当てることが可能である。
[第5の実施の形態]
第5の実施の形態は、文書DB110に追加された文書データが所定の量を超えるまで、転置インデックスの更新をしても、文書番号部分列探索開始アドレス表の更新をせずに済むようにしたものである。すなわち、図11に示した転置インデックス作成処理において、ステップS31〜S34の処理を行ったとしても、ステップS35以降の処理を必ずしも毎回行わないようにする。換言すると、転置インデックスを更新した際に、追加登録した文書数が少なければ、部分列探索開始アドレスの再計算処理を見送るというものである。
転置インデックスに文書が追加登録されると、最後に登録された文書の文書番号は増加する。その場合、検索処理において、各々の文書番号部分列取得装置に対して計算される部分列開始文書番号は増加するか、もしくは変わらないままである。このとき、部分列探索開始アドレスが古い値のままであったとしても、文書番号部分列に含まれる文書番号がそのアドレスよりも前に存在しないことは保証される。そこで、部分列開始文書番号よりも小さい文書番号を文書番号部分列取得装置が空読み(取得した文書番号が担当文書群に含まれず、その文書番号は破棄される)すれば、部分列探索開始アドレスが古い値のままであっても、正しい結果を得ることができる。
なお、この実施の形態では、部分列探索開始アドレスを、転置インデックス記憶装置における絶対アドレスではなく、各々のキーワード文字列に対応する文書番号配列における相対アドレスとすることによって、文書番号配列を記憶装置上で移動する場合にも、文書番号部分列探索開始アドレス表の再作成をある程度の期間先延ばしすることができる。
具体的には、以下のような処理を行う。なお、システムの構成要素は第1の実施の形態と同じであるため、図4に示した各要素を用いて第5の実施の形態における処理(第1の実施の形態との相違点)を説明する。
図17は、第5の実施の形態における転置インデックス更新処理の手順を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。なお、ステップS71〜S74,S77〜S79,S81,S82については、図11に示した第1の実施の形態の処理のステップS31〜S38,S40と同じであるため説明を省略する。
[ステップS75]転置インデックス作成部126は、ステップS71〜S74の処理によって文書番号の追加登録処理を行った文書数(追加文書数)を、追加文書総数に加算する。なお、追加文書総数は、転置インデックス作成部126が有するパラメータであり、転置インデックス作成処理が終了してもRAM102内の記憶領域に保持される。また、追加文書総数はHDD103にも記録される。追加文書総数をHDD103に記録しておくことで、運用中にシステム障害があっても追加文書総数を復旧である。
[ステップS76]転置インデックス作成部126は、文書番号部分列探索開始アドレス表を更新せずにステップS71〜S74の処理によって文書番号の追加登録処理を行った文書の総数(追加文書総数)が所定の文書数(文書番号部分列探索開始アドレス表更新閾値文書数)以上となったか否かを判断する。なお、文書番号部分列探索開始アドレス表更新閾値文書数は、運用管理者によって予め転置インデックス作成部126に設定され、RAM102などの記憶領域内に記憶されている。追加文書数が文書番号部分列探索開始アドレス表更新閾値文書数以上の場合、処理がステップS77に進められる。追加文書数が文書番号部分列探索開始アドレス表更新閾値文書数未満の場合、処理が終了する。
ステップS77〜S79では、図11に示した第1の実施の形態におけるステップS35〜S37の処理と同様の処理が行われる。その結果、文書番号部分列取得装置の台数候補に応じた文書番号部分列取得装置1台当たりの担当文書数が求められる。その後、処理がステップS80に進められる。
[ステップS80]転置インデックス作成部126は、部分列探索開始アドレスを決定する。ただし、この際の部分列探索開始アドレスは、各キーワード文字列に関連付けられた文書番号配列の先頭のアドレスからの相対値である。具体的な処理手順は、図12に示した第1の実施の形態の部分列探索位置決定処理とほぼ同じである。ただし、ステップS54の処理が以下のように変更される。
[ステップS54]転置インデックス作成部126は、着目したキーワード文字列に対する部分列探索開始アドレスを算出する。具体的には、転置インデックス作成部126は、転置インデックス記憶装置420内の転置インデックス421を参照し、着目しているキーワード文字列に対応する文書番号配列の中で、部分列開始文書番号以上の文書番号のうち最小の文書番号のアドレスを取得する。さらに、転置インデックス作成部126は、取得したアドレスの値から、着目しているキーワード文字列に対応する文書番号配列の最初の文書番号のアドレスの値を減算する。そして、転置インデックス作成部126は、減算結果を部分列探索開始アドレスとする。
なお、着目しているキーワード文字列に対応する文書番号配列の中に、部分列開始文書番号と等しいか大きい文書番号が存在しない場合、転置インデックス作成部126は、着目しているキーワード文字列に対応する文書番号配列の中で最も大きい文書番号のアドレスの値から、着目しているキーワード文字列に対応する文書番号配列の最初の文書番号のアドレスの値を減算する。そして、転置インデックス作成部126は、減算結果を部分列探索開始アドレスとする。
部分列探索開始アドレスが決定されると、ステップS81において文書番号部分列探索開始アドレス表記憶装置410内の文書番号部分列探索開始アドレス表において部分列探索開始アドレスが更新される。
全ての並列運用予定台数候補に関してステップS78〜S82の処理が完了したら、処理がステップS83に進められる。
[ステップS83]転置インデックス作成部126は、追加文書総数を0に設定する。その後処理が終了する。
図18は、相対アドレスにより部分列探索開始アドレスを指定した文書番号部分列探索開始アドレス表の例を示す図である。図18には、文書番号部分列取得装置の台数が2台のときに使用する文書番号部分列探索開始アドレス表411a、3台のときに使用する文書番号部分列探索開始アドレス表412a、および4台のときに使用する文書番号部分列探索開始アドレス表413aが示されている。
このように、部分列探索開始アドレスの計算処理を省略することによって、転置インデックスの更新処理に掛かる処理時間を削減することができる。しかも、部分列探索開始アドレスを該当する文書番号が設定された文書番号配列の先頭からの相対値で示したことにより、部分列取得時の空読みの量(部分列探索開始アドレスから順に読み出した文書番号が、部分列探索開始文書番号より小さいと判断される文書番号の数)を減らすことができる。
すなわち、転置インデックスに多数の文書の文書番号を追加登録すると、転置インデックス記憶装置420内のアドレスにおいて後方に位置する文書番号は、文書番号部分列探索開始アドレス表作成時よりもアドレスの値が大きくずれてしまう。そのため、第1の実施の形態のように部分列探索開始アドレスが絶対アドレスで示されていた場合、キーワード文字列の順番で後方に登録されているキーワード文字列の文書番号配列を取得する際には、部分列探索開始アドレスから文書番号を抽出し部分列探索開始文書番号に達するまでに多数の空読みが発生する。
一方、第5の実施の形態では部分列探索開始アドレスが相対アドレスで示されているため、アドレスのずれがキーワード文字列に関連付けられた文書番号配列内でのみ発生し、上位に登録されたキーワード文字列で発生したアドレスのずれが累積されずに済む。その結果、空読みの量が少なくなり、文書番号部分列の読み出し効率が向上する。
さらに、部分列探索開始アドレスを相対アドレスにしておけば、転置インデックス内で文書番号配列を再配置した場合でも、文書番号部分列探索開始アドレス表を更新せずに済む。たとえば、転置インデックス内でのキーワード文字列の順番が入れ替わっても、文書番号部分列探索開始アドレス表を更新する必要はない。また、転置インデックス内に新たなキーワード文字列が追加された場合、そのキーワード文字列に対応する部分列探索開始アドレスを文書番号部分列探索開始アドレス表に追加すればよい。
なお、第5の実施の形態では、追加文書総数が所定値以上となったときに文書番号部分列探索開始アドレス表の更新を行っているが、前回の文書番号部分列探索開始アドレス表の更新時刻からの経過時間が所定値以上となっている場合に文書番号部分列探索開始アドレス表の更新を行ってもよい。
[第6の実施の形態]
第6の実施の形態は、第5の実施の形態における文書番号部分列探索開始アドレス表作成処理(図17のステップS77〜S82)を、転置インデックスの更新処理(図17のステップS71〜S74)と独立で実行するものである。たとえば、文書検索システムの処理負荷が低いときに、古い値のままとなっている部分列探索開始アドレスを再計算するというものである。処理負荷が低いときとしては、たとえば、文書検索管理装置100のCPUの負荷を検出し、所定値以下になったときがある。また深夜には処理負荷が低い(文書検索依頼が少ない)ことが予め分かっている場合、予め指定された深夜の時間帯に文書番号部分列探索開始アドレス表作成処理を実行することもできる。
このように、部分列探索開始アドレスの再計算処理を独立で行うことによって、より柔軟性の高いシステム運用が可能となる。
なお、上記の各実施の形態では、転置インデックス作成部126を文書検索管理装置100の一機能として説明しているが、必ずしも文書検索管理装置100内にある必要はない。文書DB110、文書番号部分列探索開始アドレス表記憶装置410、および転置インデックス記憶装置420にアクセス可能なコンピュータであれば、転置インデックス作成部126の機能を実装し、上記の実施の形態通りに動作させることができる。たとえば、文書番号部分列取得装置210が転置インデックス作成部126の機能を有していてもよく、図示していない管理サーバが転置インデックス作成部126の機能を有していてもよい。
ところで、上記各実施の形態を用いれば、文書番号部分列取得装置の増減が容易に短時間で行うことができるが、文書番号部分列取得装置の台数を何台にすべきかについては、運用管理者が任意に決定することができる。その際、文書検索システムの運用状況を監視し、その結果に基づいて適当な文書番号部分列取得装置の台数を決定することもできる。
たとえば、文書検索管理装置100において、文書検索処理を行う際に、同時に処理した検索要求の数や、各々の検索要求に対して要した処理時間などの情報を検索実行ログとして記録しておく。運用管理者は、記録された検索実行ログの内容を分析することによって、運用する文書番号部分列取得装置の台数を最適な並列度で決定する。
また、上記の処理機能は、コンピュータによって実現することができる。その場合、文書検索管理装置100や文書番号部分列取得装置210が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 電子化された文書の検索を行う文書検索システムにおいて、
文書番号が付与された複数の文書データを記憶する文書データベースと、
複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を1台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、
検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信する文書番号部分列取得要求手段と、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して文書番号配列を生成する文書番号配列集計手段と、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成する文書リスト作成手段と、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する検索結果通知手段と、を具備する前記文書検索管理装置と、
前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を並列処理台数で除算して1台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書番号部分列として前記文書検索管理装置に送信する部分列取得手段と、を具備する複数の前記文書番号部分列取得装置と、
を有することを特徴とする文書検索システム。
(付記2) 前記文書番号部分列探索開始アドレス表記憶装置には、前記文書番号部分列取得装置の前記並列運用予定台数が異なる複数の前記文書番号部分列探索開始アドレス表が記憶されており、
前記部分列探索開始位置決定手段は、前記文書番号部分列取得要求で示された前記並列処理台数に対応する前記並列運用予定台数の前記文書番号部分列探索開始アドレス表を参照して、前記部分列探索開始アドレスの抽出を行うことを特徴とする付記1記載の文書検索システム。
(付記3) 前記文書番号部分列探索開始アドレス表記憶装置には、前記文書番号部分列取得装置の前記並列運用予定台数を複数の数値の公倍数とした前記文書番号部分列探索開始アドレス表が記憶され、前記文書番号部分列探索開始アドレス表の前記部分列探索開始アドレスは、前記公倍数の約数それぞれの台数の前記文書番号部分列取得装置で運用したときの装置番号と対応付けられており、
前記部分列探索開始位置決定手段は、前記並列処理台数で前記文書番号部分列取得装置を運用したときの前記装置番号の中から自己の前記装置番号を検出し、検出した前記装置番号に対応する前記部分列探索開始アドレスを抽出することを特徴とする付記1記載の文書検索システム。
(付記4) 前記文書番号部分列探索開始アドレス表記憶装置に記憶された前記文書番号部分列探索開始アドレス表には、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で、前記担当文書群頭出し文書番号が記録される位置を前記文書番号の配列における先頭からのアドレスの差分で表した相対アドレスが、前記部分列探索開始アドレスとして登録されており、
前記部分列取得手段は、前記転置インデックス記憶装置内の前記検索キーワードに対応する前記キーワード文字列に関連付けられた文書番号の配列における先頭アドレスに、前記部分列探索開始アドレスで示される前記相対アドレスを加算した位置から、アドレスが大きくなる方向へ向かって前記文書番号の探索を行う、
ことを特徴とする付記1記載の文書検索システム。
(付記5) 前記文書検索管理装置は、転置インデックス作成指示が入力されると、前記文書データベースを参照して前記転置インデックスを更新すると共に、更新後の前記転置インデックスを参照して前記文書番号部分列探索開始アドレス表を更新する転置インデックス更新手段をさらに有することを特徴とする付記1記載の文書検索システム。
(付記6) 前記文書検索管理装置は、転置インデックス作成指示が入力されると、前記文書データベースを参照して前記転置インデックスを更新し、前記転置インデックスに新たに情報の反映が行われた前記文書データの総数が所定数以上となった場合、更新後の前記転置インデックスを参照して前記文書番号部分列探索開始アドレス表を更新する転置インデックス更新手段をさらに有することを特徴とする付記1記載の文書検索システム。
(付記7) 電子化された文書の検索を行う文書検索システムにおいて、
文書番号が付与された複数の文書データを記憶する文書データベースと、
複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書番号の最小値から所定間隔の数値に対応する前記文書番号の値を所定間隔頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で、前記所定間隔頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、前記キーワード文字列に対応付けて登録されており、前記部分列探索開始アドレスに対して、前記部分列探索開始アドレスが指し示す位置を含む前記文書番号の配列において前記部分列探索開始アドレスに対応する前記所定間隔頭出し文書番号以下の文書番号のうち最も大きな値が付与された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、
検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書データベースに登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信する文書番号部分列取得要求手段と、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して文書番号配列を生成する文書番号配列集計手段と、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成する文書リスト作成手段と、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する検索結果通知手段と、を具備する前記文書検索管理装置と、
前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して1台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、前記担当文書群の先頭の文書データの文書番号以下の前記文書番号が付与された前記所定間隔頭出し文書番号のうち最も大きな値の前記文書番号が付与された前記所定間隔頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書番号部分列として前記文書検索管理装置に送信する部分列取得手段と、を具備する複数の前記文書番号部分列取得装置と、
を有することを特徴とする文書検索システム。
(付記8) 複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む文書データの文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を1台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、を用い、
文書検索管理装置からの文書番号部分列取得要求に応じて、前記転置インデックス記憶装置から前記文書番号の配列の一部を取得するための文書番号部分列取得装置において、
前記文書データの数を示す文書総数、前記文書番号部分列取得装置の運用数を示す並列処理台数、および検索キーワードを含む前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して1台当たりの担当文書数を計算し、文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、
前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、
前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書検索管理装置に送信する部分列取得手段と、
を有することを特徴とする文書番号部分列取得装置。
(付記9) 電子化された文書の検索を行うための文書検索方法において、
文書番号が付与された複数の文書データを記憶する文書データベースと、
複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を1台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、が予め用意されており、
文書検索管理装置の文書番号部分列取得要求手段が、検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書データベースに登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信し、
前記文書番号部分列取得装置それぞれの担当文書群決定手段が、前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して1台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定し、
前記文書番号部分列取得装置それぞれの部分列探索開始位置決定手段が、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出し、
前記文書番号部分列取得装置それぞれの部分列取得手段が、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を文書番号部分列として前記文書検索管理装置に送信し、
前記文書検索管理装置の文書番号配列集計手段が、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される前記文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して前記文書番号配列を生成し、
前記文書検索管理装置の文書リスト作成手段が、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成し、
前記文書検索管理装置の検索結果通知手段が、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する、
ことを特徴とする文書検索方法。
発明の概要を示す図である。 第1の実施の形態の文書検索システム構成例を示す図である。 第1の実施の形態に用いる文書検索管理装置のハードウェア構成例を示す図である。 第1の実施の形態における文書検索機能を示すブロック図である。 文書DBのデータ構造例を示す図である。 文書番号部分列探索開始アドレス表記憶装置のデータ構造例を示す図である。 転置インデックス記憶装置の内部構造およびデータ構造例を示す図である。 文書番号配列とアドレスの関係を示す図である。 文書検索処理の手順を示すシーケンス図である。 文書番号配列の取得状況を示す図である。 転置インデックス作成処理の手順を示すフローチャートである。 部分列探索開始位置決定処理の手順を示すフローチャートである。 並列運用予定台数候補を2の倍数としたときの文書番号部分列探索開始アドレス表の例を示す図である。 並列処理台数が2台と4台との場合に使用可能な文書番号部分列探索開始アドレス表の例を示す図である。 第4の実施の形態における転置インデックス作成処理の手順を示すフローチャートである。 第4の実施の形態における文書番号部分列探索開始アドレス表の例を示す図である。 第5の実施の形態における転置インデックス更新処理の手順を示すフローチャートである。 相対アドレスにより部分列探索開始アドレスを指定した文書番号部分列探索開始アドレス表の例を示す図である。 従来の文書検索システムの例を示す図である。
符号の説明
1 文書DB
2 転置インデックス記憶装置
3 文書番号部分列探索開始アドレス表記憶装置
4 検索依頼装置
5 文書検索管理装置
5a 文書番号部分列取得要求手段
5b 文書番号配列集計手段
5c 文書リスト作成手段
5d 検索結果通知手段
6a,6b,6c,6d 文書番号部分列取得装置
6aa 担当文書群決定手段
6ab 部分列探索開始位置決定手段
6ac 部分列取得手段
7a 文書検索依頼
7b 文書番号部分列取得要求
7c 担当文書群
7d 部分列探索開始アドレス
7e 文書番号部分列
7f 文書番号配列
7g 文書リスト

Claims (8)

  1. 電子化された文書の検索を行う文書検索システムにおいて、
    文書番号が付与された複数の文書データを記憶する文書データベースと、
    複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
    前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を1台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、
    検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信する文書番号部分列取得要求手段と、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して文書番号配列を生成する文書番号配列集計手段と、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成する文書リスト作成手段と、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する検索結果通知手段と、を具備する前記文書検索管理装置と、
    前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を並列処理台数で除算して1台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書番号部分列として前記文書検索管理装置に送信する部分列取得手段と、を具備する複数の前記文書番号部分列取得装置と、
    を有することを特徴とする文書検索システム。
  2. 前記文書番号部分列探索開始アドレス表記憶装置には、前記文書番号部分列取得装置の前記並列運用予定台数が異なる複数の前記文書番号部分列探索開始アドレス表が記憶されており、
    前記部分列探索開始位置決定手段は、前記文書番号部分列取得要求で示された前記並列処理台数に対応する前記並列運用予定台数の前記文書番号部分列探索開始アドレス表を参照して、前記部分列探索開始アドレスの抽出を行うことを特徴とする請求項1記載の文書検索システム。
  3. 前記文書番号部分列探索開始アドレス表記憶装置には、前記文書番号部分列取得装置の前記並列運用予定台数を複数の数値の公倍数とした前記文書番号部分列探索開始アドレス表が記憶され、前記文書番号部分列探索開始アドレス表の前記部分列探索開始アドレスは、前記公倍数の約数それぞれの台数の前記文書番号部分列取得装置で運用したときの装置番号と対応付けられており、
    前記部分列探索開始位置決定手段は、前記並列処理台数で前記文書番号部分列取得装置を運用したときの前記装置番号の中から自己の前記装置番号を検出し、検出した前記装置番号に対応する前記部分列探索開始アドレスを抽出することを特徴とする請求項1記載の文書検索システム。
  4. 前記文書番号部分列探索開始アドレス表記憶装置に記憶された前記文書番号部分列探索開始アドレス表には、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で、前記担当文書群頭出し文書番号が記録される位置を前記文書番号の配列における先頭からのアドレスの差分で表した相対アドレスが、前記部分列探索開始アドレスとして登録されており、
    前記部分列取得手段は、前記転置インデックス記憶装置内の前記検索キーワードに対応する前記キーワード文字列に関連付けられた文書番号の配列における先頭アドレスに、前記部分列探索開始アドレスで示される前記相対アドレスを加算した位置から、アドレスが大きくなる方向へ向かって前記文書番号の探索を行う、
    ことを特徴とする請求項1記載の文書検索システム。
  5. 前記文書検索管理装置は、転置インデックス作成指示が入力されると、前記文書データベースを参照して前記転置インデックスを更新すると共に、更新後の前記転置インデックスを参照して前記文書番号部分列探索開始アドレス表を更新する転置インデックス更新手段をさらに有することを特徴とする請求項1記載の文書検索システム。
  6. 電子化された文書の検索を行う文書検索システムにおいて、
    文書番号が付与された複数の文書データを記憶する文書データベースと、
    複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
    前記文書番号の最小値から所定間隔の数値に対応する前記文書番号の値を所定間隔頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で、前記所定間隔頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、前記キーワード文字列に対応付けて登録されており、前記部分列探索開始アドレスに対して、前記部分列探索開始アドレスが指し示す位置を含む前記文書番号の配列において前記部分列探索開始アドレスに対応する前記所定間隔頭出し文書番号以下の文書番号のうち最も大きな値が付与された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、
    検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書データベースに登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信する文書番号部分列取得要求手段と、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して文書番号配列を生成する文書番号配列集計手段と、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成する文書リスト作成手段と、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する検索結果通知手段と、を具備する前記文書検索管理装置と、
    前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して1台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、前記担当文書群の先頭の文書データの文書番号以下の前記文書番号が付与された前記所定間隔頭出し文書番号のうち最も大きな値の前記文書番号が付与された前記所定間隔頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書番号部分列として前記文書検索管理装置に送信する部分列取得手段と、を具備する複数の前記文書番号部分列取得装置と、
    を有することを特徴とする文書検索システム。
  7. 複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む文書データの文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
    前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を1台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、を用い、
    文書検索管理装置からの文書番号部分列取得要求に応じて、前記転置インデックス記憶装置から前記文書番号の配列の一部を取得するための文書番号部分列取得装置において、
    前記文書データの数を示す文書総数、前記文書番号部分列取得装置の運用数を示す並列処理台数、および検索キーワードを含む前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して1台当たりの担当文書数を計算し、文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、
    前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、
    前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書検索管理装置に送信する部分列取得手段と、
    を有することを特徴とする文書番号部分列取得装置。
  8. 電子化された文書の検索を行うための文書検索方法において、
    文書番号が付与された複数の文書データを記憶する文書データベースと、
    複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
    前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を1台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、が予め用意されており、
    文書検索管理装置の文書番号部分列取得要求手段が、検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書データベースに登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信し、
    前記文書番号部分列取得装置それぞれの担当文書群決定手段が、前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して1台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定し、
    前記文書番号部分列取得装置それぞれの部分列探索開始位置決定手段が、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出し、
    前記文書番号部分列取得装置それぞれの部分列取得手段が、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を文書番号部分列として前記文書検索管理装置に送信し、
    前記文書検索管理装置の文書番号配列集計手段が、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される前記文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して前記文書番号配列を生成し、
    前記文書検索管理装置の文書リスト作成手段が、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成し、
    前記文書検索管理装置の検索結果通知手段が、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する、
    ことを特徴とする文書検索方法。
JP2007091664A 2007-03-30 2007-03-30 文書検索システム、文書番号部分列取得装置、および文書検索方法 Expired - Fee Related JP4930153B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007091664A JP4930153B2 (ja) 2007-03-30 2007-03-30 文書検索システム、文書番号部分列取得装置、および文書検索方法
US12/054,198 US7797324B2 (en) 2007-03-30 2008-03-24 Document retrieval system, document number subsequence acquisition apparatus, and document retrieval method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007091664A JP4930153B2 (ja) 2007-03-30 2007-03-30 文書検索システム、文書番号部分列取得装置、および文書検索方法

Publications (2)

Publication Number Publication Date
JP2008250722A JP2008250722A (ja) 2008-10-16
JP4930153B2 true JP4930153B2 (ja) 2012-05-16

Family

ID=39796085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007091664A Expired - Fee Related JP4930153B2 (ja) 2007-03-30 2007-03-30 文書検索システム、文書番号部分列取得装置、および文書検索方法

Country Status (2)

Country Link
US (1) US7797324B2 (ja)
JP (1) JP4930153B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5332364B2 (ja) * 2007-10-16 2013-11-06 富士通株式会社 分散ストレージ管理プログラム、分散ストレージ管理装置、および分散ストレージ管理方法
US8964743B2 (en) * 2009-12-18 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Methods and arrangements in a packet switched network
US8204887B2 (en) * 2010-08-27 2012-06-19 Hewlett-Packard Development Company, L.P. System and method for subsequence matching
JP5071539B2 (ja) * 2010-09-13 2012-11-14 コニカミノルタビジネステクノロジーズ株式会社 画像検索装置、画像読取装置、画像検索システム、データベース生成方法およびデータベース生成プログラム
US8527497B2 (en) * 2010-12-30 2013-09-03 Facebook, Inc. Composite term index for graph data
US9646108B2 (en) * 2011-05-10 2017-05-09 Uber Technologies, Inc. Systems and methods for performing geo-search and retrieval of electronic documents using a big index
JP6107429B2 (ja) 2013-05-30 2017-04-05 富士通株式会社 データベースシステム、検索方法およびプログラム
JP5954742B2 (ja) * 2013-07-23 2016-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 文書を検索する装置及び方法
US9400845B2 (en) * 2013-09-03 2016-07-26 Ferrandino & Son Inc. Providing intelligent service provider searching and statistics on service providers
JP6267252B2 (ja) * 2016-03-09 2018-01-24 ヤフー株式会社 検索装置、検索方法及び検索プログラム
US11088864B1 (en) 2016-06-29 2021-08-10 Amazon Technologies, Inc. Device subcomponent representations
US10291424B1 (en) * 2016-06-29 2019-05-14 Amazon Technologies, Inc. Device representation management using representation types
JP6708239B2 (ja) * 2018-09-21 2020-06-10 富士ゼロックス株式会社 ドキュメント管理システム
CN110377604B (zh) * 2019-07-23 2022-06-24 北京小米移动软件有限公司 一种提取表格信息的方法、装置及介质
WO2023276162A1 (ja) * 2021-07-02 2023-01-05 晋二 古庄 データ作成装置、データ作成方法、及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3554459B2 (ja) * 1997-02-26 2004-08-18 株式会社日立製作所 テキストデータ登録検索方法
JP3181548B2 (ja) * 1998-02-03 2001-07-03 富士通株式会社 情報検索装置及び情報検索方法
JP4070382B2 (ja) * 2000-02-08 2008-04-02 富士通株式会社 情報検索装置および情報検索プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4230710B2 (ja) * 2002-03-19 2009-02-25 株式会社ジャストシステム 検索装置、検索方法、ならびに、プログラム
CN100437561C (zh) * 2003-12-17 2008-11-26 国际商业机器公司 电子文档的处理方法和装置及其系统
JP2006134191A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd 文書検索方法およびそのシステム
WO2006123429A1 (ja) * 2005-05-20 2006-11-23 Fujitsu Limited 情報検索方法、装置、プログラム、該プログラムを記録した記録媒体
JP2007058605A (ja) * 2005-08-24 2007-03-08 Ricoh Co Ltd 文書管理システム
JP5105894B2 (ja) * 2006-03-14 2012-12-26 キヤノン株式会社 文書検索システム、文書検索装置及びその方法とプログラム、記憶媒体
WO2008107997A1 (ja) * 2007-03-08 2008-09-12 Fujitsu Limited 帳票種識別プログラム、帳票種識別方法および帳票種識別装置

Also Published As

Publication number Publication date
JP2008250722A (ja) 2008-10-16
US20080243836A1 (en) 2008-10-02
US7797324B2 (en) 2010-09-14

Similar Documents

Publication Publication Date Title
JP4930153B2 (ja) 文書検索システム、文書番号部分列取得装置、および文書検索方法
US11544623B2 (en) Consistent filtering of machine learning data
JP5492187B2 (ja) 編集距離および文書情報を使用する検索結果順位付け
US10713589B1 (en) Consistent sort-based record-level shuffling of machine learning data
US8359315B2 (en) Generating a representative sub-signature of a cluster of signatures by using weighted sampling
JP5727512B2 (ja) 検索提案のクラスタ化及び提示
CN104166673B (zh) 用于复制内容可寻址存储集群的异步分布式去重
KR101203259B1 (ko) 사용자 행동에 기초한 디지털 미디어 전송
US8452788B2 (en) Information retrieval system, registration apparatus for indexes for information retrieval, information retrieval method and program
KR20130049111A (ko) 분산 처리를 이용한 포렌식 인덱스 방법 및 장치
Sisodia et al. Fast prediction of web user browsing behaviours using most interesting patterns
JP4896132B2 (ja) 情報価値を反映した情報検索方法及びその装置
JP2016157290A (ja) 文書検索装置、文書検索方法、および文書検索プログラム
JP5398663B2 (ja) データ処理装置及びデータ処理方法及びプログラム
WO2020136790A1 (ja) エッジシステム、情報処理方法及び情報処理プログラム
JP2013222418A (ja) パッセージ分割方法、装置、及びプログラム
JP5613536B2 (ja) 利用者の要求に応じて動的にもっとも適したイメージを抽出して提供するための方法、システム及びコンピューター判読可能な記録媒体
US11567906B2 (en) Generation and traversal of a hierarchical index structure for efficient data retrieval
JP2022053542A (ja) コンピュータシステム、コンピュータプログラムおよびコンピュータ実装方法(ワークロード駆動によるデータベース再編成)
JP2011100302A (ja) ランキング関数生成装置、ランキング関数生成方法、ランキング関数生成プログラム
JP3967230B2 (ja) 画像情報表示システム
JP5199968B2 (ja) キーワードタイプ判定装置、キーワードタイプ判定方法およびキーワードタイプ判定プログラム
JP2009146013A (ja) コンテンツ検索方法及び装置並びにプログラム
JP2021067962A (ja) 情報処理システム及び情報処理方法
Gilheany Processing time of TFIDF and Naive Bayes on Spark 2.0, Hadoop 2.6 and Hadoop 2.7: Which Tool Is More Efficient?

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120112

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees