JP4304226B2 - 構造化文書管理システム、構造化文書管理方法及びプログラム - Google Patents

構造化文書管理システム、構造化文書管理方法及びプログラム Download PDF

Info

Publication number
JP4304226B2
JP4304226B2 JP2008137292A JP2008137292A JP4304226B2 JP 4304226 B2 JP4304226 B2 JP 4304226B2 JP 2008137292 A JP2008137292 A JP 2008137292A JP 2008137292 A JP2008137292 A JP 2008137292A JP 4304226 B2 JP4304226 B2 JP 4304226B2
Authority
JP
Japan
Prior art keywords
index
structured document
search
type
unit
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
JP2008137292A
Other languages
English (en)
Other versions
JP2008198235A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008137292A priority Critical patent/JP4304226B2/ja
Publication of JP2008198235A publication Critical patent/JP2008198235A/ja
Application granted granted Critical
Publication of JP4304226B2 publication Critical patent/JP4304226B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、構造化文書格納手段に格納された構造化文書の検索を高速化するために、構造化文書の索引を構築して索引格納手段に格納するのに好適な、構造化文書管理システム、構造化文書管理方法及びプログラムに関する。
近年、XML(Extensible Markup Language)に代表される、論理構造を有する構造化文書が普及している。構造化文書は、一般にディスク(ディスクドライブ)に配置されたデータベースに蓄積して利用される。
また、構造化文書の普及に伴い、1つまたは複数の構造化文書が蓄積されたデータベースから、ユーザの指定する検索条件に合致した文書または要素、属性、値などの情報を検索する情報検索システムが種々開発されている。この種の情報検索システムでは、検索対象の文書、更には文書内の要素や値などに、索引が付与されるのが一般的である(例えば、特許文献1参照)。
情報検索システムにおける構造化文書の検索では、構造、値またはそれらの組み合わせによる検索が行われる。この検索に適用される索引技術として、例えばNグラム(N−gram)を用いた索引技術(Nグラム索引技術)と、形態素解析を用いた索引技術(形態素索引技術)とが知られている。
Nグラム索引技術:
この技術では、文字列(値)の先頭から1文字ずつずらしながら、当該文字列を順にN文字(Nグラム)に区切り、この区切りにより生成された、それぞれN文字以下の文字列毎に索引(索引レコード)が作成される。これにより、例えばN=2で、値が“あいうえお”の場合であれば、“あ”/“あい”/“いう”/“うえ”/“えお”/“お”の6種類の索引(索引レコード)が作成される。この索引に対して、例えば“うえお”の部分文字列を含む値を検索する場合、まず索引をもとに、“うえ”と“えお”の位置を探索して、当該“うえ”と“えお”を含む文書と文書内の位置を特定し、それらが含まれる値の共通集合を検索結果の候補とする。
形態素解析索引技術:
この技術では、値(文字列)から単語が抽出される。文字列を単語に区切る方法としては“形態素解析”が知られている。抽出された単語毎に、索引(索引レコード)が作成される。これにより、例えば“本日は晴天なり”の値に対しては、“本日”/“晴天”の2つの単語が抽出されて、それぞれ索引として作成される。この索引に対して、例えば“晴天”の部分文字列を検索する場合、まず索引をもとに“晴天”の位置を探索して、当該“晴天”を含む文書と文書内の位置を特定して検索結果の候補とする。
特開2003−30235(段落0030乃至0053、特に段落0044、図5)
上述した従来の情報検索システムで適用される索引技術、例えばNグラムを用いた索引技術においては、索引量の増加を招き、総索引のサイズが、実装によっては原文サイズの10倍を超える巨大なものとなることがある。この場合、文書更新に伴う索引更新のディスク更新量が増え、更新性能が劣化する。また、検索においても、検索内容によっては索引探索のために必要なディスク参照量が増え、参照性能(検索性能)も劣化する。更に索引サイズが巨大なため、それを納めるだけの大きなディスク容量を準備する必要がある。
一方、形態素解析を用いた索引技術においては、形態素解析で抽出されないような文字列を検索条件とすることはできないことから、厳密な検索は行うことができない。前述の例では、「“なり”を含む値を取得する」といった検索が要求された場合、正しい結果を得ることができない。
通常のアプリケーションで使用される検索は、厳密な検索が必要な場合(前者)と、若干厳密性が損なわれても構わないか、もしくは意味を持つ単語以外での検索が必要ない場合(後者)の2種類に大別される。前者の検索には、Nグラムによる索引技術が必要となるが、後者の検索には形態素解析による索引技術でも十分である。
また本発明者は、検索全般について考えた場合、厳密な検索で対象とするのは、題目やキーワード、人名、地名といったコンテンツの属性や書誌情報に分類されるようなデータであり、一般に文字列長は短い場合が多いことを認識するに至った。このようなデータは、記述の仕方にルールがあるのが一般的である。これに対し、例えば書誌の本文といったコンテンツの本体に分類されるデータは、一般に文字列長は長い。このように、書誌本文のような長大なデータでタグで細かく意味付けされていないようなデータは、厳密な検索や単語にならない文字列での検索が意味を持たない場合が多い。
本発明は上記事情を考慮してなされたものでその目的は、要素毎に、その要素に適した種別の索引を構築することにより、良好な更新検索性能を維持しながら検索の厳密性を維持することができる、構造化文書管理システム、構造化文書管理方法及びプログラムを提供することにある。
本発明の1つの観点によれば、構造化文書格納手段に格納された構造化文書の検索を高速化するために、構造化文書の索引を構築して索引格納手段に格納する構造化文書管理システムにおいて、索引を付与すべき、構造化文書に含まれる各要素毎に、当該要素の名前に基づいて索引種別を決定する索引種別決定手段と、前記索引種別決定手段によって前記各要素毎に決定された索引種別に基づいて、当該要素に対応する当該決定された索引種別の索引を構築して前記索引格納手段に格納する索引構築手段と、外部から与えられる検索式を解析して検索条件を抽出し、その検索条件に合致する検索結果の候補の集合を取得する検索式処理手段を具備し、前記索引種別決定手段は、索引を付与すべき、構造化文書に含まれる各要素毎に、当該要素の名前から推定される種別の検索条件であって、前記検索式処理手段によって抽出されて当該要素に対して適用される可能性の最も高い種別の検索条件に基づいて前記索引種別を決定することを特徴とする構造化文書管理システムが提供される。
本発明によれば、検索に要求される厳密性は要素に依存することに着目し、要素毎に、その要素に適した種別の索引を構築することにより、良好な更新検索性能を維持しながら検索の厳密性を維持することができる。
以下、本発明の一実施形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る情報検索システムの構成を示すブロック図である。この情報検索システムは、主として、データベース管理システム(Data Base Management System:DBMS)10と、構造化文書データベース(構造化文書DB)21と、Nグラム索引データベース(Nグラム索引DB)22と、単語索引データベース(単語索引DB)23と、B木(B*Tree)索引データベース(B木索引DB)24と、設定ファイル25と、索引種別辞書26と、ログファイル27とを備えている。構造化文書DB21と、Nグラム索引DB22、単語索引DB23及びB木索引DB24の各索引DBと、設定ファイル25と、索引種別辞書26と、ログファイル27とは、DBMS10からアクセス可能なデータ格納手段としての図示せぬディスクドライブ(ディスク)に置かれている。
構造化文書DB21は、少なくとも1つの構造化文書(例えば、複数の構造化文書)の文書データを格納するのに用いられる。Nグラム索引DB22は、Nグラム索引技術(Nグラム索引方式)で作成された索引レコード(Nグラム索引)を格納するのに用いられ、単語索引DB23は、形態素解析索引技術(形態素解析索引方式)で作成された索引レコード(単語索引)を格納するのに用いられる。B木索引DB24は、キーの値とデータ自身との関係を保持する索引レコードに、索引レコードを効率的に検索するための階層的なインデックスレコード情報を付与することでB木を構成し、格納するのに用いられる。
設定ファイル25は、各要素の値の長さ(値長)から、その値の検索に適した索引の種別を決定するのに必要な文字列長閾値を予め設定しておくのに用いられる。索引種別辞書26は、構造化文書に含まれる各要素について、その要素の値を検索するのに適した索引種別(つまり索引方式)を設定するのに用いられる。ここでは、索引種別辞書26は、各要素の名前毎に、その名前(要素名)と、その要素名の要素の値を検索するのに適した索引種別とを組にして保持するのに用いられる。つまり索引種別辞書26は、各要素の要素名に対応付けて、その要素名の要素の値を検索するのに適した索引種別を保持するのに用いられる。ログファイル27は、構造化文書DB21に格納された構造化文書に含まれている、各要素の値をログ情報として蓄積するのに用いられる。なお、ログファイル27に、各要素の値の長さ(値長)がログ情報として蓄積される構成であっても構わない。
DBMS10は、構造化文書DB21、Nグラム索引DB22、単語索引DB23及びB木索引DB24の各DB(データベース)を管理する構造化文書管理システムである。DBMS10は、アクセス処理部11と、構造化文書管理部12と、検索エンジン13とから構成される。DBMS10は、計算機システムにインストールされたデータベース管理のためのソフトウェアプログラム(データベース管理プログラム)を当該計算機システム(内のCPU)が読み取って実行することにより実現される。このプログラムは、コンピュータで読み取り可能な記憶媒体(フロッピー(登録商標)ディスクに代表される磁気ディスク、CD−ROM、DVDに代表される光ディスク、フラッシュメモリに代表される半導体メモリ等)に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード(頒布)されても構わない。
アクセス処理部11は、図1の情報検索システムを利用するクライアント(クライアント端末)からの種々のDBアクセス要求を処理する。このクライアントが、図1の情報検索システムを実現する計算機の端末、または当該計算機とネットワークを介して接続された端末のいずれであっても構わない。アクセス処理部11は、アプリケーション30からの更新要求を受け付けて構造化文書管理部12に対して当該更新要求の示す更新処理(データ更新及び索引更新)を行わせる。ここでのデータ更新及び索引更新は、それぞれ新規データの格納及び索引の構築(作成)を含むものとする。また以降の説明では、索引の更新(再構築)を索引の構築で代表させることもある。アクセス処理部11はまた、アプリケーション30からの検索要求を受け付けて、検索エンジン13に対して当該検索要求の示す情報検索を行わせる。
構造化文書管理部12は、データ更新部14と索引管理部15とから構成される。データ更新部14は、アプリケーション30からの更新要求に応じて、構造化文書DB21を対象とする更新処理を行う。索引管理部15は、アプリケーション30からの更新要求に応じて、Nグラム索引DB22、単語索引DB23またはB木索引DB24に格納すべき索引の構築を管理する。この索引の構築には、説明の煩雑さを避けるため、Nグラム索引DB22、単語索引DB23またはB木索引DB24に格納されている索引の更新(再構築)の概念も含まれているものとする。索引管理部15は、Nグラム索引DB22、単語索引DB23またはB木索引DB24のいずれを対象とする索引の構築を行うかを、設定ファイル25、索引種別辞書26またはログファイル27の内容に基づいて決定する。
検索エンジン13は、データ検索部16と索引参照部17とから構成される。データ検索部16は、アプリケーション30からの検索要求に応じて、構造化文書DB21から検索要求に合致した構造化文書または構造化文書中の要素の値を検索する。このときデータ検索部16は、検索条件を索引参照部17に渡すことにより、その検索条件に合致した構造化文書または構造化文書中の要素の位置の集合(検索結果の候補の集合)を当該索引参照部17から受け取る。
図2は、図1中の構造化文書管理部12の構成を、各DB21〜24等と関連付けて示すブロック図である。構造化文書管理部12は前記したように、データ更新部14と索引管理部15とから構成される。索引管理部15は、文字列長閾値決定部151と、値抽出部152と、索引構築制御部153と、索引構築部154とから構成される。
文字列長閾値決定部151は、データ更新部14によるデータ更新の対象となる文書(部分文書)中の要素の値の長さ(値長)から、その値の検索に適した索引の種別を決定するのに必要な文字列長閾値を決定する。文字列長閾値決定部151は、第1の閾値決定モードでは、設定ファイル25に設定されている文字列長閾値をそのまま目的の文字列長閾値として決定する。また文字列長閾値決定部151は、第2の閾値決定モードでは、構造化文書DB21に格納されている各構造化文書に含まれる各要素の値長の統計情報(分布)から、文字列長閾値を決定する。各要素の値長の情報は、ログファイル27に蓄積されている。
値抽出部152は、データ更新部14によるデータ更新の対象となる文書(部分文書)中の要素の値と、当該文書中の位置とを抽出する。索引構築制御部153は、第1の索引種別決定モードでは、値抽出部152によって抽出された要素の値の長さと、文字列長閾値決定部151によって決定された文字列長閾値とから、その値の検索に適した索引の種別(索引方式)を決定する。この第1の索引種別決定モードでは、索引構築時に、過去にログ情報に蓄積した各要素の値長の統計と閾値によって、格納される構造化文書の構造(スキーマ)の各要素に対して今後構築する索引の種別を予め決定しても良い。索引構築制御部153はまた、第2の索引種別決定モードでは、値抽出部152によって抽出された要素の名前と、索引種別辞書26とをもとに、その名前(要素名)の要素に適した索引の種別(索引方式)を決定する。索引構築制御部153は、索引構築部154を制御して、上記抽出された要素の値の検索に適した種別の索引を構築させる。索引構築制御部153は、索引の構築時には、対応する要素の値をログ情報としてログファイル27に蓄積する。
索引構築部154は、グラム(Gram)分割部155と、Nグラム索引更新部156と、形態素解析部157と、単語索引更新部158と、B木索引更新部159とを含む。グラム分割部155は、索引構築制御部153から要素の値と位置の情報を受けて、その値をNグラムに分割してグラム列を作成する。Nグラム索引更新部156は、作成されたグラム列と位置の情報とから、Nグラム索引DB22を対象としてNグラム索引を構築する。形態素解析部157は、索引構築制御部153から要素の値と位置の情報を受けて、その値(文字列)を形態素解析して単語を抽出する。単語索引更新部158は、抽出された単語と位置の情報とから、単語索引DB23を対象として単語索引を構築する。B木索引更新部159は、索引構築制御部153から要素の値と位置の情報を受けて、B木索引DB24を対象としてB木索引を構築する。
図3は、図1中の検索エンジン13の構成を、各DB21〜24等と関連付けて示すブロック図である。検索エンジン13は前記したように、データ検索部16と索引参照部17とから構成される。
データ検索部16は、検索式処理部161とデータ参照部162とを含む。検索式処理部161は、アプリケーション30からの検索要求の示す検索式を解析して、検索に必要な条件(つまり検索条件)を抽出し、その検索条件に合致する検索結果の候補の集合(構造化文書または構造化文書中の要素の位置の集合)を取得する。検索式処理部161はまた、検索結果の候補をデータ参照部162により構造化文書DB21から参照させる。
索引参照部17は、索引管理部15中の文字列長閾値決定部151と同様の文字列長閾値決定部171と、索引参照制御部172と、グラム分割部173と、Nグラム索引検索部174と、形態素解析部175と、単語索引検索部176と、B木索引検索部177とを含む。索引参照制御部172は、検索式処理部161から与えられる検索条件に含まれている文字列の長さと文字列長閾値決定部171によって決定される文字列長閾値とから、参照すべき索引の種別を判別する。索引参照制御部172は、判別された索引種別に対応する、グラム分割部173、形態素解析部175またはB木索引検索部177に検索条件を渡して、対応する索引を参照させる。グラム分割部173は、検索条件に含まれる文字列をNグラムに分割してグラム列を作成する。Nグラム索引検索部174は、作成されたグラム列に対応するNグラム索引レコードをNグラム索引DB22から検索し、その位置の情報を索引参照制御部172に返す。形態素解析部175は、検索条件に含まれる文字列を形態素解析して単語を抽出する。単語索引検索部176は、抽出された単語に対応する単語索引レコードを単語索引DB23から検索し、その位置の情報を索引参照制御部172に返す。B木索引検索部177は、検索条件に含まれる文字列に対応するB木索引レコードをB木索引DB24から検索し、その位置の情報を索引参照制御部172に返す。
図4は、図2中の索引構築制御部153の構成を示すブロック図である。この索引構築制御部153は、値長計算部153aと、比較部153bと、索引種別決定部153cとを含む。値長計算部153aは、値抽出部152によって抽出された要素の値の長さ(値長)を算出する。比較部153bは、比較部153bによって算出された値長を文字列長閾値決定部151によって決定された文字列長閾値とを比較する。索引種別決定部153cは、索引種別決定モードに固有の索引種別決定処理を行う。本実施形態では、第1の索引種別決定モードと第2の索引種別決定モードの2種類が用意されている。索引種別決定部153cは、第1の索引種別決定モードの場合、比較部153bの比較結果に応じて、対応する要素の値に適用する索引種別を決定する。また、第2の索引種別決定モードの場合には、索引種別決定部153cは、対応する要素の名前(要素名)で索引種別辞書26を参照することにより、その要素名の要素の値に適用する索引種別を決定する。
次に、図1の情報検索システムにおける索引更新処理について、索引管理部15の動作を中心に、図5のフローチャートを参照して説明する。まず、ユーザの操作に従って、クライアント端末上のアプリケーション30から図1の情報検索システムに対して、データ追加、或はデータの上書き等の更新要求が送られたものとする。この更新要求は、DBMS10内のアクセス処理部11で受け付けられる。するとアクセス処理部11は、アプリケーション30からの更新要求を構造化文書管理部12内のデータ更新部14に通知する。
データ更新部14は、通知された更新要求に従い、当該更新要求で指定されるデータ(文書データ)を構造化文書DB21に新たに格納する処理、或は当該更新要求で指定されるデータ(文書データまたは部分文書データ)で構造化文書DB21の対応するデータを更新する処理を行う。同時にデータ更新部14は、そのデータ(文書データまたは部分文書データ)を構造化文書DB21内の格納位置の情報と共に索引管理部15内の値抽出部152へ渡す。
値抽出部152は、データ更新部14から渡されたデータから索引を付与すべき構造化文書の要素値を全て抽出する。この要素値の抽出には、構造化文書がXMLであれば、例えばXMLパーサを使用できる。値抽出部152は、データ更新部14から渡されたデータから抽出された全ての要素値を、構造化文書DB21内の格納位置の情報と共に索引構築制御部153へ渡す。
索引構築制御部153は、索引種別モードを判定する(ステップS1)。もし、索引種別モードとして第1の索引種別モードが指定されているならば、索引構築制御部153は文字列長閾値決定部151に対して文字列長閾値を決定することを要求する。すると文字列長閾値決定部151は、閾値決定モードを判定する(ステップS2)。
もし、閾値決定モードとして第1の閾値決定モードが指定されているならば、文字列長閾値決定部151は、設定ファイル25に設定されている文字列長閾値を読み込んで、その閾値を索引構築制御部153が使用する文字列長閾値として決定する(ステップS3)。これに対し、閾値決定モードとして第2の閾値決定モードが指定されているならば、文字列長閾値決定部151は、ログファイル27に保存されているログ情報から、構造化文書DB21に格納された構造化文書に含まれている、各要素の値長の分布(統計情報)を算出する(ステップS4)。そして文字列長閾値決定部151は、各要素の値長の分布から、索引構築制御部153が使用する文字列長閾値を決定する(ステップS5)。このように第2の閾値決定モードでは、構造化文書DB21に格納された構造化文書に含まれている各要素に適した文字列長閾値が動的に決定される。本実施形態では、上記分布において、要素数を2等分する値長が文字列長閾値として決定される。しかし、文字列長閾値の決定の仕方は、これに限るものではない。
閾値決定モードは、アクセス処理部11からの問い合わせに従うユーザの操作に応じて、アプリケーション30から指定可能である。また、索引種別モードも、ユーザの操作に応じて、アプリケーション30から指定可能である。更に、閾値決定モード、或は索引種別モードを、データベースの属性として予め保持することも可能である。本実施形態では、索引種別モードとして第1の索引種別モードが指定された場合に、閾値決定モードが有効となる。
文字列長閾値決定部151によって決定された文字列長閾値は、索引構築制御部153へ渡される。索引構築制御部153内の値長計算部153aは、値抽出部152によって抽出された各要素の値毎に、その値の長さ、即ち値長を算出する。索引構築制御部153内の比較部153bは、値長計算部153aによって算出された各要素の値長毎に、その値長を文字列長閾値決定部171によって決定された文字列長閾値と比較する。そして比較部153bは、各要素の値長毎の比較結果を索引構築制御部153内の索引種別決定部153cへ渡す。なお、値長計算部153a及び比較部153bが、第1の索引種別モードが指定されている場合だけ動作する構成であっても構わない。
索引種別決定部153cは、第1の索引種別モードが指定されている場合、比較部153bの比較結果に応じて、値抽出部152によって抽出された各要素の値毎に、その値に最適な索引種別を決定する。ここでは索引種別決定部153cは、要素の値の長さが文字列長閾値を超えているならば(ステップS6)、その値に最適な索引種別として単語索引を決定する(ステップS7)。この場合、索引種別決定部153cは、対応する要素の値と構造化文書DB21内の格納位置の情報との組を、形態素解析部157へ渡す(ステップS8)。これに対し、要素の値の長さが文字列長閾値以下であるならば(ステップS6)、索引種別決定部153cは、その値に最適な索引種別としてNグラム索引を決定する(ステップS9)。この場合、索引種別決定部153cは、対応する要素の値と構造化文書DB21内の格納位置の情報との組をグラム分割部155へ渡す(ステップS10)。
グラム分割部155は、索引種別決定部153cから要素の値(文字列)と格納位置の情報を渡された場合、当該要素の値(文字列)をNグラム(長さNの語彙)に分割してグラム列(Nグラムの集合)を作成する。グラム分割部155は、作成されたグラム列と格納位置の情報をNグラム索引更新部156へ渡す。Nグラム索引更新部156は、グラム列を構成する各グラムを、それぞれ格納位置の情報と組にして、それぞれNグラム索引(Nグラム索引レコード)として、Nグラム索引DB22に登録またはNグラム索引DB22内の対応する索引レコードを追加する。即ちNグラム索引更新部156は、Nグラム索引DB22を対象としてNグラム索引を構築する。
一方、形態素解析部157は、索引種別決定部153cから要素の値(文字列)と格納位置の情報を渡された場合、当該要素の値(文字列)を形態素解析して単語を抽出する。形態素解析部157は、抽出された単語の集合(単語集合)と格納位置の情報を単語索引更新部158へ渡す。単語索引更新部158は、単語集合中の各単語を、それぞれ格納位置の情報と組にして、それぞれ単語索引(単語索引レコード)として、単語索引DB23に登録または当該単語索引DB23内の対応する索引レコードを追加する。即ち単語索引更新部158は、単語索引DB23を対象として単語索引を構築する。
上記したように本実施形態においては、図1の情報検索システムの索引種別モードとして第1の索引種別モードが指定されている場合(ステップSS1)、値抽出部152によって抽出された各要素の値毎に、その値の長さに応じて、その長さに最適な索引種別が決定される(ステップS6,S7,S9)。ここでは、値の長さが文字列長閾値以下であるならば、つまり値長が短いならば、その値(文字列)からNグラム索引の集合が生成されて、Nグラム索引DB22を対象とするNグラム索引の構築が行われる。これに対して、値の長さが文字列長閾値を超えているならば、つまり値長が長いならば、その値(文字列)から、単語索引の集合が生成されて、単語索引DB23を対象とする単語索引の構築が行われる。
このように本実施形態では、第1の索引種別モードが指定されている場合、値長の短い要素値だけをNグラム索引の構築の対象としている。このため、Nグラム索引の短所である、データ量が膨大となるのを防止しながら、Nグラム索引の長所である厳密な検索に対応できる。また、第1の索引種別モードが指定されている場合、値長の長い要素値は、単語索引の構築の対象としている。このため、値長の長い要素値をNグラム索引の構築の対象とする場合に比べて、データ量が膨大となるのを防止できる。しかも、値長が長い要素値は、一般に厳密な検索や単語にならない文字列での検索が意味を持たない場合が多い。このため、値長が長い要素値を単語索引の構築の対象としても、当該単語索引の短所である、厳密な検索には向かないことによる不具合の発生を防止できる。
一方、第2の索引種別モードが指定されている場合(ステップS1)、索引種別決定部153cは、値抽出部152によって抽出された各要素毎に、その要素の名前、つまり要素名をキーにして索引種別辞書26を参照することで(ステップS11)、その要素名に対応して予め定められている索引種別を決定する(ステップS12)。ここで、例えば「日付」の要素名を持つ要素の値には、完全一致型または大小比較型の検索条件の指定が予測(推定)される。この完全一致型または大小比較型の検索条件の処理にはB木索引が適していることが知られている。また、「本文」の要素名を持つ場合は、部分一致型の検索条件の指定が予測される。この部分一致型の検索条件の処理には全文検索用索引、例えばNグラム索引または単語索引(つまり形態素解析による索引)が適していることが知られている。そこで、本実施形態の索引種別辞書26では、「日付」の要素名と組をなす索引種別としてB木索引が用いられ、「本文」の要素名と組をなす索引種別として全文検索用索引、例えばNグラム索引が用いられる。このNグラム索引に代えて、単語索引を用いることも可能である。また、「本文」の要素名と組をなす索引種別としてNグラム索引及び単語索引の2つを用い、上記第1の索引種別モードが指定されている場合と同様に、対応する要素の値長に応じて、当該Nグラム索引及び単語索引の一方が、実際に適用される索引種別として決定される構成とすることも可能である。
索引種別決定部153cは、上記ステップS12で決定された索引種別がB木索引の場合(ステップS13)、対応する要素の値と構造化文書DB21内の格納位置の情報との組をB木索引更新部159へ渡す(ステップS14)。B木索引更新部159は、この要素の値と位置の情報を受けて、B木索引DB24を対象としてB木索引を構築する。また索引種別決定部153cは、対応する要素の値と上記格納位置の情報との組を、ステップS12で決定された索引種別が単語索引であれば形態素解析部157へ渡し(ステップS8)、Nグラム索引であればグラム分割部155へ渡す(ステップS10)。
ところで、形態素解析部157が要素の値(文字列)を形態素解析した結果に、例えば「東京都」と「東」「京都」のように、2通り(複数通り)の解釈を持つ表記が含まれることがある。この場合、索引構築部154では、検索の漏れを防ぎ検索精度の劣化を防止するために、単語索引に代えて、Nグラム索引を構築するようにしても構わない。これに対し、形態素解析結果に1通りの解釈を持つ表記しか含まれない場合には、そのまま形態素解析を利用した単語索引を構築すればよい。
この他、上述の「東京都」と「東」「京都」のように、2通り(複数通り)の解釈を持つ表記が含まれる場合に、これらの表記「東京都」「東」「京都」の全てを単語索引としても良い。
また、要素の値(文字列)を形態素解析した結果に、意味は同じであるが表記が異なる単語が含まれている場合(例えば「呼び出し」と「呼びだし」など)には、いずれかの表記に統一して、単語索引とすると良い。この場合、検索処理時にも、検索対象の単語の表記を統一してから検索すれば良い。
次に、図1の情報検索システムにおける検索処理について説明する。まず、ユーザの操作に従って、クライアント端末上のアプリケーション30から図1の情報検索システムに対して、データの検索要求が送られたものとする。この検索要求は、DBMS10内のアクセス処理部11で受け付けられる。するとアクセス処理部11は、アプリケーション30からの検索要求を検索エンジン13内のデータ検索部16に通知する。
データ検索部16内の検索式処理部161は、通知された検索要求の指定する検索式を解析して要素値に関する検索条件(要素値検索条件)を抽出し、その要素値検索条件となる文字列を索引参照部17内の索引参照制御部172へ渡す。また検索式処理部161は、上記検索式から、要素値以外の検索条件、例えば構造検索条件も抽出する。
一方、索引参照部17内の文字列長閾値決定部171は、索引種別モードとして第1の索引種別モードが指定されている場合、索引管理部15内の文字列長閾値決定部151と同様の手順で文字列長閾値を決定して、その文字列長閾値を索引参照制御部172へ渡す。
索引参照制御部172は、索引種別モードとして第1の索引種別モードが指定されている場合、検索式処理部161から渡された、要素値検索条件となる文字列に適合する索引種別を、当該文字列の長さと文字列長閾値決定部171から渡された文字列長閾値とに基づいて決定する。即ち索引参照制御部172は、要素値検索条件となる文字列の長さが閾値を超える場合は形態素解析部175へ当該文字列を与える。これに対して、要素値検索条件となる文字列の長さが閾値を超えない場合には、当該文字列を含む要素の値長は閾値を超えているかも知れないし、或は超えていないかもしれないことから、索引参照制御部172は、グラム分割部173及び形態素解析部175の両方へ当該文字列を与える。
グラム分割部173は、索引更新時のグラム分割部155と同様の動作により、要素値検索条件となる文字列をNグラムに分割してグラム列を生成し、そのグラム列をNグラム索引検索部174へ渡す。形態素解析部175も、索引更新時の形態素解析部157と同様の動作により、要素値検索条件となる文字列から単語を抽出して、抽出された単語の集合を単語索引検索部176へ渡す。
Nグラム索引検索部174は、グラム分割部173から渡された各グラム(語彙)でNグラム索引DB22を検索し、全てのグラム(語彙)を持つ文書の構造化文書DB21内格納位置を求める。つまりNグラム索引検索部174は、各グラム(語彙)の検索で得られる構造化文書DB21内格納位置の集合について、全ての集合からそれぞれ構造化文書DB21内格納位置を選択し入力グラム列の隣接関係を満たすかどうかを検査して、隣接関係を満たした場合は、その先頭のグラムの構造化文書DB21内格納位置を検索結果の集合として保持する。そしてNグラム索引検索部174は、得られた構造化文書DB21内格納位置の集合をNグラム索引検索結果として索引参照制御部172へ返答する。
一方、単語索引検索部176は、形態素解析部175から渡された各単語で単語索引DB23を検索し、全ての単語を持つ文書の構造化文書DB21内格納位置を求める。つまり単語索引検索部176は、各単語の検索で得られる構造化文書DB21内格納位置の集合を単語索引検索結果として索引参照制御部172へ返答する。
次に、索引種別モードとして第2の索引種別モードが指定されている場合、索引参照制御部172は、検索式処理部161から渡された、要素値検索条件となる文字列に適合する索引種別を、索引更新時の索引構築制御部153(内の索引種別決定部153c)と同様の動作により、索引種別辞書26に従って決定する。索引参照制御部172は、索引種別としてB木索引を決定した場合、要素値検索条件となる文字列をB木索引検索部177へ渡す。B木索引検索部177は、索引参照制御部172から渡された文字列でB木索引DB24を検索し、B木の木構造のルートノードからリーフノードへ向けて、検索対象キーの大小関係をもとに順次ノードを辿り、リーフノードに到達したらリーフノードに含まれる検索対象キーに対応する構造化文書DB21内格納位置を全て求める。索引種別としてNグラム索引または単語索引が決定された場合の動作は、上記第1の索引種別モードが指定されている場合と同様である。
索引参照制御部172は、Nグラム索引検索部174、単語索引検索部176及びB木索引検索部177のうち検索に用いたものから得られた各索引検索結果の集合から、もしそれが複数であればOR演算を行って重複を削除した上で、索引検索結果の候補集合として、構造化文書DB21内格納位置の集合を検索式処理部161に返答する。検索式処理部161は、索引参照制御部172から返された候補集合に基づき、データ参照部162へ構造化文書DB21内の各格納位置の情報を渡す。データ参照部162は、検索式処理部161から渡された構造化文書DB21内の各格納位置の情報に基づいて、それぞれ対応する構造化文書を特定して、当該検索式処理部161に返答する。検索式処理部161は、データ参照部162から返されたそれぞれの構造化文書を対象に、検索式から抽出された要素値以外の検索条件(構造検索条件)に合致しているか、更には指定の要素値が正しく含まれているかを確認する。そして検索式処理部161は、検索式に合致する構造化文書の集合を結果集合として、アクセス処理部11を経由してアプリケーション30に返答する。
上記実施形態では、幾つかのモードと、そのモードに対応した索引種別決定機能、或は文字列長閾値決定機能とが用意されている。しかし、この種のモードを用意せずに、ある特定の索引種別決定機能、或は文字列長閾値決定機能のみが用意される構成であっても構わない。
また、上記実施形態では、ログファイル27には、構造化文書DB21に格納された構造化文書に含まれている各要素の値が、索引の構築時に索引構築制御部153によって蓄積される。しかし、特定の種別の検索条件、例えば完全一致型の検索条件に合致した構造化文書に含まれている要素の値のみがログファイル27に蓄積される構成としても良い。この場合、ログファイル27に蓄積された、完全一致型の検索条件に合致した構造化文書に含まれている要素の値の長さに基づいて、文字列長閾値を決定することで、上記実施形態と比べて索引種別の決定に一層適した文字列長閾値を決定できる。なお、完全一致型の検索条件に合致した構造化文書は、検索式処理部161によって確認されるため、当該構造化文書に含まれている要素の値をログファイル27に蓄積する処理は、当該検索式処理部161に行わせると良い。
また、個々の要素に対して適用された検索条件を当該要素に対応付けて、例えば検索式処理部161がログファイル27に蓄積する構成としても良い。この場合、索引構築制御部153内の索引種別決定部153cは、値抽出部152によって抽出された要素に対応付けてログファイル27に蓄積されている検索式の履歴、即ち当該要素に対して過去に適用された検索条件の履歴に基づいて、その要素の値に適した索引種別を決定することが可能となる。例えば、ある要素に対して適用された検索条件として、完全一致型の検索条件が最も多い場合、その完全一致型の検索条件の処理に適したB木索引を、当該要素に適用する索引種別として決定すると良い。また、部分一致型の検索条件が最も多く適用された要素に対しては、部分一致型の検索条件の処理に適した、Nグラム索引または単語索引に代表される全文検索用索引を適用すると良い。これにより、検索性能を向上できる。
さて、要素の値のデータ型によっても、その要素に適した索引の種別は異なる。そこで、構造化文書の構造(スキーマ)の指定の一部としてデータ型が与えられている場合は、要素の値のデータ型に応じて、そのデータ型を処理するのに適した索引の種別が、例えば索引種別決定部153cによって決定される構成とすることでも、検索性能を向上できる。ここでは、例えば数値型であれば数値型のB木索引を、文字列型であれば全文検索用索引を、それぞれ対応する要素に適用すると良い。また、バイナリ型は、対応する要素を索引構築の対象外とすると良い。
また、特定の要素に対する検索条件として、複数の異なる検索条件が適用されることがある。そこで複数の異なる検索条件の各々に適した索引種別を索引種別決定部153cが決定して、その種別の索引を、同一の要素の値に対して索引構築部154によってそれぞれ構築させておき、検索時に検索条件が与えられた場合に、その検索条件の処理に適した索引を索引参照制御部172が選択する構成とすることも可能である。例えば、同一の要素の値に対して適用される検索条件に部分一致型の検索条件と大小比較型の検索条件とが混在するような場合には、全文検索用索引だけでは大小比較を行うことはできないし、B木索引では部分一致検索を行うことはできない。このような場合に、上記要素に対して全文検索用索引とB木索引の両方を構築しておき、部分一致検索の場合には全文検索用索引を、大小比較の場合にはB木索引を、それぞれ選択して使用するならば、両方の検索条件を高速に処理できる。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の一実施形態に係る情報検索システムの構成を示すブロック図。 図1中の構造化文書管理部12の構成を、各DB21〜24等と関連付けて示すブロック図。 図1中の検索エンジン13の構成を、各DB21〜24等と関連付けて示すブロック図。 図2中の索引構築制御部153の構成を示すブロック図。 図1の情報検索システムにおける索引更新処理の手順を示すフローチャート。
符号の説明
10…データベース管理システム(DBMS、構造化文書管理システム)、12…構造化文書管理部、13…検索エンジン、14…データ更新部、15…索引管理部、16…データ検索部、17…索引参照部、21…構造化文書データベース(構造化文書格納手段)、22…Nグラム索引データベース(索引格納手段)、23…単語索引データベース(索引格納手段)、24…B木索引データベース(索引格納手段)、25…設定ファイル(設定手段)、26…索引種別辞書(索引種別格納手段)、27…ログファイル、151,171…文字列長閾値決定部、152…値抽出部、153…索引構築制御部、153a…値長計算部、153b…比較部、153c…索引種別決定部、154…索引構築部、161…検索式処理部、172…索引参照制御部(索引選択手段)。

Claims (4)

  1. 構造化文書格納手段に格納された構造化文書の検索を高速化するために、構造化文書の索引を構築して索引格納手段に格納する構造化文書管理システムにおいて、
    索引を付与すべき、構造化文書に含まれる各要素毎に、当該要素の名前に基づいて索引種別を決定する索引種別決定手段と、
    前記索引種別決定手段によって前記各要素毎に決定された索引種別に基づいて、当該要素に対応する当該決定された索引種別の索引を構築して前記索引格納手段に格納する索引構築手段と
    外部から与えられる検索式を解析して検索条件を抽出し、その検索条件に合致する検索結果の候補の集合を取得する検索式処理手段と
    を具備し、
    前記索引種別決定手段は、索引を付与すべき、構造化文書に含まれる各要素毎に、当該要素の名前から推定される種別の検索条件であって、前記検索式処理手段によって抽出されて当該要素に対して適用される可能性の最も高い種別の検索条件に基づいて前記索引種別を決定する
    ことを特徴とする構造化文書管理システム。
  2. 構造化文書に含まれる各要素の名前毎に、当該名前に対応付けて、当該名前から推定される種別の検索条件であって、前記検索式処理手段によって抽出されて当該名前の要素に対して適用される可能性の最も高い種別の検索条件に応じた索引種別の情報を格納した索引種別格納手段を更に具備し、
    前記索引種別決定手段は、索引を付与すべき、構造化文書に含まれる各要素毎に、当該要素の名前をキーにして前記索引種別格納手段を参照することで、当該要素の名前に対応付けられている索引種別を、当該要素の値に適用する索引種別として決定する
    ことを特徴とする請求項1記載の構造化文書管理システム。
  3. 構造化文書格納手段に格納された構造化文書の検索を高速化するために、構造化文書の索引を構築して索引格納手段に格納する構造化文書管理システムが実行する構造化文書管理方法であって、
    索引を付与すべき、構造化文書に含まれる各要素毎に、当該要素の名前に基づいて索引種別を決定するステップと、
    前記各要素毎に決定された索引種別に基づいて、当該要素に対応する当該決定された索引種別の索引を構築して前記索引格納手段に格納するステップと、
    外部から与えられる検索式を解析して検索条件を抽出し、その検索条件に合致する検索結果の候補の集合を取得するステップと
    を具備し、
    前記索引種別を決定するステップにおいて、索引を付与すべき、構造化文書に含まれる各要素毎に、当該要素の名前から推定される種別の検索条件であって、前記抽出されて当該要素に対して適用される可能性の最も高い種別の検索条件に基づいて前記索引種別を決定する
    ことを特徴とする構造化文書管理方法。
  4. 構造化文書格納手段に格納された構造化文書の検索を高速化するために、構造化文書の索引を構築して索引格納手段に格納する構造化文書管理システムのCPUによって実行されるプログラムであって、
    前記CPUに、
    索引を付与すべき、構造化文書に含まれる各要素毎に、当該要素の名前に基づいて索引種別を決定するステップと、
    前記各要素毎に決定された索引種別に基づいて、当該要素に対応する当該決定された索引種別の索引を構築して前記索引格納手段に格納するステップと、
    外部から与えられる検索式を解析して検索条件を抽出し、その検索条件に合致する検索結果の候補の集合を取得するステップと
    を実行させ、
    前記索引種別を決定するステップにおいて、索引を付与すべき、構造化文書に含まれる各要素毎に、当該要素の名前から推定される種別の検索条件であって、前記抽出されて当該要素に対して適用される可能性の最も高い種別の検索条件に基づいて前記索引種別を決定する
    ことを特徴とするプログラム。
JP2008137292A 2008-05-26 2008-05-26 構造化文書管理システム、構造化文書管理方法及びプログラム Expired - Fee Related JP4304226B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008137292A JP4304226B2 (ja) 2008-05-26 2008-05-26 構造化文書管理システム、構造化文書管理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008137292A JP4304226B2 (ja) 2008-05-26 2008-05-26 構造化文書管理システム、構造化文書管理方法及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007272912A Division JP4160627B2 (ja) 2007-10-19 2007-10-19 構造化文書管理システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2008198235A JP2008198235A (ja) 2008-08-28
JP4304226B2 true JP4304226B2 (ja) 2009-07-29

Family

ID=39757040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008137292A Expired - Fee Related JP4304226B2 (ja) 2008-05-26 2008-05-26 構造化文書管理システム、構造化文書管理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4304226B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013179441A1 (ja) * 2012-05-31 2013-12-05 株式会社日立製作所 検索サーバ、検索方法及びプログラム

Also Published As

Publication number Publication date
JP2008198235A (ja) 2008-08-28

Similar Documents

Publication Publication Date Title
US11853334B2 (en) Systems and methods for generating and using aggregated search indices and non-aggregated value storage
JP5492187B2 (ja) 編集距離および文書情報を使用する検索結果順位付け
US9195738B2 (en) Tokenization platform
US9135289B2 (en) Matching transactions in multi-level records
US8527556B2 (en) Systems and methods to update a content store associated with a search index
US20170255709A1 (en) Atomic updating of graph database index structures
JP4237813B2 (ja) 構造化文書管理システム
US20070016602A1 (en) Method and apparatus for representation of unstructured data
US20090222407A1 (en) Information search system, method and program
US8423885B1 (en) Updating search engine document index based on calculated age of changed portions in a document
US20120124060A1 (en) Method and system of identifying adjacency data, method and system of generating a dataset for mapping adjacency data, and an adjacency data set
US8229970B2 (en) Efficient storage and retrieval of posting lists
US20080256055A1 (en) Word relationship driven search
JP4091586B2 (ja) 構造化文書管理システム、索引構築方法及びプログラム
JP4439496B2 (ja) 検索処理装置及びプログラム
JP4304226B2 (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP4160627B2 (ja) 構造化文書管理システム及びプログラム
JP2007133682A (ja) 全文検索システム、及び、その全文検索方法
Kim et al. Efficient processing of substring match queries with inverted variable-length gram indexes
JP2008198236A (ja) 構造化文書管理システム
JP2013125429A (ja) 分析対象決定装置
JP5906810B2 (ja) 全文検索装置、プログラム及び記録媒体
JP4521413B2 (ja) データベース管理システム及びプログラム
JP5145202B2 (ja) 文書検索装置および文書検索プログラム
JP6172447B2 (ja) 関連性判定システム、方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090212

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

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

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

Free format text: PAYMENT UNTIL: 20120501

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130501

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130501

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140501

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees