JP4445509B2 - 構造化文書検索システム及びプログラム - Google Patents

構造化文書検索システム及びプログラム Download PDF

Info

Publication number
JP4445509B2
JP4445509B2 JP2007073611A JP2007073611A JP4445509B2 JP 4445509 B2 JP4445509 B2 JP 4445509B2 JP 2007073611 A JP2007073611 A JP 2007073611A JP 2007073611 A JP2007073611 A JP 2007073611A JP 4445509 B2 JP4445509 B2 JP 4445509B2
Authority
JP
Japan
Prior art keywords
node
index
search
value
information
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
JP2007073611A
Other languages
English (en)
Other versions
JP2008234357A (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 JP2007073611A priority Critical patent/JP4445509B2/ja
Priority to US12/046,029 priority patent/US7917500B2/en
Priority to CN2008100951853A priority patent/CN101271474B/zh
Publication of JP2008234357A publication Critical patent/JP2008234357A/ja
Application granted granted Critical
Publication of JP4445509B2 publication Critical patent/JP4445509B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, 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(Extensible Markup Language)が広く利用されている。XMLは、意味付けされたタグによるデータの階層化や構造の自由な拡張性という特長を持つ。これらの特長を生かしたXML利用技術として、XMLデータベース(XMLDB)と呼ばれるデータベースが知られている。XMLデータベースはXMLデータベース管理システム(XMLDBMS)と呼ばれるデータベース管理システムによって制御され、XML文書を格納し、またXML文書(中の指定された構造)を検索する機能を提供する。
XML文書は、XMLを使って記述された文書であり、構造化文書の代表として知られている。XML文書は木構造を構成する要素からなる。要素はノード(タグノード)とも呼ばれ、タグと内容(値)とから構成される。木構造はその根となる要素(ルートノード)から始まり、各要素が親子兄弟の関係で構成される。
XML文書内の要素(ノード)の検索には標準化された問い合わせ言語がよく利用される。問い合わせ言語の主なものはXPathとXQueryである。XPathは、XML文書中の要素(ノード)の位置を指定して検索を行うのに用いられる。
XMLデータベース管理システムを含むXML文書検索システム(構造化文書検索システム)では、検索の高速化のために、例えば特許文献1に記載されているように、値検索の対象となり得るノードに索引が付与される(対応付けられる)。このような索引は、値索引と呼ばれる。
XML文書の一例を図2に示す。図2に示されるXML文書が格納されているデータベース(XMLデータベース)において、titleが「TCP..」であるbookを検索するものとする。この場合、クライアント(クライアント端末)からの問い合わせ(以下、第1の問い合わせと称する)は、例えばXPathで表記するならば、
/bib/book[title=”TCP..”]
となる。
このような第1の問い合わせ(XPath)に基づく検索の高速化のために、値検索の対象となり得るtitleノードに値索引が付与される。値索引は、「TCP..」及び「Adv..」のような値(キー)とノードIDとの組から構成される。ノードIDとはノード毎に割り当てられる固有の番号で、データベースに格納されたXML文書における論理的な保存場所(ノード位置)を示す。
値索引の例を図22に示す。図22において、同図(a)はtitleノードの値索引の例を、同図(b)はlastノード(last nameを値として持つノード)の値索引の例を、同図(c)はfirstノード(first nameを値として持つノード)の値索引の例を、それぞれ示す。なお、これらの値索引は値索引テーブルに保持されるのが一般的である。
クライアントからの問い合わせに基づく検索時は、ノード(要素)の値をキーにして索引がサーチされ、該当する索引が見つかればその値に対応するノードIDを得ることができる。上述の第1の問い合わせ(XPath)の例では、titleノードに付与された値索引から、titleが「TCP..」であるノードが存在し、そのノードIDが3であると分かる(図22(a)参照)。
このように、検索時に索引(値索引)を利用することにより、データベースに格納されたXML文書全体をサーチする(XML文書内を辿る)ことなく、問い合わせの条件に合致するノードが存在するかしないか、また存在するならそのノード位置がどこかが分かるので、検索を高速に行うことができる。
また従来から、構造条件が指定された検索の高速化のために、データベースに格納されたXML文書の構造情報を抽出し、索引化する方法が知られている。このような索引は、構造索引と呼ばれる。構造索引は「/」及び「/bib」のような構造を示すパス文字列と当該構造を持つノードのノードIDの組から構成される。同一のパス文字列に合致するノードが複数ある場合(/bib/bookなど)、同じパス文字列に対し、複数のノードIDが対応する。このような構造索引のデータ構造は、後述する本発明の実施形態で適用される構造索引と同様であるため、必要ならば図6を参照されたい。
上述の第1の問い合わせ(XPath)の例では、値索引により値検索の条件に合致するノードが1つ(ノードID=3のノード)見つけられる。しかし、値索引だけでは、このノードがXPathで与えられた構造条件(/bib/book/title)に合致しているか分からない。そこで、構造索引を利用して、構造条件に合致するかが調べられる。図6の構造索引(構造索引テーブル)からは、構造条件(/bib/book/title)に合致するノード、即ち/bib/book/titleという構造を持つノードが存在し、それらのノードIDが3,13,26であることが分かる。ノードID=3が含まれているので、ノードID=3のノードは構造条件と値検索の条件の両方を満たす。よってこのノードが検索条件を全て満たすと判断できる。
このように、検索時に値索引と構造索引とを利用することにより、データベースに格納されたXML文書全体をサーチすることなく、構造条件を含む問い合わせの条件に合致するノードが存在するかしないか、また存在するならそのノード位置がどこかが分かるので、検索を高速に行うことができる。
特開2006−18584号公報(段落0013)
しかしながら、上記従来技術では、値検索の対象が複数指定された問い合わせ、例えば値検索の対象となるノード(タグノード)が「and」によって複数指定された問い合わせを処理する場合、つまり複数ノードの「and」を含む条件での検索の場合、データベースに格納されたXML文書全体をサーチする(XML文書内を辿る)処理が必要となるために検索の遅延を招く。以下、このような検索について、次のような第2の問い合わせ(xPath)
/bib/book/author[last=”Stevens” and first=”W.”]
に基づき、「last=”Stevens”」かつ「first=”W.”」であるauthorを検索する場合を例に説明する。
前述したように、検索の対象となり得るノードに対しては値索引が付与される。値索引は、「Stevens」及び「Buneman」のような値(キー)とノードIDとの組から構成される。第2の問い合わせの場合、図22(b),(c)に示されるように、lastノード及びfirstノードにそれぞれ値索引を付与することによって、last=”Stevens”及びfirst=”W.”のようなノードを高速に検索できる。
しかし、第2の問い合わせの示す検索条件は、「〜かつ〜であるauthor」というand条件である。このため、値索引から検索されたlastノードとfirstノードのうち、同じ親ノード(autherノード)を持つもの、つまり同じ親ノード(autherノード)と繋がっているものを選ぶ必要がある。ところが、このような繋がりは、値索引からは判定できない。そのため従来技術では、検索されたlastノードとfirstノードからデータベースに格納されているXML文書全体を実際にサーチしなければならず、検索の遅延を招く。
従来技術では、このような遅延は、構造索引を用いた検索においても以下に述べるように発生する。
第2の問い合わせに基づいて値索引から検索されるlastノードのノードID、つまり、last=”Stevens”の値検索の条件を満たすノードのノードIDは、16,29である(図22(b)参照)。また、値索引から検索されるfirstノードのノードID、つまり、first=”W.”の値検索の条件を満たすノードのノードIDは、8,18,23である(図22(c)参照)。
値索引から、lastノードのノードIDの集合(候補集合)及びfirstノードのノードIDの集合(候補集合)が取得されると、例えば、これらの2つの候補集合に含まれるノードIDが、構造条件(lastノードに関しては/bib/book/author/last、firstノードに関しては/bib/book/author/first)を満たすかが構造索引を使って調べられる。この例では、全てのノードが構造条件を満たすことが分かる。
次に、「〜かつ〜であるauthor」というand条件のため、索引から絞り込まれたlastノード及びfirstノードの組み合わせのうち、同じ親ノード(authorノード)を持つものを選び出さす必要がある。この例では、and条件を満たすノードは、last=”Stevens”がノードID=16のノードとfirst=”W.”がノードID=18のノードとの組み合わせだけである。
ところが、値索引及び構造索引からはlastノードとfirstノードとが同じ親ノードを持つかを判定できない。そのため従来技術では、データベースに格納されているXML文書全体を実際にサーチしなければならず、検索の遅延を招く。
本発明は上記事情を考慮してなされたものでその目的は、値検索の対象が複数指定された問い合わせを処理するような場合でも、データベースに格納されている構造化文書をサーチしなくても済み、検索を高速化できる構造化文書検索システム及びプログラムを提供することにある。
本発明の1つの観点によれば、構造化文書検索システムが提供される。このシステムは、データベースに格納された構造化文書に含まれているノードに対応付けられる索引であって、当該ノードの位置情報を含むノード情報及び当該ノードを含む前記構造化文書の木構造上で当該ノードと一定の関係のある予め指定されたノードである関連ノードの位置情報を含む索引を格納する索引格納手段と、クライアントから与えられる検索要求の示す検索条件に合致する索引を前記索引格納手段から検索する検索処理手段であって、前記検索条件が複数ノードの値検索で、かつ当該複数のノードに共通な関連ノードを検索対象としている場合に、前記値検索の条件毎に前記索引格納手段から当該条件に合致する索引を検索し、前記値検索の条件毎に検索された索引から一致する関連ノードの位置情報を探すことにより、前記検索対象のノードの候補を絞る検索処理手段とを具備する。
本発明によれば、データベースに格納された構造化文書に含まれているノードに対応付けられる索引に、当該ノードの位置情報を含むノード情報に加えて、当該ノードと一定の関係のある予め指定された関連ノードの位置情報を持たせることにより、値検索の対象として複数ノードが指定され、その複数のノードに共通な関連ノードを検索対象する問い合わせを処理する場合にも、索引格納手段に格納されている索引を検索するだけで処理が完了し、データベースに格納された構造化文書をサーチする必要がなことから、高速に検索できる。
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る構造化文書検索システム50を含むクライアント−サーバシステムのハードウェア構成を示すブロック図である。クライアント−サーバシステムは、主として、データベースサーバ10と、複数のクライアント端末(クライアント)とから構成される。複数のクライアント端末はクライアント端末20を含む。クライアント端末20上では、データベースサーバ10を利用するアプリケーション(アプリケーションプログラム)が動作する。クライアント端末20を含む複数のクライアント端末は、ローカルエリアネットワーク(LAN)のようなネットワーク30を介してデータベースサーバ10と接続されている。なお、図1では、クライアント端末20以外のクライアント端末は省略されている。
データベースサーバ10は、主メモリのようなメモリ11を有するコンピュータ(データベースサーバコンピュータ)である。データベースサーバ10は、ハードディスクドライブのような外部記憶装置40と接続されている。この外部記憶装置40は、データベース管理プログラム41及びデータベース42を格納する。本実施形態において構造化文書検索システム50は、データベースサーバ10及び外部記憶装置40(に格納されているデータベース42)によって実現される。
データベース管理プログラム41は、データベースサーバ10によるデータベース42の管理、及びクライアント端末からのXPath,XQuery等を用いた問い合わせに基づく検索処理に用いられる。データベース42は構造化文書としての例えばXML文書(XML形式の電子文書)を格納するXML文書データベース(構造化文書データベース)である。
図2は、データベース42に格納されているXML文書の集合の一例を示す。図2の例では、データベース42には、XML文書101〜103を含むXML文書群が格納されている。データベース42に格納されるXML文書に含まれている各ノードは、従来と同様に、当該ノードの位置を示す一意のノードIDを持つ。
図3は図1に示される構造化文書検索システム50の主として機能構成を示すブロック図である。構造化文書検索システム50は、データベース管理システム51及びデータベース42から構成される。データベース42には、XML文書の集合に加えて、索引付与テーブル421、値索引テーブル422及び構造索引テーブル423が格納される。
索引付与テーブル421は、データベース42に格納されるXML文書に含まれているノードであって、値索引が付与(設定)される(対応付けられる)べきノードに関する情報(索引付与情報)を管理するのに用いられる。値索引テーブル422は、索引付与テーブル421によって管理されているノード(値検索の対象となり得るノード)に付与される(対応付けられる)値索引(索引情報)を保持する。この値索引は、詳細を後述するように、ノード(要素)の値(キー)、当該ノードのノードID及び関連ノード(ここでは親ノード)のノードIDの組を含む。構造索引テーブル423は、データベース42に格納されるXML文書に含まれているノードの構造を表す構造索引を保持する。
データベース管理システム51は、要求処理部52、検索処理部53、索引管理部54、文書登録処理部55、データベース操作部56、索引付与テーブル57、値索引テーブル58及び構造索引テーブル59を含む。
要求処理部52は、クライアント端末20からの要求(コマンド)を受け付けて当該要求の種別を判別し、その判別結果に基づいて当該要求を検索処理部53、索引管理部54または文書登録処理部55に送出する。ここでは要求処理部52は、クライアント端末20からの要求が、検索要求ならば当該検索要求を検索処理部53に送出し、索引設定要求ならば当該索引設定要求を索引管理部54に送出し、文書登録要求ならば当該文書登録要求を文書登録処理部55に送出する。
検索処理部53は、クライアント端末20からの検索要求を要求処理部52を介して受け取り、索引管理部54(によって管理されている値索引テーブル58)を利用して当該検索要求に含まれている問い合わせ(クエリ)に基づく検索処理を行う。検索処理部53は、値索引検索部531、構造索引検索部532及び検索結果取得部533を含む。
値索引検索部531は検索要求(問い合わせ)の示す検索条件に値が合致する値索引を値索引テーブル58から検索する。構造索引検索部532は、検索要求の示す検索条件に構造が合致する構造索引を構造索引テーブル59から検索する。検索結果取得部533は、値索引検索部531及び構造索引検索部532による索引検索結果に基づいて検索要求に対する検索結果を取得する。
索引管理部54は、クライアント端末20からの索引設定要求を要求処理部52を介して受け取り、当該索引設定要求に基づく索引設定処理を行う。この索引設定処理では、索引設定要求で指定された値索引が付与(設定)されるべき、XML文書内の要素(ノード)の情報が索引付与テーブル57に追加される。索引管理部54はまた、値索引が付与(設定)されているノードの情報を索引付与テーブル57を用いて管理する。索引管理部54は更に、検索処理部53による値検索処理時に、当該検索処理部53からの要求を受けて、値検索の条件となっているノードについて値索引テーブル58に基づいて索引情報のリストを作成し、当該リストを検索処理部53に渡す。
文書登録処理部55は、クライアント端末20からの文書登録要求を要求処理部52を介して受け取り、当該文書登録要求で指定されたXML文書をデータベース42に登録(格納)する文書登録処理を行う。文書登録処理部55は文書登録処理において、要求処理部52に登録されるべきXML文書に含まれているノードのうち、索引付与テーブル57によって索引設定が示されているノードに付与する値索引を作成して値索引テーブル58に追加する。
データベース操作部56は、検索処理部53、索引管理部54及び文書登録処理部55がデータベース42にアクセスするのを可能とするインタフェースとして機能して、当該データベース42に対する処理を行う。
索引付与テーブル57、値索引テーブル58及び構造索引テーブル59は、それぞれ、データベース42に格納されている索引付与テーブル421、値索引テーブル422及び構造索引テーブル423に対応する。本実施形態では、構造化文書検索システム50の立ち上がり時に、データベース42から索引付与テーブル421、値索引テーブル422及び構造索引テーブル423が、それぞれ索引付与テーブル57、値索引テーブル58及び構造索引テーブル59として図1に示されるメモリ11にコピーされる。構造化文書検索システム50の稼動中は、索引付与テーブル57、値索引テーブル58及び構造索引テーブル59を対象に参照/更新が行われる。索引付与テーブル57、値索引テーブル58及び構造索引テーブル59の更新内容は、それぞれ、定期的に或いは随時(例えば構造化文書検索システム50の負荷が低いときに)索引付与テーブル421、値索引テーブル422及び構造索引テーブル423に反映される。
図4は、図3に示される索引付与テーブル57のデータ構造例を示す。本実施形態において、索引付与テーブル57のエントリは、パス(パス文字列)及び関連ノード種類の組を設定するのに用いられる。
パスは、該当するノードの構造を(当該ノードに至るルートノードからの経路で)示す絶対パスである。
関連ノード種類は、対応するパスで指定されるノード(指定ノード)と当該ノードを含むXML文書の階層構造(木構造)上で一定の関係のある(つまり当該ノードと関連する)ノード(関連ノード)の種類を示す。ここでは、検索の対象となる複数のノードを検索して、その複数のノードに共通の種類の関連ノードを検索結果として取得したい場合に、その種類がユーザによって指定される。関連ノードとは、前述したように、指定ノードを含むXML文書の階層構造(木構造)上で当該ノードと一定の関係のあるノードを指し、例えば親ノード、兄弟ノードのようなノードである。関連ノードは、指定ノードを含むXML文書の木構造上で当該指定ノードから辿ることができる。本実施形態では説明の簡略化のために、関連ノード種類が親ノードのみに限られるものとする。
図5は、図3に示される値索引テーブル58のデータ構造例を示す。本実施形態において、値索引テーブル58は、索引付与テーブル57を用いて管理されるノードに付与される値索引(索引情報)を保持するのに用いられる。この値索引は、該当するノードの値(キー)、当該ノードのノードID及び当該ノードと関連する関連ノードのノードID(関連ノードID)を含む。値索引が従来技術と異なる点は、関連ノードIDが追加されていることである。図5の値索引テーブル58は、図2に示すXML文書101〜103中のlastノード及びfirstノードに付与されている値索引を含む。
図6は、図3に示される構造索引テーブル59のデータ構造例を示す。構造索引テーブル59は、データベース42に格納されるXML文書に含まれているノードの構造を表す構造索引を保持するのに用いられる。本実施形態で適用される構造索引は、従来技術と同様に、構造を表すパス(パス文字列)及び当該パスで表される構造のノードのノードIDの組を含む。
図6の構造索引テーブル59は、図2に示すXML文書101〜103中の各ノードの構造に付与されている(各ノードに対応付けられている)構造索引、つまり各ノードの構造に対応した構造索引を含む。同一のパス(パス文字列)に複数のノードIDが対応する場合、構造索引テーブル59には、当該同一のパスに対応付けて、ノードIDと関連ノードIDとの組み合わせが複数登録される。このような例として、図2のXML文書101〜103のように、同じ構造を持つXML文書が複数登録された場合が挙げられる。
本実施形態において、要求処理部52、検索処理部53、索引管理部54、文書登録処理部55及びデータベース操作部56は、図1のデータベースサーバ10が外部記憶装置40に格納されているデータベース管理プログラム41を当該サーバ10内のメモリ11に読み込んで実行することにより実現されるものとする。このプログラム41は、コンパクトディスク、或いはROMのような、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム41が、ネットワーク30を介してデータベースサーバ10にダウンロードされても構わない。
次に、図3の構造化文書検索システム50の動作について説明する。
<索引設定処理>
まず、構造化文書検索システム50における索引設定処理について、図7のフローチャートを参照して説明する。
今、クライアント端末20の表示画面に例えば図2に示されるような木構造のXML文書101〜103が表示されているものとする。図2の例では、これらのXML文書101〜103は、ファイルシステムのフォルダ或いはディレクトリに相当する、”bib”と呼ばれるコレクションに格納して管理されている。ここでは、XML文書101〜103の最上位のノードはbookノードであり、これらのbookノードの親ノードはbibノードである。図2の例では、bibノードはXML文書101〜103を含む木構造のルートノードをなしている。
さて、図2に示されるような木構造のXML文書101〜103が表示されている状態で、ユーザが、任意のノードを索引が作成されるべきノードとして例えばマウス操作により指定したものとする。このノード指定状態で、ユーザがクライアント端末20を操作して、索引設定を指示したものとする。この際、関連ノードの指定が必要ならば、ユーザは所望の関連ノードの種類を指定する。
するとクライアント端末20は、ユーザからの指示に従い、構造化文書検索システム50に対して、指定のノードに索引を設定(付与)させるための索引設定要求をネットワーク30経由で送出する(ステップS1)。この索引設定要求は、設定される索引が付与されるべきノードの構造を表すパス(絶対パス)、及び関連ノードの種類の情報を含む。
構造化文書検索システム50内の要求処理部52は、クライアント端末20からの索引設定要求を受け取ると、当該索引設定要求を索引管理部54に渡して索引設定を要求する(ステップS2)。索引管理部54は、クライアント端末20からの索引設定要求を要求処理部52を介して受け取ると、当該要求で指定されたノード(つまり索引が設定されべきノード)に関する索引付与情報を索引付与テーブル57に追加する(ステップS3)。ここでは、指定されたノードに関する索引付与情報として、当該ノードの構造を表すパス、及び当該ノードに関連するノード(関連ノード)の種類が索引付与テーブル57に追加される。
したがって、例えば指定ノードが図2におけるノードID=6のノードであり、指定された関連ノードの種類が親ノードであるならば、索引付与テーブル57には、パス(パス文字列)として「/bib/book/author/last」を示し、関連ノードの種類として「親ノード」を示す索引付与情報が追加される(図4参照)。同様に、指定ノードが図2におけるノードID=8のノードであり、指定された関連ノードの種類が親ノードであるならば、索引付与テーブル57には、パスとして「/bib/book/author/first」を示し、関連ノードの種類として「親ノード」を示す索引付与情報が追加される(図4参照)。
<文書登録処理>
次に、索引設定後の文書登録処理について、図8のフローチャートを参照して説明する。
今、ユーザが、データベース42に登録されるべきXML文書を指定して、当該XML文書の登録を指示するための操作を、クライアント端末20上で行ったものとする。するとクライアント端末20は、構造化文書検索システム50に対して、指定のXML文書をデータベース42に登録させるための文書登録要求をネットワーク30経由で送出する(ステップS11)。
要求処理部52は、クライアント端末20からの文書登録要求を受け取ると、当該文書登録要求を文書登録処理部55に渡してXML文書の登録を要求する(ステップS12)。
文書登録処理部55は、クライアント端末20からの文書登録要求を要求処理部52を介して受け取ると、当該要求で指定されたXML文書のパース(構文解析)を開始する(ステップS13)。文書登録処理部55は、XML文書のパースによって当該XML文書からノードが抽出される都度、そのノードについて次のように処理を行う(ステップS14)。XML文書から抽出されるノードの順序は、当該XML文書に出現するノードの順序に一致する。
まず文書登録処理部55は、抽出されたノードの情報(ここでは、抽出されたノードの構造を表すパス)が索引付与テーブル57に登録されているかを、索引管理部54に問い合わせる(ステップS15)。すると索引管理部54は、索引付与テーブル57を参照して、問い合わせられたノードの構造を表すパス(パス文字列)が索引付与テーブル57に登録されているかを調べ、その結果を文書登録処理部55に通知する。もし、登録されている場合、索引管理部54は、問い合わせられたノードの構造を表すパスと組を成して索引付与テーブル57に登録されている関連ノードの種類も文書登録処理部55に通知する。
文書登録処理部55は、索引管理部54からの通知を受けて、抽出されたノード(の構造を表すパス)が索引付与テーブル57に登録されているかを判定する(ステップS16)。もし登録されているならば、文書登録処理部55は索引管理部54からの通知に基づき、抽出されたノードの構造を表すパスと組を成して索引付与テーブル57に登録されている関連ノードの種類を確認する。
次に文書登録処理部55は、抽出されたノードの値が値索引テーブル58に登録されているかを、索引管理部54に問い合わせる(ステップS17)。すると索引管理部54は、値索引テーブル58を参照して、問い合わせられた値が値索引テーブル58に登録されているかを調べ、その結果を文書登録処理部55に通知する。文書登録処理部55は、索引管理部54からの通知を受けて、抽出されたノードの値が値索引テーブル58に登録されているかを判定する(ステップS18)。
もし、登録されていないならば(ステップS18)、文書登録処理部55は、抽出されたノードの値と当該ノードのノードIDと確認された種類の関連ノード(ここでは親ノード)のノードIDとの組を、索引管理部54により値索引テーブル58に追加させる(ステップS19)。ここで、関連ノードが本実施形態のように親ノードである場合、当該関連ノードは既に抽出されている。これは、関連ノードが、例えば兄ノードの場合、或いは親ノードの更に親ノードの場合(つまり祖父母ノードの場合)にも同様である。もし、関連ノードが例えば弟ノードである場合には、文書登録処理部55は木構造を辿って弟ノードを抽出する。これに対し、抽出されたノードの値が登録されているならば(ステップS18)、文書登録処理部55は、当該ノードのノードIDと確認された種類の関連ノード(ここでは親ノード)のノードIDとの組を、登録されている値に対応付けて、索引管理部54により値索引テーブル58に追加させる(ステップS20)。
文書登録処理部55はステップS19またはS20を実行すると、抽出されたノードの構造を表すパス(パス文字列)が構造索引テーブル59に登録されているかを、索引管理部54に問い合わせる(ステップS21)。また文書登録処理部55は、抽出されたノード(の構造を表すパス)が索引付与テーブル57に登録されていないと判定された場合には(ステップS16)、直ちに上記ステップS21の問い合わせを行う。
索引管理部54は、文書登録処理部55からの問い合わせを受けて構造索引テーブル59を参照して、問い合わせられたノードの構造を表すパス(パス文字列)が構造索引テーブル59に登録されているかを調べ、その結果を文書登録処理部55に通知する。文書登録処理部55は、索引管理部54からの通知を受けて、抽出されたノードの構造を表すパスが構造索引テーブル59に登録されているかを判定する(ステップS22)。
もし、登録されていないならば(ステップS22)、文書登録処理部55は、抽出されたノードの構造を表すパス(パス文字列)と当該ノードのノードIDとの組を、索引管理部54により構造索引テーブル59に追加させる(ステップS23)。これに対し、抽出されたノードの構造を表すパスが登録されているならば(ステップS22)、文書登録処理部55は、当該ノードのノードIDを当該パスに対応付けて、索引管理部54により構造索引テーブル59に追加させる(ステップS24)。
文書登録処理部55はステップS23またはS24を実行すると、抽出されたノード(つまりXML文書の一部)をデータベース42に格納するドキュメント格納処理を行う(ステップS25)。
文書登録処理部55は、ドキュメント格納処理(ステップS25)を行うと、クライアント端末20から要求されたXML文書のパースが全て終了したか、つまりXML文書に含まれている全てのノードについて処理をし終えたかを判定する(ステップS26)。もし、未処理のノードが残っているならば、文書登録処理部55は上記ステップS14に戻り、次のノードについて処理を継続する。
以上の処理により、索引付与テーブル57に登録されている構造のノードについて、当該ノードに付与される値索引が値索引テーブル58に追加される。この値索引は、従来の値索引とは異なり、ノード(要素)の値及び当該ノードのノードIDに加えて、関連ノード(ここでは親ノード)のノードID(関連ノードID)を含む。図5に示される値索引テーブル58は、図2に示されるXML文書101〜103がデータベース42に登録された際に追加された値索引を含む。
<検索処理>
次に、値索引テーブル58に登録されている値索引及び構造索引テーブル59に登録されている構造索引を利用した検索処理について、図9A及び図9Bのフローチャートを参照して説明する。
今、ユーザがクライアント端末20を操作することにより、当該クライアント端末20から構造化文書検索システム50に対して、ネットワーク30経由で検索要求が送出されたものとする(ステップS31)。この検索要求は、例えばXPathで記述された問い合わせ(クエリ)を含むものとする。このとき、データベース42には、図2に示す構造のXML文書101〜103が格納されているものとする。また、図5に示される値索引テーブル58は、前述したように、図2に示されるXML文書101〜103がデータベース42に登録された際に追加された値索引を含むものとする。
要求処理部52は、クライアント端末20からの検索要求を受け取ると、当該検索要求を検索処理部53に渡して検索を要求する(ステップS32)。検索処理部53は、検索要求を解析する(ステップS33)。ここでは、検索要求に含まれる問い合わせが、発明が解決しようとする課題の欄で述べた第2の問い合わせ(xPath)
/bib/book/author[last=”Stevens” and first=”W.”]
であるものとする。つまり、クライアント端末20からの検索要求によって、「last=”Stevens”」かつ「first=”W.”」であるauthor(親ノード)を検索することが要求されているものとする。ここで、「last=”Stevens”」、つまり「値が”Stevens”であるlastノードであること」は、値検索の1つの条件である。同様に、「first=”W.”」、つまり「値が”W.”であるfirstノードであること」も、値検索の1つの条件である。
検索処理部53は、ステップS23での解析結果に基づき、要求された検索が索引設定されている複数ノードの値検索で、かつ要求された検索対象ノードが親ノードであるかを判定する(ステップS34)。本実施形態では、ステップS34の判定条件を満たす。この場合、検索処理部53内の値索引検索部531は値索引テーブル58を利用した検索を次のように行う。
値索引検索部531は、複数の値検索の条件の中から、未処理の条件を1つ選択する(ステップS35)。ここでは、「last=”Stevens”」が選択されたものとする。値索引検索部531は、選択された値検索の条件に合致するノード(値が”Stevens”であるlastノード)についての値索引のリストを索引管理部54に対して要求する(ステップS36)。以下の説明では、選択された値検索の条件に合致するノードを候補ノードと称する。
索引管理部54は、値索引検索部531からの要求に応じて値索引テーブル58を参照することにより、要求された候補ノード(値が”Stevens”であるlastノード)の値索引のリストを第1の候補ノードリストとして作成する。第1の候補ノードリストは、候補ノードの値、及び、当該値を持つ全てのノードのノードIDと当該ノードの関連ノード(親ノード)のノードID(関連ノードID)との組を含む。なお、ノードIDと関連ノードIDとの組毎に、そのノードの値(ここでは”Stevens”)を持たせても良い。つまり、第1の候補ノードリストが、値とノードIDと関連ノードIDとの組のリストであっても構わない。
索引管理部54は、値索引テーブル58に基づいて作成された第1の候補ノードリストを検索処理部53内の値索引検索部531に通知する。これにより値索引検索部531は、通知された第1の候補ノードリストを取得する(ステップS37)。つまり値索引検索部531は、値検索の条件に合致する値索引を、索引管理部54を介して値索引テーブル58から検索することにより第1の候補ノードリストを取得する。
値索引検索部531は、第1の候補ノードリストを取得するとソート手段として機能して、当該第1の候補ノードリストを、例えば候補ノードのノードID及び関連ノードID(親ノードID)の昇順にソートする(ステップS38)。ここでは、候補ノードのノードIDが優先される。ソートされた第1の候補ノードリストは、図1に示すデータベースサーバ10に含まれているメモリ11の所定領域に格納される。
値索引検索部531はステップS38を実行すると、全ての値検索の条件について処理を行ったかを判定する(ステップS39)。もし、未処理の値検索の条件が残っているならば、値索引検索部531はステップS35に戻って、未処理の条件を1つ選択する。ここでは、値が「first=”W.”」が選択されたものとする。
値索引検索部531は、選択された値検索の条件に合致する候補ノード(値が”W.”であるfirstノード)について、上記ステップS36以降の処理を実行する。これにより値索引検索部531は、候補ノード(値が”W.”であるfirstノード)の値索引(索引情報)のリストを第1の候補ノードリストとして取得して、当該リストをソートする。ソートされた第1の候補ノードリストは、図1に示すメモリ11の所定領域に格納される。
図10は、図5に示される値索引テーブル58の場合に取得される、値が”Stevens”であるlastノードの第1の候補ノードリスト111と、値が”W.”であるfirstノードの第1の候補ノードリスト112とを示す。図11は、図10に示す候補ノードリスト111及び112に含まれている、それぞれ、値が”Stevens”であるlastノード及び値が”W.”であるfirstノードの、図2に示されるXML文書101〜103における位置を示す。また、図11において、白抜きの矢印は、値が”Stevens”であるlastノードまたは値が”W.”であるfirstノードの関連ノード(親ノード)を指し示す。
値検索の条件となっている複数ノードの全てについて、検索処理部53内の値索引検索部531による処理が行われると(ステップS39)、検索処理部53内の構造索引検索部532が起動される。構造索引検索部532は、複数の値検索の条件の中から未処理の条件を1つ選択し(ステップS40)、選択された条件に含まれている構造条件を抽出する(ステップS41)。ここでは、値検索の条件である「値が”Stevens”であるlastノード」に関する構造条件(を表すパス)「/bib/book/author/last」が抽出されたものとする。
構造索引検索部532は、抽出された構造条件(/bib/book/author/last)に合致するノード(候補ノード)についての構造索引のリストを索引管理部54に対して要求する(ステップS42)。
索引管理部54は、構造索引検索部532からの要求に応じて構造索引テーブル59を参照することにより、要求された(選択された)構造条件(/bib/book/author/last)に合致する候補ノードの構造索引のリストを第2の候補ノードリストとして作成する。第2の候補ノードリストは、構造条件に一致するパス(パス文字列)、及び当該パスで特定される全てのノード(候補ノード)のノードIDを含む。なお、ノードID毎に、選択された構造条件を表すパス(ここでは/bib/book/author/last)を持たせても良い。つまり、第2の候補ノードリストが、パスとノードIDとの組のリストであっても構わない。
索引管理部54は、作成された第2の候補ノードリストを検索処理部53内の構造索引検索部532に通知する。これにより構造索引検索部532は、通知された第2の候補ノードリストを取得する(ステップS43)。つまり構造索引検索部532は、値検索の条件に含まれている構造条件に合致する構造索引を、索引管理部54を介して構造索引テーブル59から検索することにより第2の候補ノードリストを取得する。
構造索引検索部532は、第2の候補ノードリストを取得するとソート手段として機能して、当該第2の候補ノードリストを、例えば候補ノードのノードIDの昇順にソートする(ステップS44)。ソートされた第2の候補ノードリストは、図1に示すデータベースサーバ10に含まれているメモリ11の所定領域に格納される。
構造索引検索部532はステップS44を実行すると、全ての値検索の条件について処理を行ったかを判定する(ステップS45)。もし、未処理の値検索の条件が残っているならば、構造索引検索部532はステップS40に戻って未処理の条件を1つ選択し、選択された条件に含まれている構造条件を抽出する(ステップS41)。ここでは、「値が”W.”であるfirstノード」に関する構造条件(を表すパス)「/bib/book/author/first」が抽出されたものとする。
構造索引検索部532は、抽出された構造条件「/bib/book/author/first」について上記ステップS42以降の処理を実行する。これにより構造索引検索部532は、構造条件「/bib/book/author/first」に合致する候補ノードについての構造索引のリストを第2の候補ノードリストとして取得して、当該リストをソートする。ソートされた第2の候補ノードリストは、図1に示すメモリ11の所定領域に格納される。
図12は、図6に示される構造索引テーブル59の場合に取得される、構造条件「/bib/book/author/last」に合致するlastノードの第2の候補ノードリスト113と、構造条件「/bib/book/author/first」に合致するfirstノードの第2の候補ノードリスト114とを示す。
値検索の条件となっている複数ノードの全てについて、検索処理部53内の構造索引検索部532による処理が行われると(ステップS45)、検索処理部53内の検索結果取得部533が起動される。検索結果取得部533は、値検索の条件毎に、その条件に関して値索引テーブル58に基づいて取得された第1の候補ノードリストと構造索引テーブル59に基づいて取得された第2の候補ノードリストとを、候補ノードのノードIDを用いてマージする(ステップS46)。ここでは検索結果取得部533は、ノードIDをキーにして、候補ノードリスト間の論理積をとる、いわゆるANDマージを行う。
これにより、図13に示す第3の候補ノードリスト115及び116が生成される。第3の候補ノードリスト115は、図10に示す第1の候補ノードリスト111及び図12に示す第2の候補ノードリスト113のANDマージ結果であり、当該リスト111及び113に共通に含まれているノードIDについて、当該ノードIDと関連ノードIDとの組を含むと共に、対応するノード(要素)に共通の当該ノードの値を含む。第3の候補ノードリスト116は、図10に示す第1の候補ノードリスト112及び図12に示す第2の候補ノードリスト114のANDマージ結果であり、当該リスト112及び114に共通に含まれているノードIDについて、当該ノードIDと関連ノードIDとの組を含むと共に、対応するノード(要素)に共通の当該ノードの値を含む。
検索結果取得部533はステップS46を実行すると、値検索の条件毎に生成された第3の候補ノードリストの間で関連ノードID(ここでは親ノードID)が一致する組み合わせを探す(ステップS47)。ここでは検索処理部53aは、第3の候補ノードリストに含まれている関連ノードIDをキーとして値検索の条件毎に生成された第3の候補ノードリストの間のANDマージをとることにより、関連ノードID(親ノードID)が一致する組み合わせを探す。図14は、図13に示す候補ノードリスト115及び116の場合の関連ノードID(親ノードID)が一致する組み合わせのリスト(検索結果リスト)117を示す。ここでは、関連ノードID=15だけが一致する。このノードID=15は、図11からも明らかなように、クライアント端末20からの検索要求によって要求された、「last=”Stevens”」かつ「first=”W.”」であるauthorのノードIDである。
検索結果取得部533はステップS47のANDマージによって取得された検索結果リストに含まれている関連ノードID、つまり値検索の条件毎に生成された第3の候補ノードリストの間で一致する関連ノードIDを、クライアント端末20からの検索要求に対する検索結果として、要求処理部52経由でクライアント端末20に返す(ステップS48)。図14に示す検索結果リスト117が取得された場合、関連ノードID=15、つまり「last=”Stevens”」かつ「first=”W.”」であるauthorのノードID=15が、検索結果としてクライアント端末20に返される。
このように本実施形態においては、値索引テーブル58に保持される値索引に、関連ノード(親ノード)のノードID(関連ノードID)を持たせることにより、複数ノードの値検索で、かつ要求された検索対象ノードが当該複数ノードの関連ノード(親ノード)である検索処理を、データベース42内のXML文書全体をサーチすることなく、当該値索引テーブル58を参照する索引操作のみで実行できる。このため本実施形態においては、上述の検索処理を高速に検索することができる。
なお、複数ノードの値検索で、かつ要求された検索対象ノードが当該複数ノードの関連ノード(親ノード)である条件に合致しない検索の場合(ステップS34)、検索処理部53は従来の検索処理(ステップS50)を実行する。
上記実施形態では、索引付与テーブル57によって管理されるノード(lastノード及びfirstノード)の関連ノードの種類が親ノードである場合を前提としている。しかし、索引付与テーブル57によって管理されるノード(lastノード及びfirstノード)の関連ノードの種類を、親ノード以外とすることも可能である。例えば「last=”Stevens”」かつ「first=”W.”」であるauthorの本(book)のタイトル(title)を検索結果として欲しい場合、ユーザは索引設定要求で、関連ノードとして親ノードの兄ノード(つまり伯父ノード)を指定することにより、ユーザの使用する検索条件に適した関連ノードの情報を値索引テーブル58に保持される値索引に持たせることができる。これにより、検索条件(検索対象ノード)が変化しても高速な検索が可能となる。
[変形例]
次に、上記実施形態の変形例(特に構造化文書検索システム50の変形例)について、図面を参照して説明する。
図15は、本変形例で適用される構造化文書検索システム50aの主として機能構成を示すブロック図である。図15において、図3と同様の部分には同一符号を付してある。
構造化文書検索システム50aは上記実施形態における構造化文書検索システム50に相当する。構造化文書検索システム50aは、構造化文書検索システム50と同様に、図1に示されるデータベースサーバ10及び外部記憶装置40(に格納されているデータベース42)によって実現されるものとする。
構造化文書検索システム50aは、データベース管理システム51a及びデータベース42から構成される。本変形例においてデータベース42には、XML文書の集合、索引付与テーブル421、値索引テーブル422a及び構造索引テーブル423aが格納される。
値索引テーブル422aは従来の値索引テーブルと同様のデータ構造を有しており、上記実施形態で適用された値索引テーブル422と異なって関連ノードIDを持たない。構造索引テーブル423aは、索引付与テーブル421によって管理されているノード(値検索の対象となり得るノード)に対応付けられる(付与される)構造索引を保持する。この構造索引は、詳細を後述するように、ノード(要素)の構造を表すパス(パス文字列)、当該パスで特定されるノードのノードID、及び当該ノードと関連する関連ノード(ここでは親ノード)のノードIDの組を含む。
データベース管理システム51aが図3の構造化文書検索システム50と異なる点は、検索処理部53、値索引テーブル58及び構造索引テーブル59に代えて、それぞれ、検索処理部53a、値索引テーブル58a及び構造索引テーブル59aが用いられることである。値索引テーブル58a及び構造索引テーブル59aは、それぞれ、データベース42に格納されている値索引テーブル422a及び構造索引テーブル423aに対応する。値索引テーブル422a及び構造索引テーブル423aは、構造化文書検索システム50aの立ち上がり時に、それぞれ、値索引テーブル58a及び構造索引テーブル59aとして図1に示されるメモリ11にコピーされる。
検索処理部53aが上記実施形態における検索処理部53と異なる点は、値索引検索部531、構造索引検索部532及び検索結果取得部533に加えて、ノード数判定部534及び文書サーチ部535を含むことである。ノード数判定部534は、値索引検索部531が取得する第1の候補ノードリストに含まれている候補ノードの総数が予め定められた一定数以上であるかを判定する。文書サーチ部535は、候補ノードの総数が一定数未満の場合に、データベース42に格納されているXML文書をサーチすることにより、構造条件に合致する候補ノードのリスト(第4の候補リードリスト)を取得して、これらのリストの間で関連ノードIDが一致する組み合わせを探す。
図16は、図15に示される値索引テーブル58aのデータ構造例を示す。値索引テーブル58aは、上記実施形態における値索引テーブル58と同様に、索引付与テーブル57を用いて管理されるノードに付与される値索引を保持する。但し、値索引テーブル58aに保持される値索引は、値索引テーブル58に保持される値索引と異なり、関連ノードIDを持たない。図16の値索引テーブル58aは、図2に示すXML文書101〜103中のlastノード及びfirstノードに付与されている値索引を含む。
図17は、図15に示される構造索引テーブル59aのデータ構造例を示す。構造索引テーブル59aは、上記実施形態における構造索引テーブル59と同様に、データベース42に格納されるXML文書に含まれているノードの構造を表す構造索引を保持するのに用いられる。この構造索引は、構造を表すパス(パス文字列)、当該パスで特定されるノードのノードID及び当該ノードと関連する関連ノードのノードID(関連ノードID)を含む。この構造索引が構造索引テーブル59に保持される構造索引と異なる点は、関連ノードIDが追加されていることである。つまり本変形例では、関連ノードIDは値索引ではなくて構造索引に持たせられる。図17の構造索引テーブル59aは、図2に示すXML文書101〜103中の各ノードの構造に対応した構造索引を含む。
次に、図11の構造化文書検索システム50aの動作について、上記実施形態における構造化文書検索システム50の動作と相違する点を中心に説明する。
<文書登録処理>
まず、本変形例における索引設定後の文書登録処理について、図18のフローチャートを参照して説明する。図18において、図8のフローチャートと同様の処理ステップには同一の符号を付してある。
今、クライアント端末20から構造化文書検索システム50aに対して、ユーザ指定のXML文書をデータベース42に登録させるための文書登録要求が送出されたものとする(ステップS11)。すると、構造化文書検索システム50a内の文書登録処理部55は指定のXML文書のパース(構文解析)を開始し(ステップS13)、当該XML文書からノードが抽出される都度、そのノードについて次のように処理を行う(ステップS14)
まず文書登録処理部55は、抽出されたノードの情報(パス)が索引付与テーブル57に登録されているかを、索引管理部54に問い合わせることで判定する(ステップS15,S16)。もし登録されているならば、文書登録処理部55は問い合わせに対する索引管理部54からの通知に基づき、抽出されたノードの構造を表すパスと組を成して索引付与テーブル57に登録されている関連ノードの種類を確認する。
さて、抽出されたノードの情報(パス)が索引付与テーブル57に登録されている場合(ステップS16)、文書登録処理部55は、当該ノードの値が値索引テーブル58aに登録されているかを、索引管理部54に問い合わせることで判定する(ステップS17,S18)。
もし、登録されていないならば(ステップS18)、文書登録処理部55は、抽出されたノードの値と当該ノードのノードIDとの組を、索引管理部54により値索引テーブル58aに追加させる(ステップS19a)。これに対し、抽出されたノードの値が登録されているならば(ステップS18)、文書登録処理部55は、当該ノードのノードIDを、登録されている値に対応付けて、索引管理部54により値索引テーブル58aに追加させる(ステップS20a)。
文書登録処理部55はステップS19aまたはS20aを実行すると、抽出されたノードの構造を表すパス(パス文字列)が構造索引テーブル59aに登録されているかを、索引管理部54に問い合わせることによって判定する(ステップS21,S22)。また、ステップS14において抽出されたノードの情報が索引付与テーブル57に登録されていないと判定されたならば、文書登録処理部55は直接上記ステップS21,S22を実行する。
もし、抽出されたノードの構造を表すパスが登録されていないならば(ステップS22)、文書登録処理部55は、当該パス(パス文字列)と当該ノードのノードIDと確認された種類の関連ノードのノードIDとの組を、索引管理部54により構造索引テーブル59に追加させる(ステップS23a)。これに対し、抽出されたノードの構造を表すパスが登録されているならば(ステップS22)、文書登録処理部55は、当該ノードのノードIDと確認された種類の関連ノードのノードIDとの組を、当該パスに対応付けて、索引管理部54により構造索引テーブル59に追加させる(ステップS24a)。なお、索引付与テーブル57に登録されていないノードの構造に関する構造索引、つまり関連ノードの種類が確認されなかったノードの構造に関する構造索引には、関連ノードのノードIDは含まれない。
文書登録処理部55は、ステップS23aまたはS24aを実行すると、抽出されたノード(XML文書の一部)をデータベース42に格納するドキュメント格納処理を行う(ステップS25)。文書登録処理部55は、以上の動作を、クライアント端末20から要求されたXML文書のパースが全て終了するまで繰り返す(ステップS26)。
<検索処理>
次に、値索引テーブル58aに登録されている値索引及び構造索引テーブル59aに登録されている構造索引を利用した検索処理について、図19A及び図19Bのフローチャートを参照して説明する。図19A及び図19Bにおいて、図9A及び図9Bのフローチャートと同様の処理ステップには同一の符号を付してある。
今、クライアント端末20から構造化文書検索システム50aに対して、例えばXPathで記述された問い合わせ(クエリ)を含む検索要求が送出されたものとする(ステップS31)。この問い合わせが、前記第2の問い合わせ(xPath)であるものとする。この第2の問い合わせは、前述したように「last=”Stevens”」及び「first=”W.”」の2つの値検索の条件を含む。また、これらの値検索の条件は、値が”Stevens”であるlastノードに関して「/bib/book/author/last」であることの構造条件を含み、値が”W.”であるfirstノードに関して「/bib/book/author/first」であることの構造条件を含む。
この場合、構造化文書検索システム50aでは、上記実施形態における構造化文書検索システム50と同様に、ステップS32乃至S39が実行される。即ち構造化文書検索システム50aに含まれている検索処理部53a内の値索引検索部531は、複数の値検索の条件の各々について、その条件に合致するノード(候補ノード)のリスト(第1の候補ノードリスト)を索引管理部54から取得して、そのリストをソートする。但し本変形例では、値索引テーブル58aを用いて第1の候補ノードリストが作成され、候補ノードのノードIDの昇順にソートされる。
図20は、図16に示される値索引テーブル58aの場合に取得される、値が”Stevens”であるlastノードの第1の候補ノードリスト111aと、値が”W.”であるfirstノードの第1の候補ノードリスト112aとを示す。候補ノードリスト111a,112aは、図10に示される候補ノードリスト111,112と異なり、関連ノードIDを含んでいない。
さて、複数の値検索の条件の各々について第1の候補ノードリストが取得されると(ステップS39)、検索処理部53a内のノード数判定部534が起動される。ノード数判定部534は、ソート後の全ての第1の候補ノードリストに含まれている候補ノードのノードIDの総数、つまり候補ノードの総数を算出する(ステップS61)。そしてノード数判定部534は、候補ノードの総数が予め定められた一定数以上であるかを判定する(ステップS62)。
ここでは、候補ノードの総数が一定数以上であるものとする。このような場合(ステップS62)、検索処理部53a内の構造索引検索部532は上記実施形態と同様に、複数の値検索の条件に含まれている構造条件の各々について、その構造条件に合致するノードのリスト(第2の候補ノードリスト)を構造索引テーブル59aに基づいて取得するための処理を実行する(ステップS40〜S45)。これにより構造索引検索部532は、図21に示すような第2の候補ノードリスト113a及び114aを取得する。候補ノードリスト113aは、値検索の条件である「値が”Stevens”であるlastノード」に関する構造条件(を表すパス)「/bib/book/author/last」に合致するノード(候補ノード)についての構造索引のリストである。候補ノードリスト114aは、値検索の条件である「値が”W.”であるfirstノード」に関する構造条件(を表すパス)「/bib/book/author/first」に合致するノード(候補ノード)についての構造索引のリストである。候補ノードリスト113a及び114aは、当該リスト113a及び114aの生成に使用される構造索引テーブル59aの特徴(図17参照)により、図12に示される候補ノードリスト113及び114と異なって、関連ノードIDを含む。
複数の値検索の条件に含まれている構造条件の各々について第2の候補ノードリストが取得されると(ステップS45)、検索処理部53内の検索結果取得部533が起動される。検索結果取得部533は、上記実施形態と同様に、値検索の条件毎に、その条件に関して値索引テーブル58aに基づいて取得された第1の候補ノードリストと構造索引テーブル59aに基づいて取得された第2の候補ノードリストとを、候補ノードのノードIDを用いてマージ(ANDマージ)する(ステップS46)。
ここでは、図20に示す第1の候補ノードリスト111a及び図21に示す第2の候補ノードリスト113aのANDマージにより、上記実施形態と同様に図13に示す第3の候補ノードリスト115が生成される。同様に、図20に示す第1の候補ノードリスト112a及び図21に示す第2の候補ノードリスト114aのANDマージにより、上記実施形態と同様に図13に示す第3の候補ノードリスト116が生成される。
検索結果取得部533はステップS46を実行すると、上記実施形態と同様に、値検索の条件毎に生成された第3の候補ノードリストの間で関連ノードIDが一致する組み合わせを探す(ステップS47)。そして検索処理部53は、一致する関連ノードIDを、クライアント端末20からの検索要求に対する検索結果として、要求処理部52経由でクライアント端末20に返す(ステップS48)。
このように本変形例においては、構造索引テーブル59aに保持される構造索引に、関連ノード(親ノード)のノードID(関連ノードID)を持たせることにより、構造条件に合致する複数ノードの値検索で、かつ要求された検索対象ノードが当該複数ノードの関連ノード(親ノード)である検索処理を、データベース42内のXML文書全体をサーチすることなく、値索引テーブル58a及び当該構造索引テーブル59aを参照する索引操作のみで実行できる。このため本変形例においても、上述の検索処理を上記実施形態と同様に高速に検索することができる。この効果は、値検索の個々の条件に合致するノードの数が多いほど顕著となる。
逆に、値索引テーブル58aを用いて求められた、値検索の個々の条件に合致するノードの総数が少ない場合には、従来技術と同様の検索手法、即ちデータベース42に格納されているXML文書を実際にサーチする手法を適用した方が高速に検索できる可能性がある。
そこで本変形例において検索処理部53aは、上記ステップS62で候補ノードの総数(つまり値検索の個々の条件に合致するノードの総数)が上記一定数未満であると判定された場合、以下に述べるように従来技術と同様の検索手法で、要求された検索対象ノード(関連ノード)を検索する。
まず文書サーチ部535内の文書サーチ部535は、値検索の条件毎に取得された候補ノードリストに含まれているノードについて、データベース42に格納されているXML文書をサーチして、値検索の条件に対応する構造条件毎に、当該構造条件に合致するノードのノードIDと、当該ノードの関連ノード(ここでは親ノード)のノードID(関連ノードID)とのリストを第4の候補ノードリストとして取得する(ステップS63)。
すると検索処理部53a内の検索結果取得部533は、構造条件毎に取得された全ての第4の候補ノードリストの間で関連ノードIDが一致する組み合わせを探し求める(ステップS64)。そして検索結果取得部533は、求められた組み合わせに含まれている関連ノードIDを、クライアント端末20からの検索要求に対する検索結果として、要求処理部52経由でクライアント端末20に返す(ステップS48)。
このように本変形例では、候補ノードの総数に応じて、最適な検索処理手順が自動的に適用されるため、最適な処理性能を実現できる。
上記実施形態の変形例では、上記実施形態と同様に、索引付与テーブル57によって管理されるノード(lastノード及びfirstノード)の関連ノードの種類が親ノードである場合を前提としている。しかし、索引付与テーブル57によって管理されるノード(lastノード及びfirstノード)の関連ノードの種類を、親ノード以外とすることも可能である。例えば「last=”Stevens”」かつ「first=”W.”」であるauthorの本(book)のタイトル(title)を検索結果として欲しい場合、ユーザは索引設定要求で、関連ノードとして伯父ノードを指定することにより、ユーザの使用する検索条件に適した関連ノードの情報を構造索引テーブル59aに保持される構造索引に持たせることができる。これにより、検索条件(検索対象ノード)が変化しても高速な検索が可能となる。
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、検索処理部53または検索処理部53aが、直接に、索引付与テーブル57と、値索引テーブル58または58aと、構造索引テーブル59または59aとを参照しても構わない。
また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば上記実施形態において、その変形例と同様に、検索処理部53にノード数判定部534及び文書サーチ部535を持たせても良い。また、上記実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の一実施形態に係る構造化文書検索システムを含むクライアント−サーバシステムのハードウェア構成を示すブロック図。 図1に示されるデータベースに格納されているXML文書の集合の一例を示す図。 図1に示される構造化文書検索システムの主として機能構成を示すブロック図。 図3に示される索引付与テーブルのデータ構造例を示す図。 図3に示される値索引テーブルのデータ構造例を示す図。 図3に示される構造索引テーブルのデータ構造例を示す図。 同実施形態における索引設定処理の手順を示すフローチャート。 同実施形態における索引設定後の文書登録処理の手順を示すフローチャート。 同実施形態における値索引及び構造索引を利用した検索処理の手順を示すフローチャートの一部を示す図。 同実施形態における値索引及び構造索引を利用した検索処理の手順を示すフローチャートの残り示す図。 図5に示されるデータ構造の値索引テーブルから値検索の条件毎に取得される第1の候補ノードリストの例を示す図。 図10に示す第1の候補ノードリストに含まれている値が”Stevens”であるlastノード、及び値が”W.”であるfirstノードの、図2に示されるXML文書における位置を示す図。 図6に示されるデータ構造の構造索引テーブルから値検索の条件毎に取得される第2の候補ノードリストの例を示す図。 値索引テーブル及び構造索引テーブルから値検索の条件毎に取得された候補ノードリストをマージすることにより取得される第3の候補ノードリストの例を示す図。 図13に示す候補ノードリストの間で関連ノードIDが一致する組み合わせのリストを示す図。 同実施形態の変形例で適用される構造化文書検索システムの主として機能構成を示すブロック図。 図15に示される値索引テーブルのデータ構造例を示す図。 図15に示される構造索引テーブルのデータ構造例を示す図。 同変形例における索引設定後の文書登録処理の手順を示すフローチャート。 同変形例における値索引及び構造索引を利用した検索処理の手順を示すフローチャートの一部を示す図。 同変形例における値索引及び構造索引を利用した検索処理の手順を示すフローチャートの残りを示す図。 図16に示されるデータ構造の値索引テーブルから値検索の条件毎に取得される第1の候補ノードリストの例を示す図。 図17に示されるデータ構造の構造索引テーブルから値検索の条件毎に取得される第2の候補ノードリストの例を示す図。 従来技術で適用される値索引の例を示す図。
符号の説明
10…データベースサーバ(データベースサーバコンピュータ)、11…メモリ、20…クライアント端末、30…ネットワーク、40…外部記憶装置、41…データベース管理プログラム、42…データベース、50,50a…構造化文書検索システム、51,51a…データベース管理システム、52…要求処理部、53,53a…検索処理部、54…索引管理部、55…文書登録処理部、56…データベース操作部、57,421…索引付与テーブル(索引付与情報格納手段)、58,58a,422,422a…値索引テーブル(索引格納手段、値索引格納手段)、59,59a,423,423a…構造索引テーブル(索引格納手段、構造索引格納手段)、531…値索引検索部、532…構造索引検索部、533…検索結果取得部、534…ノード数判定部、535…文書サーチ部。

Claims (5)

  1. データベースに格納された構造化文書に含まれているノードに対応付けられる索引であって、当該ノードの位置情報と値とを含むノード情報及び当該ノードを含む前記構造化文書の木構造上で当該ノードと一定の関係のある関連ノードの位置情報を含む索引を格納する索引格納手段と、
    前記索引格納手段に格納される索引が対応付けられるべきノードに関し、当該ノードの構造及び当該構造ノードと一定の関係のある関連ノードの1の種類を示す索引付与情報を格納する索引付与情報格納手段と、
    クライアントから与えられる構造化文書登録を指示する構造化文書登録要求を受けて、当該要求で指定された構造化文書を前記データベースに格納する文書登録処理手段と、
    クライアントから与えられる索引設定を指示する索引設定要求であって、設定される索引が対応付けられるべきノードに関し、当該ノードの構造を指定する情報及び当該ノードを含む構造化文書上で当該ノードと一定の関係のある関連ノードの前記1の種類を指定する情報を含む索引設定要求を受けた場合、当該要求で指定されたノードの構造及び関連ノードの前記1の種類を示す前記索引付与情報を前記索引付与情報格納手段に追加し、前記文書登録手段によって前記データベースに格納される構造化文書に含まれているノードについて、当該ノードの構造及び関連ノードの前記1の種類を示す前記索引付与情報が前記索引付与情報格納手段に登録されている場合に、当該ノードのノード情報及び当該索引付与情報の示す前記1の種類の当該ノードの関連ノードの位置情報を含む索引を前記索引格納手段に追加する索引管理手段と、
    クライアントから与えられる検索要求の示す検索条件に合致する索引を前記索引格納手段から検索する検索処理手段であって、前記検索条件が関連ノードの前記1の種類を指定する関連ノード種類情報を含み、複数ノードの値検索で、かつ当該関連ノード種類情報によって指定される前記1の種類の前記複数のノードに共通な関連ノードを検索対象としている場合に、前記値検索の条件毎に前記索引格納手段から当該値検索の条件に合致する索引を検索し、前記値検索の条件毎に検索された索引から前記関連ノード種類情報によって指定される前記1の種類の一致する関連ノードの位置情報探すことにより、前記検索対象のノードの候補を絞る検索処理手段と
    を具備することを特徴とする構造化文書検索システム。
  2. 前記索引格納手段に格納される、前記構造化文書に含まれているノードに対応付けられる索引は、当該ノードの前記ノード情報及び前記関連ノードの位置情報を含む値索引と、当該ノードの構造を示す構造情報及び当該ノードの位置情報を含む構造索引とから構成され、
    前記索引格納手段は、前記値索引を格納する値索引格納手段と、前記構造索引を格納する構造索引格納手段とから構成され、
    前記検索処理手段は、
    前記検索要求の示す検索条件が関連ノード種類情報を含み、複数ノードの値検索で、かつ当該関連ノード種類情報によって指定される前記1の種類の前記複数のノードに共通な関連ノードを検索対象としている場合に、前記値検索の条件に値が合致する複数ノードの各々の値索引を前記値索引格納手段から検索することにより、前記値検索の条件毎に、当該条件に値が合致するノードの位置情報及び前記関連ノード種類情報によって指定される前記1の種類の当該ノードの関連ノードの位置情報の組のリストを第1の候補ノードリストとして取得する値索引検索手段と、
    前記値検索の条件に構造が合致する複数ノードの各々の構造索引を前記構造索引格納手段から検索することにより、前記値検索の条件毎に、当該条件に構造が合致するノードの位置情報のリストを第2の候補ノードリストとして取得する構造索引検索手段と、
    前記値検索の条件毎に取得される前記第1の候補ノードリスト及び前記第2の候補ノードリストを、前記値検索の条件毎に当該両リストの間で位置情報が共通なノードについてマージすることにより、前記値検索の条件毎に、当該位置情報が共通なノードの位置情報及び当該ノードの関連ノードの位置情報の組のリストを第3の候補ノードリストとして取得し、前記値検索の条件毎に取得される前記第3の候補ノードリストから、前記第3の候補ノードリストの間で一致する関連ノードの位置情報を探すことにより、当該一致する関連ノードの位置情報を前記検索対象のノードの位置情報として取得する検索結果取得手段とを含む
    ことを特徴とする請求項1記載の構造化文書検索システム。
  3. 前記索引格納手段に格納される、前記構造化文書に含まれているノードに対応付けられる索引は、当該ノードの前記ノード情報を含む値索引と、当該ノードの構造を示す構造情報、当該ノードの位置情報及び前記関連ノードの位置情報を含む構造索引とから構成され、
    前記索引格納手段は、前記値索引を格納する値索引格納手段と、前記構造索引を格納する構造索引格納手段とから構成され、
    前記検索処理手段は、
    前記検索要求の示す検索条件が関連ノード種類情報を含み、複数ノードの値検索で、かつ当該関連ノード種類情報によって指定される前記1の種類の前記複数のノードに共通な関連ノードを検索対象としている場合に、前記値検索の条件に値が合致する複数ノードの各々の値索引を前記値索引格納手段から検索することにより、前記値検索の条件毎に、当該条件に値が合致するノードの位置情報のリストを第1の候補ノードリストとして取得する値索引検索手段と、
    前記値検索の条件に構造が合致する複数ノードの各々の構造索引を前記構造索引格納手段から検索することにより、前記値検索の条件毎に、当該条件に構造が合致するノードの位置情報及び前記関連ノード種類情報によって指定される前記1の種類の当該ノードの関連ノードの位置情報の組のリストを第2の候補ノードリストとして取得する構造索引検索手段と、
    前記値検索の条件毎に取得される前記第1の候補ノードリスト及び前記第2の候補ノードリストを、前記値検索の条件毎に当該両リストの間で位置情報が共通なノードについてマージすることにより、前記値検索の条件毎に、当該位置情報が共通なノードの位置情報及び当該ノードの関連ノードの位置情報の組のリストを第3の候補ノードリストとして取得し、前記値検索の条件毎に取得される前記第3の候補ノードリストから、前記第3の候補ノードリストの間で一致する関連ノードの位置情報を探すことにより、当該一致する関連ノードの位置情報を前記検索対象のノードの位置情報として取得する検索結果取得手段とを含む
    ことを特徴とする請求項1記載の構造化文書検索システム。
  4. 前記構造索引検索手段は、前記第1の候補ノードリストに含まれているノードの数が予め定められた一定数以上の場合に動作して前記第2の候補ノードリストを取得し、
    前記検索処理手段は、前記第1の候補ノードリストに含まれているノードの数が前記一定数に満たない場合に動作して、前記第1の候補ノードリストに含まれているノードについて前記データベースに格納されている構造化文書をサーチすることにより、値検索の条件に対応する構造条件毎に、当該構造条件に構造が合致するノードの位置情報及び前記関連ノード種類情報によって指定される前記1の種類の当該ノードの関連ノードの位置情報の組のリストを第4の候補ノードリストとして取得する構造化文書サーチ手段を含み、
    検索結果取得手段は、前記値検索の条件に対応する構造条件毎に取得される前記第4の候補ノードリストから、前記第4の候補ノードリストの間で一致する関連ノードの位置情報を探すことにより、当該一致する関連ノードの位置情報を前記検索対象のノードの位置情報として取得する
    ことを特徴とする請求項3記載の構造化文書検索システム。
  5. データベースに格納された構造化文書の検索に用いられる索引を格納する索引格納手段と、前記索引格納手段に格納される索引が対応付けられるべきノードに関し、当該ノードの構造及び当該ノードを含む構造化文書の木構造上で当該ノードと一定の関係のある関連ノードの1の種類を示す索引付与情報を格納する索引付与情報格納手段とを備えたデータベースサーバコンピュータに、
    クライアントから与えられる索引設定を指示する索引設定要求であって、設定される索引が対応付けられるべきノードに関し、当該ノードの構造を指定する情報及び当該ノードを含む構造化文書上で当該ノードと一定の関係のある関連ノードの前記1の種類を指定する情報を含む索引設定要求を受けた場合、当該要求で指定されたノードの構造及び関連ノードの前記1の種類を示す前記索引付与情報を前記索引付与情報格納手段に追加するステップと、
    クライアントから与えられる構造化文書登録を指示する構造化文書登録要求を受けて、当該要求で指定され構造化文書を前記データベースに格納するステップと、
    前記データベースに前記構造化文書が格納される際に、当該構造化文書に含まれているノードの索引付与情報が前記索引付与情報格納手段に登録されているかを判定するステップと、
    前記構造化文書に含まれているノードの索引付与情報が前記索引付与情報格納手段に登録されている場合、当該ノードに対応付けられる索引であって、当該ノードの位置情報と値とを含むノード情報及び当該索引付与情報の示す前記1の種類の当該ノードの関連ノードの位置情報を含む索引を前記索引格納手段に追加するステップと、
    クライアントから与えられる検索要求を受けて、当該検索要求の示す検索条件に合致する索引を前記索引格納手段から検索するステップであって、前記検索条件が関連ノードの種類を指定する関連ノード種類情報を含み、複数ノードの値検索で、かつ当該関連ノード種類情報によって指定される種類の前記複数のノードに共通な関連ノードを検索対象としている場合に、前記値検索の条件毎に前記索引格納手段から当該値検索の条件に合致する索引を検索して、前記値検索の条件毎に検索された索引から前記関連ノード種類情報によって指定される前記1の種類の一致する関連ノードの位置情報探すことにより、前記検索対象のノードの候補を絞るステップと
    を実行させるためのプログラム。
JP2007073611A 2007-03-20 2007-03-20 構造化文書検索システム及びプログラム Expired - Fee Related JP4445509B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007073611A JP4445509B2 (ja) 2007-03-20 2007-03-20 構造化文書検索システム及びプログラム
US12/046,029 US7917500B2 (en) 2007-03-20 2008-03-11 System for and method of searching structured documents using indexes
CN2008100951853A CN101271474B (zh) 2007-03-20 2008-03-20 利用索引来搜索结构化文档的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007073611A JP4445509B2 (ja) 2007-03-20 2007-03-20 構造化文書検索システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2008234357A JP2008234357A (ja) 2008-10-02
JP4445509B2 true JP4445509B2 (ja) 2010-04-07

Family

ID=39775780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007073611A Expired - Fee Related JP4445509B2 (ja) 2007-03-20 2007-03-20 構造化文書検索システム及びプログラム

Country Status (3)

Country Link
US (1) US7917500B2 (ja)
JP (1) JP4445509B2 (ja)
CN (1) CN101271474B (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2031520A1 (en) * 2007-09-03 2009-03-04 Software Ag Method and database system for pre-processing an XQuery
JP5225022B2 (ja) * 2008-10-29 2013-07-03 日本電信電話株式会社 Xmlデータ検索方法及び装置及びプログラム
CN101808073A (zh) * 2009-02-13 2010-08-18 华为技术有限公司 一种获取节点信息的方法、服务器以及系统
US20100321715A1 (en) * 2009-06-22 2010-12-23 Williams David A Methods and structure for preserving node order when storing xml data in a key-value data structure
WO2011022867A1 (en) * 2009-08-24 2011-03-03 Hewlett-Packard Development Company, L.P. Method and apparatus for searching electronic documents
US10698953B2 (en) * 2009-10-30 2020-06-30 Oracle International Corporation Efficient XML tree indexing structure over XML content
CN102087646B (zh) * 2009-12-07 2013-03-20 北大方正集团有限公司 一种索引建立方法及装置
CN102024046B (zh) * 2010-12-14 2013-04-24 华为数字技术(成都)有限公司 数据重复性校验方法和装置及系统
WO2012102102A1 (ja) * 2011-01-25 2012-08-02 日本電気株式会社 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム
CN102243660B (zh) * 2011-07-18 2017-07-07 中兴通讯股份有限公司 一种数据访问方法及设备
CN102346783B (zh) * 2011-11-09 2014-09-17 华为技术有限公司 数据检索方法及装置
WO2013098918A1 (ja) * 2011-12-26 2013-07-04 株式会社日立製作所 データベースシステム及びデータベース管理方法
CN103186568B (zh) * 2011-12-28 2017-03-22 金蝶软件(中国)有限公司 树型结构数据的访问方法及系统
CN103218373B (zh) * 2012-01-20 2018-02-06 深圳市世纪光速信息技术有限公司 一种相关搜索系统、方法及装置
US8935256B2 (en) * 2012-03-02 2015-01-13 Cleversafe, Inc. Expanding a hierarchical dispersed storage index
US11487707B2 (en) * 2012-04-30 2022-11-01 International Business Machines Corporation Efficient file path indexing for a content repository
CN103678302B (zh) * 2012-08-30 2018-11-09 北京百度网讯科技有限公司 一种文档结构化组织方法及装置
JP5439606B1 (ja) * 2012-09-07 2014-03-12 株式会社東芝 構造化文書管理装置、方法およびプログラム
JP5422751B1 (ja) * 2012-09-20 2014-02-19 株式会社東芝 構造化文書管理装置、方法およびプログラム
US8914356B2 (en) 2012-11-01 2014-12-16 International Business Machines Corporation Optimized queries for file path indexing in a content repository
US9323761B2 (en) 2012-12-07 2016-04-26 International Business Machines Corporation Optimized query ordering for file path indexing in a content repository
CN103020273B (zh) * 2012-12-27 2016-08-17 福建榕基软件股份有限公司 树形结构数据的展示及相关索引表生成的方法与装置
CN104036026B (zh) * 2014-06-27 2018-02-23 吴涛军 存储和定位结构化文档选取内容的方法与系统
WO2018185921A1 (ja) * 2017-04-06 2018-10-11 富士通株式会社 インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法
CN111046131B (zh) * 2019-12-27 2023-09-26 杭州依图医疗技术有限公司 一种文档处理方法及装置
US11640380B2 (en) 2021-03-10 2023-05-02 Oracle International Corporation Technique of comprehensively supporting multi-value, multi-field, multilevel, multi-position functional index over stored aggregately stored data in RDBMS

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1207464A2 (en) * 2000-11-15 2002-05-22 Samsung Electronics Co. Ltd. Database indexing using a tree structure
JP2006018584A (ja) 2004-07-01 2006-01-19 Toshiba Corp 構造化文書管理システム、値索引生成方法及びプログラム
CN1914613A (zh) * 2004-11-30 2007-02-14 松下电器产业株式会社 数据库构筑装置、数据库检索装置、数据库装置、数据库构筑方法、以及数据库检索方法
JP2006185408A (ja) 2004-11-30 2006-07-13 Matsushita Electric Ind Co Ltd データベース構築装置及びデータベース検索装置及びデータベース装置
CN100410933C (zh) * 2004-12-29 2008-08-13 复旦大学 一种基于xml数据的高效路径索引方法

Also Published As

Publication number Publication date
US7917500B2 (en) 2011-03-29
US20080235252A1 (en) 2008-09-25
JP2008234357A (ja) 2008-10-02
CN101271474A (zh) 2008-09-24
CN101271474B (zh) 2012-09-19

Similar Documents

Publication Publication Date Title
JP4445509B2 (ja) 構造化文書検索システム及びプログラム
US9767108B2 (en) Retrieval device, method for controlling retrieval device, and recording medium
US7415469B2 (en) Method and apparatus for searching network resources
US6925462B2 (en) Database management system, and query method and query execution program in the database management system
US20040244039A1 (en) Data search system and data search method using a global unique identifier
US9275144B2 (en) System and method for metadata search
US7801876B1 (en) Systems and methods for customizing behavior of multiple search engines
JP4189369B2 (ja) 構造化文書検索装置及び構造化文書検索方法
JP2008052662A (ja) 構造化文書管理システム及びプログラム
US7024405B2 (en) Method and apparatus for improved internet searching
JP2008090404A (ja) 文書検索装置、文書検索方法および文書検索プログラム
JP2005227851A (ja) 構造化データ記憶方法および装置
US20060173755A1 (en) Catalog management apparatus, catalog generation method and catalog retrieval method
US20110252313A1 (en) Document information selection method and computer program product
US20160117352A1 (en) Apparatus and method for supporting visualization of connection relationship
JP2006127229A (ja) 構造化文書検索システム、構造化文書検索方法及びプログラム
CN117453980A (zh) 元数据管理、配置页面生成方法、服务器及存储介质
JP2006127235A (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP2004145706A (ja) マルチメディアデータ検索システム
JP6638053B1 (ja) ドキュメント作成支援システム
KR20020028633A (ko) 가상문서 제공 시스템 및 그 방법
JP4550876B2 (ja) 構造化文書検索システム及びプログラム
US20050160101A1 (en) Method and apparatus using dynamic SQL for item create, retrieve, update delete operations in a content management application
JPH117445A (ja) 統合化文書管理装置
JP2000322167A (ja) データ管理システムおよびデータ属性表示方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081209

A521 Request for written amendment filed

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091007

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4445509

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140122

Year of fee payment: 4

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

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees