JP4374014B2 - インデクス生成装置及びそのプログラム - Google Patents
インデクス生成装置及びそのプログラム Download PDFInfo
- Publication number
- JP4374014B2 JP4374014B2 JP2006314008A JP2006314008A JP4374014B2 JP 4374014 B2 JP4374014 B2 JP 4374014B2 JP 2006314008 A JP2006314008 A JP 2006314008A JP 2006314008 A JP2006314008 A JP 2006314008A JP 4374014 B2 JP4374014 B2 JP 4374014B2
- Authority
- JP
- Japan
- Prior art keywords
- index
- path
- document
- program
- generation
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information 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/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (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
さらに、XML文書は、開始タグと終了タグの間に要素と呼ばれるデータをもつ(例えば、「<価格>100</価格>」における要素は「100」)。このような記述を行うことで、XML文書は単体でデータとその意味を定義できる。
また、リレーショナルデータベースにおける検索の検索条件を表現する構文としてSQLがあるように、XML_DBにおける構造指定検索の検索条件を表現する構文としてXPath(‘http://www.w3.org/TR/xpath’参照)や、Xquery(‘http://www.w3.org/TR/xquery’参照)があり、W3C(World Wide Web Consortium)で標準化が進められている。
すなわち、XML_DBに蓄積されるXML文書が、どんな要素で、どんなデータ型の要素を含んでいるのか事前に知ることができないため、どの要素にどのデータ型でインデクスを生成するかということをデータベース管理者が予め指定することは難しい。
しかし、構造指定対応全文検索インデクス方式では、指定された要素名に関わらず、常にXML文書全体に対するインデクスを用いるため、指定した要素名以外のデータも処理対象となる。したがって、任意の要素名を指定した構造指定検索の検索レスポンス性能が低いため、複数構造指定検索でもそれと同程度の検索レスポンス性能しか期待できない。
なお、本発明の他の態様は、後記する実施形態の中で詳しく説明する。
以下に、本発明の第1実施形態として、複数の要素名から構成される構造化文書に対して、必要最小限のまとめインデクスを生成することにより、インデクスにより複数構造指定検索の検索レスポンス性能を改善するインデクス生成装置について説明する。
図1は、本実施形態のインデクス生成装置の構成例を示す図面である。図1に示すように、本実施形態のインデクス生成装置は、処理の結果を表示する表示装置1010と、登録対象文書が入力されるリムーバブルメディアのインタフェースや、登録処置の命令を入力するキーボード、マウス等で具現される入力装置1020と、後記する各プログラムを実行するCPU(Central Processing Unit)1030と、RAM(Random Access Memory)等で具現される主記憶装置1040と、ハードディスクドライブ等で具現される2次記憶装置1050とをバス1060を介して接続して構成され、一般的なコンピュータを用いて具現される。
なお、本実施形態において、構造索引及び構造インデクスとは、XPathなどで表現される各構造と、構造ごとのインデクスの対応関係を示す情報を表す。この詳細については後記する。また、値索引及び値インデクスとは、構造毎に存在するB−treeやn−gramなどのデータベースで通常使われるインデクスの集合を表す。
まず、構造化文書登録プログラム1100は、登録処理対象の構造化文書を取得し、文書識別番号を割り当て、格納する処理部を具現するプログラムである。
また、文書構造抽出プログラム1110は、登録対象の構造化文書を入力とし、入力された文書のテキストデータの先頭から任意の文字列をマッチングすることで任意の文字列の存在を判定(以降、テキストスキャン)し、タグを検知することで構造化文書の論理構造を解析し、構造化文書の構造解析木を生成する処理部を具現するプログラムである。
また、要素出現数管理プログラム1130は、この構造インデクスにおいてパスに該当する要素を取得し、出現位置として格納するとともに、その総数を出現数として格納する処理をパスごとに実行する処理部を具現するプログラムである。
さらに、値索引生成プログラム1150は、このまとめインデクスの定義に基づき、まとめインデクスを生成する処理部を具現するプログラムである。
なお、各プログラムを記録する媒体は、CD−ROM以外にも、フラッシュメモリ等のリムーバブルメディアを用いることもでき、図示しない外部のサーバ装置等からネットワークを介して伝送された各プログラムを主記憶装置1040に展開して実行する構成としてもよい。
また、値インデクス格納領域1220と、登録文書格納領域1230が確保されている。
さらに、登録対象文書1240を格納する領域が確保されている。
なお、本実施形態ではこれらの格納領域を、2次記憶装置1050に確保したが、主記憶装置1040や他の外部に設置された記憶装置に確保する構成としてもよい。また、2次記憶装置1050に格納された各情報の詳しい説明は後記する。また、閾値を入力及び参照する表示画面を作成し、データベース管理者が所定の閾値を入力する構成としてもよい。
次に、前記の構成を有するインデクス生成装置において実行される処理について説明する。
まず、インデクス生成装置が起動すると、システム制御プログラム1070が、2次記憶装置1050から主記憶装置1040に読み込まれる。そして、入力装置1020から登録対象文書1240を読み込み、2次記憶装置1050の所定の領域に格納する。
ここで、図2は登録制御プログラム1080における構造化文書登録処理を示すPAD(Problem Analysis Diagram)の例である。図2に示したPADを参照しつつ、構造化文書登録処理の手順を説明する(適宜、図1参照)。
まず、登録制御プログラム1080は、構造化文書登録プログラム1100を起動し、処理中の登録対象文書に識別番号を割り当て、インデクス生成装置に格納する(ステップS10020)。なお、構造化文書登録プログラム1100の詳細な処理内容は後記する(図5参照)。
そして、文書構造抽出プログラム1110を起動し、処理中の登録対象文書の論理構造を解析し、登録対象文書の構造解析木を生成する(ステップS10030)。なお、文書構造抽出プログラム1110の詳細な処理内容は後記する(図6参照)。
そして、登録制御プログラム1080は、ステップS10040において構造インデクス1210が更新されたか否かを判定する(ステップS10050)。ここで、構造インデクス1210が更新されている場合は(ステップS10050において‘Yes’)、構造インデクス1210においてステップS10040にて更新された全要素について、ステップS10070からステップS10090までに示す一連の値インデクス定義作成処理を繰り返し実行する(ステップS10060)。以下、ステップS10070からステップS10090までの処理を説明する。
次に、ステップS10070において取得した処理対象要素の出現数が、閾値管理情報1180に格納された所定の閾値より大きいか否かを判定し(ステップS10080)、大きい場合は(ステップS10080で‘Yes’)、索引定義生成プログラム1140を起動し、値インデクス定義管理情報1170を更新する(ステップS10090)。なお、索引定義生成プログラム1140の詳細な処理内容(図14参照)、及び値インデクス定義管理情報1170の詳細な説明は後記する。
(構造化文書登録プログラム)
構造化文書登録プログラム1100は、登録制御プログラム1080から起動され、2次記憶装置1050に格納されている登録対象文書1240の1つを処理対象とし、指定された処理対象である構造化文書を、登録文書格納領域1230に格納する構造化文書格納実施処理を実行する。
処理対象である構造化文書は、論理構造を持ち、論理構造は階層的に挿入されたタグで表現されている。図3及び図4に示した構造化文書であるXML文書の論理構造における最上位の要素名は「書籍情報」である。図3に示したXML文書では要素名「書籍情報」2010の下層に要素名「雑誌」2020、要素名「中古」2030、要素名「新古」2040の3つの要素名が存在する。さらに、要素名「雑誌」2020の下層には要素名「価格」2050があり、その要素は「560円」である。要素名「新古」2040の下には要素名「雑誌」2060があり、その下層には要素名「価格」2070(その要素は「360円」)と要素名「価格」2080(その要素は「390円」)の2つがある。
まず、構造化文書登録プログラム1100は、登録制御プログラム1080から指定された2次記憶装置1050に格納されている登録対象文書1240(例えば、図3に示したXML文書)を、作業領域1090に読み込む(ステップS11010)。
ここで、文書番号管理情報1190は、インデクス生成装置において一意の値(例えば、整数からなる)である。読み込んだ値は、以降、処理中の登録対象文書1240に割り当てた文書番号として使用される。
なお、新たな一意の値としては、例えば、元の値が整数であれば、その整数に1を加えた値である。また、登録対象文書1240が複数ある場合は、登録対象文書1240ごとに、前記の構造化文書格納実施処理を実行する。
文書構造抽出プログラム1110は、登録制御プログラム1080から起動され、登録対象文書に対する論理構造解析処理を実行する。文書構造抽出プログラム1110における論理構造解析処理を、図6に示すPADを用いて説明する(適宜、図1参照)。
このとき、構造解析木のルートノードを、現在の処理ノードとする。また、登録対象文書の最上位の要素を現す開始タグの位置をテキストスキャンの現在位置とする。
この構造解析木は、さらに、パス名「/書籍情報/雑誌/価格」3050、パス名「/書籍情報/中古/書籍」3060、パス名「/書籍情報/中古/書籍/価格」3070、パス名「/書籍情報/新古/雑誌」3080、パス名「/書籍情報/新古/雑誌/価格」3090、パス名「/書籍情報/新古/雑誌/価格」3100を有する。
以下、それぞれ、パス名「/書籍情報/雑誌」8020、パス名「/書籍情報/雑誌/価格」8030、パス名「/書籍情報/中古」8040、パス名「/書籍情報/中古/雑誌」8050、パス名「/書籍情報/中古/雑誌/価格」8060の要素を有している。
以下、ステップS12030からステップS12070までのタグ検出処理を説明する。
また、検出したタグが、最上位以外の終了タグであれば、現在の処理ノードを構造解析木の現在の処理ノードの上位の要素にする(ステップS12060)。
さらに、検出したタグが、最上位の終了タグであれば、タグ検出処理を終了し(ステップS12070)、構造解析木の生成は完成し、文書構造抽出プログラム1110の論理構造解析処理は終了する。
構造索引生成プログラム1120は、登録制御プログラム1080から起動され、構造インデクス作成処理を実施する。構造索引生成プログラム1120における構造インデクス作成処理を、図9に示すPADを用いて説明する(適宜、図1参照)。
ここで、2次記憶装置1050上に構造インデクス1210がある場合、2次記憶装置1050上にある構造インデクス1210を作業領域1090に読み込む(ステップS13020)。
一方、2次記憶装置1050上に構造インデクスがない場合、文書構造抽出プログラム1110が生成した構造解析木の最上位の要素の要素名を、最上位の要素名とした構造インデクス1210を新たに作業領域1090に生成する(ステップS13030)。
そして、ステップS13040で抽出した全要素のパス名について、ステップS13060及びステップS13070の構造インデクス更新処理を繰り返す(ステップS13050)。以下、構造インデクス更新処理について説明する。
なお、要素番号管理情報1200は、インデクス生成装置において一意の値である。
図7に示した構造解析木は、パス名で正規化されるため、パス名「/書籍情報/新古/雑誌/価格」の要素は、図10のように1つの要素4010にまとめられたことがわかる。
そして、次の処理として、図10に示した構造インデクスを読み込み、図8に示した構造解析木で更新すると、図11の構造インデクスとなる。この処理により、図10に示した構造インデクスと比べて、図11に示した構造インデクスでは、パス名「/書籍情報/中古/雑誌/価格」の要素9010が新たに追加されたことがわかる。
要素出現数管理プログラム1130は、登録制御プログラム1080から起動され、要素出現数管理処理を実施する。要素出現数管理プログラム1130における要素出現数管理処理を、図12に示すPADを用いて説明する(適宜、図1参照)。
次に、読み込んだ構造インデクス1210から、すべての末端要素名を抽出する(ステップS14012)。なお、末端要素名とは、構造インデクス1210に含まれる全要素の中で、より下層に要素を持たない要素の要素名である。
そして、2次記憶装置1050上のパス出現位置管理情報1160を作業領域1090に読み込む(ステップS14015)。
図13において、パス条件5010は、XPathの表記法で記述された条件であり、例えば、パス条件「//価格」とは、すべての要素の子孫にある要素名が「価格」である要素を表し、図10に示した構造インデクスにおいて、このパス条件を満たす要素は、パス名「/書籍情報/雑誌/価格」4020、パス名「/書籍情報/中古/書籍/価格」4030、パス名「/書籍情報/新古/雑誌/価格」4010であるため、出現位置5020の項目に、それぞれの要素の要素番号を示す「2,5,10」が入力されていることがわかる。
また、出現数5030の項目には、同一レコードのパス条件5010を満たす、構造インデクスの要素の数が入力され、前記の例では「3」が入力さていることがわかる。
次に、ステップS14030で生成したパス条件5010と同一のパス条件を持つレコードが、2次記憶装置1050上のパス出現位置管理情報1160に存在するか否かを判定する(ステップS14040)。ここで、存在しなければ、ステップS14030で生成したパス条件を、パス出現位置管理情報1160に、新たなレコードのパス条件として追加する(ステップS14050)。
そして、ステップS14060で抽出したすべてのパス条件5010について、後記するステップS14080の要素出現数更新処理を繰り返す(ステップS14070)。
このステップS14080における要素出現数更新処理では、2次記憶装置1050上の構造インデクス1210から、処理中のパス条件5010を満たす要素の要素番号を抽出し、処理中のパス条件5010に対応する出現位置5020として、パス出現位置管理情報1160に格納する。また、処理中のパス条件5010を満たす要素の数を出現数5030としてパス出現位置管理情報1160に格納する。
索引定義生成プログラム1140は、登録制御プログラム1080から起動され、値インデクス定義生成処理を実施する。索引定義生成プログラム1140における値インデクス定義生成処理を、図14に示すPADを用いて説明する(適宜、図1参照)。
図15に示した値インデクス定義管理情報1170において、インデキシング対象パス6010は、まとめインデクスを作成する際にインデキシングの対象となる1つ以上の要素のパス名を表す項目である。
また、作成状況6020は、このインデクス生成装置において、現在の作成状況に対応するまとめインデクスのステータスが、「作成済み」であるか否かを表す。
なお、本実施形態ではフルオートインデクス方式を前提としているため、インデキシング対象パス6010が単一のパス名からなるインデクスは、すべて作成することとしている。
値索引生成プログラム1150は、登録制御プログラム1080から起動され、値インデクス生成制御処理を実施する。値索引生成プログラム1150における値インデクス生成制御処理を、図16に示すPADを用いて説明する(適宜、図1,図15参照)。
以上、説明した構造化文書登録プログラム1100、文書構造抽出プログラム1110、構造索引生成プログラム1120、要素出現数管理プログラム1130、索引定義生成プログラム1140、値索引生成プログラム1150を適宜呼び出すことで、登録制御プログラム1080は、構造化文書登録処理を実行する。
前記した第1実施形態においては、自動的にインデクスを生成する方式を説明したが、データベース管理者に対して、生成するインデクスに関する情報を通知する方式であってもよい。通知した後に、データベース管理者の確認を行った上で自動的に生成する方式であってもよい。又は、データベース管理者が後で手動にて生成する方式であってもよい。
ここで、図17は、本実施形態におけるインデクス生成装置の構成例を示す図面である。
図17に示した本実施形態のインデクス生成装置は、図1に示した第1実施形態のインデクス生成装置から、主記憶装置1040上の登録制御プログラム1080a及び索引生成確認プログラム17010を変更した点で異なっている。また、本実施形態のインデクス生成装置において、第1実施形態と同様の構成要素については、同じ参照符号を付してその説明は省略する。
以下、第1実施形態のインデクス生成装置の構造化文書登録処理からの変更点のみを説明する。
まず、本実施形態のインデクス生成装置が起動すると、システム制御プログラム1070が、2次記憶装置1050から主記憶装置1040に読み込まれる。そして、入力装置1020から登録対象文書1240を読み込み、2次記憶装置1050の所定の領域に格納する。
次に、入力装置1020から入力される処理開始命令により、システム制御プログラム1070は、登録制御プログラム1080aを2次記憶装置1050から主記憶装置1040に読み込んで起動し、本実施形態の値インデクス生成確認を伴う構造化文書登録処理を開始する。
次に、ステップS19010で起動される索引生成確認プログラム17010について詳しく説明する。
索引生成確認プログラム17010は、登録制御プログラム1080aから起動され、確認式値インデクス生成制御処理を実施する。索引生成確認プログラム17010における確認式値インデクス生成制御処理を、図19に示すPADを用いて説明する(適宜、図17参照)。
索引生成確認プログラム17010は、図16で説明した値インデクス生成制御処理と同様に、ステップS16010及びステップS16020を実行し、ステップS16020で、値インデクス定義管理情報1170(図15参照)から抽出したすべてのインデキシング対象パス6010について、値インデクス作成確認処理を繰り返す(ステップS16030a)。
図20に示した値インデクス生成確認画面は、処理中の値インデクス定義管理情報1170に基づいて作成され、インデキシング対象パス18010、作成状況18020及び回答18030の項目を含んで構成される。以下、各項目について説明する。
インデキシング対象パス18010は、値インデクス定義管理情報1170に対応して、インデクス生成の対象となるパス名を表している。インデキシング対象パス18010に複数のパス名が書かれている場合、まとめインデクスを生成可能であることを示している。
回答18030は、対応する作成状況18020が「未作成」の場合にのみ表示され、対応するインデキシング対象パス18010に対するインデクスを生成するか否か選択するラジオボタンと、ラジオボタンで選択された情報を送信する場合にマウス等で選択する決定ボタン18040とを含んでいる。
以上が、本実施形態における登録処理で、第1実施形態の処理と異なる処理の内容である。
この場合、データベース管理者が後で手動にてインデクスを生成する方式となる。
また、構造化文書の登録処理時にデータベース管理者への通知を出力するのではなく、データベース管理者から問い合わせがあった際に出力する方式としてもよい。
第1実施形態においては、末端要素のみに着目してまとめインデクスを生成する方式を例に説明した。また、第1実施形態においては単一の要素名をインデキシング対象とする方式を例に説明した。
しかしながら、パス条件「//雑誌/価格」の要素が「700円」である、と言った階層構造を意識した複数構造指定検索のように、パス条件「//価格」等の末端要素だけに着目して生成したまとめインデクスが使用できない場合もあり、そこで、末端要素以外の要素や複数の要素名の階層的な組み合わせ(例えば、パス条件「//雑誌/価格」などのように、階層構造を意識した複数の要素名からなるパス条件)を対象としたまとめインデクスを生成しておき、それを利用するインデクス生成装置を考える。
ここで、図21は、本実施形態におけるインデクス生成装置の構成例を示す図面である。
図21に示した本実施形態のインデクス生成装置は、図1に示した第1実施形態のインデクス生成装置から、主記憶装置1040上の要素出現数管理プログラム1130b及びパス出現位置管理情報1160bを変更した点で異なっている。また、本実施形態のインデクス生成装置において、第1実施形態と同様の構成要素については、同じ参照符号を付してその説明は省略する。
以下、第1実施形態のインデクス生成装置の構造化文書登録処理からの変更点を説明する。本実施形態のインデクス生成装置における処理手順は、図2に示した第1実施形態の構造化文書登録処理と、ステップS10070における要素出現数管理プログラム1130の実行内容のみが異なる。
そこで、本実施形態の要素出現数管理プログラム1130bの処理手順についてのみ説明する。
要素出現数管理プログラム1130bは、登録制御プログラム1080から起動され、パス出現数管理処理を実施する。要素出現数管理プログラム1130bにおけるパス出現数管理処理を、図22に示すPADを用いて説明する。
まず、要素出現数管理プログラム1130bは、構造インデクス1210からすべての階層構造を意識した要素名の組み合わせを抽出し(ステップS14012b)、2次記憶装置1050上のパス出現位置管理情報1160bを作業領域1090に読み込む(ステップS14015)。
まず、要素出現数管理プログラム1130bは、処理中の要素名の組み合わせと同一の要素名の組み合わせを持つパスすべてを満たすパス条件を生成する(ステップS14030b)。
このよう生成されたパス出現位置管理情報1160bにより、図14に示した索引定義生成プログラム1140が実行する値インデクス定義生成処理において、パス条件「//雑誌/価格」23020の要素の出現数5030が、値インデクス生成実施閾値よりも大きくなれば、「//雑誌/価格」23020に含まれる要素群に対してインデクスを生成する。
以上が、本実施形態における登録処理で、第1実施形態の処理と異なる処理の内容である。
第1実施形態ないし第3実施形態のインデクス生成装置は、フルオートインデクス方式を前提としており、構造インデクス1210の各末端要素に対するインデクスを必ず生成することを説明した。
ここで、各末端要素を実際に持つ登録文書が多く、インデクスがなければ検索時間を要する要素にだけインデクスを生成する機能を有することにしてもよい。
本実施形態のインデクス生成装置における処理手順は、図2に示した第1実施形態の構造化文書登録処理と、ステップS10070における要素出現数管理プログラム1130の実行内容及びステップS10090における索引定義生成プログラム1140の実行内容のみが異なる。そこで、本実施形態の要素出現数管理プログラム1130c及び索引定義生成プログラム1140cの処理手順についてのみ説明する。
要素出現数管理プログラム1130cは、登録制御プログラム1080から起動され、構造出現数を考慮したパス出現数管理処理を実施する。要素出現数管理プログラム1130cにおけるパス出現数管理処理を、図25に示すPADを用いて説明する。本実施形態の構造出現数を考慮したパス出現数管理処理は、図22で説明した第3実施形態のパス出現数管理処理と、ステップS14080cが異なる。
次に、ステップS14030bで生成したパス条件5010と同一のパス条件を持つレコードが、2次記憶装置1050上のパス出現位置管理情報1160bに存在するか否かを判定する(ステップS14040)。ここで、存在しなければ、ステップS14030bで生成したパス条件を、パス出現位置管理情報1160bに、新たなレコードのパス条件として追加する(ステップS14050)。
さらに、全登録文書の中で処理中のパス条件5010bを満たす構造の出現数を計数して、「全登録文書中での構造出現数」25010としてパス出現位置管理情報1160bに格納する。
これらのレコードは、ステップS14080cにおいて、要素出現数管理プログラム1130cが、全登録文書の中で処理中のパス条件5010bを満たす構造の出現数を計数して、「全登録文書中での構造出現数」25010として格納することで、登録されたものである。
索引定義生成プログラム1140cは、登録制御プログラム1080から起動され、構造出現数を考慮した値インデクス定義生成処理を実施する。索引定義生成プログラム1140cにおける構造出現数を考慮した値インデクス定義生成処理の流れを、図27に示すPADを用いて説明する。本実施形態の構造出現数を考慮した値インデクス定義生成処理は、図14で説明した第1実施形態の値インデクス定義生成処理と比べて、ステップS15025が、ステップS15025cに置き換わっていることが異なり、さらにステップS15030とステップS5040との間にステップS27010を新たに有することが異なる。
なお、本実施形態において閾値管理情報1180cは、パス出現数の閾値である値インデクス生成実施閾値と併せて、構造出現数の閾値である構造出現数閾値を含んでいる。
次に、2次記憶装置1050上の閾値管理情報1180を作業領域1090に、構造出現数閾値及び値インデクス生成実施閾値として読み込み(ステップS15025c)、値インデクス定義管理情報1170を、作業領域1090に読み込む(ステップS15027)。
そして、この値インデクス作成判断処理において、索引定義生成プログラム1140は、処理中のパス条件5010bに対応する全登録文書中での構造出現数25010(図26参照)が構造出現数閾値より大きいか否かを判定し(ステップS27010)、ここで、構造出現数閾値より大きい場合は、すでに説明したステップS15040以降の手順を実行して、構造出現数を考慮した値インデクス定義生成処理が終了する。
以上が、本実施形態における登録処理中で、第3実施形態の処理と異なる処理の内容である。
このように、各末端要素を実際に持つ登録文書が多い場合に、出現数が多い要素にだけインデクスを生成することで、必要最小限のインデクスを生成することが可能となり、その結果、インデクスの更新・メンテナンスにかかる時間を短縮することが可能となる。
第1実施形態ないし第4実施形態においては、構造インデクス1210における要素の出現数又は登録文書格納領域中の文書における構造の出現数に基づき、インデクスの生成の可否を判断することを説明した。
前記のようなインデクス生成装置は、新たなインデクスを生成したことにより不要となったインデクスを削除する機能を有することもでき、削除を自動的に実施することなく、削除すると判定したことを示す情報をデータベース管理者に通知する機能を有することもできる。
ここで、図28は、本実施形態におけるインデクス生成装置の構成例を示す図面である。図28に示したインデクス生成装置は、図24に示した第4実施形態のインデクス生成装置から、主記憶装置1040上の索引定義生成プログラム1140d及び値索引生成プログラム1150dを変更した点で異なっている。また、本実施形態のインデクス生成装置において、第4実施形態と同様の構成要素については、同じ参照符号を付してその説明は省略する。
以下、第4実施形態からの変更点のみを説明する。
索引定義生成プログラム1140dは、登録制御プログラム1080から起動され、構造出現数を考慮した削除あり値インデクス定義生成処理を実施する。索引定義生成プログラム1140dにおける構造出現数を考慮した削除あり値インデクス定義生成処理を、図29に示すPADを用いて説明する。
ステップS15070までの手順により値インデクス定義管理情報1170(図15参照)を更新すると、索引定義生成プログラム1140dは、値インデクス定義管理情報1170のインデキシング対象パス6010について、値インデクス削除定義作成処理を繰り返し実行する(ステップS30010)。以下、値インデクス削除定義作成処理について説明する。
次に、ステップS30020で取得した各パス名の構造出現数を合計し、処理中のインデキシング対象パス6010の合計の構造出現数を算出すると共に、各パス名の構造出現数と合計の構造出現数を比較し、合計の構造出現数に対する割合が規定値以上であるパス名があるか否かを判定する(ステップS30030)。
値索引生成プログラム1150dは、登録制御プログラム1080から起動され、値インデクス更新制御処理を実施する。値索引生成プログラム1150dにおける値インデクス更新制御処理を、図30に示すPADを用いて説明する。本実施形態の値インデクス更新制御処理は、図16で説明した第1実施形態の値インデクス生成制御処理と比べ、ステップS31010ないしステップS31030の処理を有する点で異なっている。
そして、ステップS16020で抽出したすべてのインデキシング対象パス6010について、値インデクス更新実施処理を繰り返す(ステップS16030)。以下に値インデクス更新実施処理を説明する。
以上が、本実施形態における登録処理中で、第4実施形態の処理と異なる処理の内容である。
前記のように、まとめインデクスを作ったことにより不要になったインデクスを削除することで、必要最低限のインデクスのみを生成することが可能となり、その結果、インデクスの更新・メンテナンスにかかる時間を短縮することが可能となる。
また、生成するインデクスに関する情報を通知した後に、データベース管理者の確認を行った上で自動的に生成する方式であってもよい。又は、データベース管理者が後で手動にて生成する方式であってもよい。
また、前記の実施形態では構造化文書としてXML文書を取り扱う例を示したが、本発明にはXML文書以外の構造化文書を適用することも可能である。
1020 入力装置
1030 CPU
1040 主記憶装置
1050 2次記憶装置
1080 登録制御プログラム
1100 構造化文書登録プログラム
1110 文書構造抽出プログラム
1120 構造索引生成プログラム
1130 要素出現数管理プログラム
1140 索引定義生成プログラム
1150 値索引生成プログラム
1160 パス出現位置管理情報
1170 値インデクス定義管理情報
1180 閾値管理情報
1190 文書番号管理情報
1200 要素番号管理情報
1210 構造インデクス
1220 値インデクス格納領域
1230 登録文書格納領域
Claims (6)
- 文書構造を有する構造化文書に対するインデクスを生成するインデクス生成装置であって、
前記構造化文書を取得して、前記インデクス生成装置の記憶装置に格納する構造化文書登録部と、
前記格納した構造化文書を解析して文書構造を抽出する文書構造抽出処理部と、
前記抽出した文書構造を正規化して、階層構造を持った複数の要素から構成される構造インデクスを生成する構造索引生成処理部と、
前記構造インデクスの末端の要素を対象として前記生成した構造インデクスにおける各要素の出現数を抽出する要素出現数管理処理部と、
前記抽出した出現数と所定の第1の閾値とを比較し、前記抽出した出現数の方が大きい場合は、前記構造インデクスに含まれる当該出現数に係る要素を取得する索引定義生成処理部と、
前記取得した要素の前記構造インデクスにおけるパスをインデクスとして生成する値索引生成処理部とを備えること、
を特徴とするインデクス生成装置。 - 文書構造を有する構造化文書に対するインデクスを生成するインデクス生成装置であって、
前記構造化文書を取得して、前記インデクス生成装置の記憶装置に格納する構造化文書登録部と、
前記格納した構造化文書を解析して文書構造を抽出する文書構造抽出処理部と、
前記抽出した文書構造を正規化して、階層構造を持った複数の要素から構成される構造インデクスを生成する構造索引生成処理部と、
前記生成した構造インデクスにおける各要素の出現数を抽出する要素出現数管理処理部と、
前記抽出した出現数と所定の第1の閾値とを比較し、前記抽出した出現数の方が大きい場合は、前記構造インデクスに含まれる当該出現数に係る要素を取得する索引定義生成処理部と、
前記取得した要素の前記構造インデクスにおけるパスをインデクスとして生成する値索引生成処理部とを備えること、
を特徴とするインデクス生成装置。 - 前記値索引生成処理部は、
前記抽出した要素を含んだ表示画面を出力し、前記インデクスの生成を命令する情報を取得した場合にのみ、前記抽出した要素の前記構造インデクスにおけるパスをインデクスとして生成すること、
を特徴とする請求項1又は請求項2に記載のインデクス生成装置。 - 前記要素出現数管理処理部は、
前記構造インデクスにおいて階層構造を構成する複数の要素からなる要素集合の前記構造化文書における出現数をさらに抽出し、
前記索引定義生成処理部は、
前記抽出した要素集合の出現数と所定の第2の閾値とを比較し、
前記抽出した要素集合の出現数の方が大きい場合は、
前記値索引生成処理部は、
前記抽出した要素集合の前記構造インデクスにおけるパスをインデクスとしてさらに生成すること、
を特徴とする請求項1又は請求項2に記載のインデクス生成装置。 - 前記索引定義生成処理部は、
処理中のインデキシング対象パスに包含される各パス名が、前記インデクス生成装置に格納された全ての構造化文書において出現する出現数を取得し、
前記取得した出現数の合計に対する、前記各パス名が処理中の構造化文書において出現する出現数の割合と、所定の第3の閾値とを比較し、
前記割合の方が大きい場合は、
前記インデキシング対象パスに包含される当該割合に係るパス名を抽出し、
前記値索引生成処理部は、
前記抽出したパス名に対応するパスを、インデクスとして生成しないこと、
を特徴とする請求項4に記載のインデクス生成装置。 - 文書構造を有する構造化文書に対するインデクスを生成するコンピュータを機能させるためのプログラムであって、
前記コンピュータを、
請求項1ないし請求項5のいずれか1項に記載の前記インデクス生成装置の各処理部として機能させるためのプログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006314008A JP4374014B2 (ja) | 2006-11-21 | 2006-11-21 | インデクス生成装置及びそのプログラム |
| US11/689,562 US7711726B2 (en) | 2006-11-21 | 2007-03-22 | Method, system and program for creating an index |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006314008A JP4374014B2 (ja) | 2006-11-21 | 2006-11-21 | インデクス生成装置及びそのプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2008129842A JP2008129842A (ja) | 2008-06-05 |
| JP4374014B2 true JP4374014B2 (ja) | 2009-12-02 |
Family
ID=39418122
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006314008A Expired - Fee Related JP4374014B2 (ja) | 2006-11-21 | 2006-11-21 | インデクス生成装置及びそのプログラム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US7711726B2 (ja) |
| JP (1) | JP4374014B2 (ja) |
Families Citing this family (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9275052B2 (en) | 2005-01-19 | 2016-03-01 | Amazon Technologies, Inc. | Providing annotations of a digital work |
| US8352449B1 (en) | 2006-03-29 | 2013-01-08 | Amazon Technologies, Inc. | Reader device content indexing |
| US9672533B1 (en) | 2006-09-29 | 2017-06-06 | Amazon Technologies, Inc. | Acquisition of an item based on a catalog presentation of items |
| US8725565B1 (en) | 2006-09-29 | 2014-05-13 | Amazon Technologies, Inc. | Expedited acquisition of a digital item following a sample presentation of the item |
| JP4860416B2 (ja) * | 2006-09-29 | 2012-01-25 | 株式会社ジャストシステム | 文書検索装置、文書検索方法および文書検索プログラム |
| US7865817B2 (en) | 2006-12-29 | 2011-01-04 | Amazon Technologies, Inc. | Invariant referencing in digital works |
| US8024400B2 (en) | 2007-09-26 | 2011-09-20 | Oomble, Inc. | Method and system for transferring content from the web to mobile devices |
| US7751807B2 (en) | 2007-02-12 | 2010-07-06 | Oomble, Inc. | Method and system for a hosted mobile management service architecture |
| US9665529B1 (en) | 2007-03-29 | 2017-05-30 | Amazon Technologies, Inc. | Relative progress and event indicators |
| US7716224B2 (en) | 2007-03-29 | 2010-05-11 | Amazon Technologies, Inc. | Search and indexing on a user device |
| US7921309B1 (en) | 2007-05-21 | 2011-04-05 | Amazon Technologies | Systems and methods for determining and managing the power remaining in a handheld electronic device |
| US20090037408A1 (en) * | 2007-08-04 | 2009-02-05 | James Neil Rodgers | Essence based search engine |
| US7844633B2 (en) * | 2007-09-13 | 2010-11-30 | International Business Machines Corporation | System and method for storage, management and automatic indexing of structured documents |
| US8145674B2 (en) * | 2007-11-26 | 2012-03-27 | International Business Machines Corporation | Structure based storage, query, update and transfer of tree-based documents |
| US8176084B2 (en) * | 2007-11-26 | 2012-05-08 | International Business Machines Corporation | Structure based storage, query, update and transfer of tree-based documents |
| US8423889B1 (en) | 2008-06-05 | 2013-04-16 | Amazon Technologies, Inc. | Device specific presentation control for electronic book reader devices |
| US8160811B2 (en) * | 2008-06-26 | 2012-04-17 | Toyota Motor Engineering & Manufacturing North America, Inc. | Method and system to estimate driving risk based on a hierarchical index of driving |
| JP5225022B2 (ja) * | 2008-10-29 | 2013-07-03 | 日本電信電話株式会社 | Xmlデータ検索方法及び装置及びプログラム |
| NO20085365A (no) * | 2008-12-22 | 2010-04-19 | Fast Search & Transfer As | Invertert indeks for kontekstuell søk |
| US9087032B1 (en) | 2009-01-26 | 2015-07-21 | Amazon Technologies, Inc. | Aggregation of highlights |
| US8378979B2 (en) * | 2009-01-27 | 2013-02-19 | Amazon Technologies, Inc. | Electronic device with haptic feedback |
| US8832584B1 (en) | 2009-03-31 | 2014-09-09 | Amazon Technologies, Inc. | Questions on highlighted passages |
| JP5191441B2 (ja) * | 2009-05-14 | 2013-05-08 | 日本電信電話株式会社 | インデクス構築方法及び装置及び情報検索方法及び装置及びプログラム |
| US8692763B1 (en) | 2009-09-28 | 2014-04-08 | John T. Kim | Last screen rendering for electronic book reader |
| JP2011123598A (ja) * | 2009-12-09 | 2011-06-23 | Canon Inc | 原稿判別装置、原稿判別方法及びプログラム |
| US9141727B2 (en) * | 2010-05-14 | 2015-09-22 | Nec Corporation | Information search device, information search method, computer program, and data structure |
| US9495322B1 (en) | 2010-09-21 | 2016-11-15 | Amazon Technologies, Inc. | Cover display |
| US9158741B1 (en) | 2011-10-28 | 2015-10-13 | Amazon Technologies, Inc. | Indicators for navigating digital works |
| JP6046477B2 (ja) * | 2012-12-14 | 2016-12-14 | 株式会社日立システムズ | 検索システム |
| US10311095B2 (en) * | 2014-01-17 | 2019-06-04 | Renée BUNNELL | Method and system for qualitatively and quantitatively analyzing experiences for recommendation profiles |
| JP6805885B2 (ja) * | 2017-02-28 | 2020-12-23 | 富士通株式会社 | 情報処理装置、アクセス制御方法、及びアクセス制御プログラム |
| US11132367B1 (en) | 2017-06-06 | 2021-09-28 | Amazon Technologies, Inc. | Automatic creation of indexes for database tables |
| US11048756B2 (en) * | 2019-01-31 | 2021-06-29 | EMC IP Holding Company LLC | Inserting datasets into database systems utilizing hierarchical value lists |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3887867B2 (ja) | 1997-02-26 | 2007-02-28 | 株式会社日立製作所 | 構造化文書の登録方法 |
| JPH10293790A (ja) | 1997-04-17 | 1998-11-04 | Toshiba Corp | 電力設備作業管理装置 |
| JP2001167087A (ja) * | 1999-12-14 | 2001-06-22 | Fujitsu Ltd | 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法 |
| JP4661512B2 (ja) | 2004-11-05 | 2011-03-30 | 株式会社日立製作所 | 遠隔メンテナンスシステム,モニタリングセンター計算機及びメンテナンス指示方法 |
| JP2006215986A (ja) | 2005-02-07 | 2006-08-17 | Ricoh Co Ltd | 電子マニュアル作成装置、電子マニュアル作成方法および電子マニュアル作成プログラム |
-
2006
- 2006-11-21 JP JP2006314008A patent/JP4374014B2/ja not_active Expired - Fee Related
-
2007
- 2007-03-22 US US11/689,562 patent/US7711726B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US20080120280A1 (en) | 2008-05-22 |
| JP2008129842A (ja) | 2008-06-05 |
| US7711726B2 (en) | 2010-05-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4374014B2 (ja) | インデクス生成装置及びそのプログラム | |
| JP3842577B2 (ja) | 構造化文書検索方法および構造化文書検索装置およびプログラム | |
| US8356045B2 (en) | Method to identify common structures in formatted text documents | |
| US5752021A (en) | Document database management apparatus capable of conversion between retrieval formulae for different schemata | |
| JP4189416B2 (ja) | 構造化文書管理システム及びプログラム | |
| Shigarov | Table understanding: Problem overview | |
| JP4247135B2 (ja) | 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法 | |
| JP4247108B2 (ja) | 構造化文書検索方法、構造化文書検索装置、及びプログラム | |
| JP2008171181A (ja) | 構造化データ検索装置 | |
| US7337187B2 (en) | XML document classifying method for storage system | |
| JP2000276487A (ja) | 事例蓄積・検索装置、並びに事例蓄積方法および事例検索方法、並びに事例蓄積プログラムを記録したコンピュータで読取可能な記録媒体および事例検索プログラムを記録したコンピュータで読取可能な記録媒体 | |
| JP3832693B2 (ja) | 構造化文書検索表示方法及び装置 | |
| JP4146479B2 (ja) | 構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラム | |
| JP3914081B2 (ja) | アクセス権限設定方法および構造化文書管理システム | |
| JP4309818B2 (ja) | 構造化文書管理装置、検索装置、記憶方法、検索方法及びプログラム | |
| JP3632643B2 (ja) | 構造化文書管理装置 | |
| US20090164424A1 (en) | Object-Oriented Twig Query Evaluation | |
| JP3842576B2 (ja) | 構造化文書編集方法及び構造化文書編集システム | |
| JP2002312383A (ja) | 文書検索装置、文書検索システム、文書検索方法、並びにプログラム | |
| JP3842572B2 (ja) | 構造化文書管理方法および構造化文書管理装置およびプログラム | |
| JP3709890B2 (ja) | 文字列検索装置 | |
| JP3842574B2 (ja) | 情報抽出方法および構造化文書管理装置およびプログラム | |
| JP2004126640A (ja) | 文書構造検索方法、文書構造検索装置および文書構造検索プログラム | |
| JP2004118543A (ja) | 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム | |
| JP3933407B2 (ja) | 文書処理装置、文書処理方法および文書処理プログラムが格納された記憶媒体 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080704 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081209 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090209 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090421 |
|
| RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20090616 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090622 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090619 |
|
| 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: 20090901 |
|
| 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: 20090904 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120911 Year of fee payment: 3 |
|
| 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: 20120911 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130911 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |