JP2010267081A - Information search method, device and program - Google Patents
Information search method, device and program Download PDFInfo
- Publication number
- JP2010267081A JP2010267081A JP2009117964A JP2009117964A JP2010267081A JP 2010267081 A JP2010267081 A JP 2010267081A JP 2009117964 A JP2009117964 A JP 2009117964A JP 2009117964 A JP2009117964 A JP 2009117964A JP 2010267081 A JP2010267081 A JP 2010267081A
- Authority
- JP
- Japan
- Prior art keywords
- node
- search
- group
- information
- node group
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、情報検索方法及び装置及びプログラムに係り、特に、構造化データである多数のXMLデータを蓄積及び検索するデータベース及びインデクスの分野で、結合検索実行時の処理を効率化し、高速に行う情報検索方法及び装置及びプログラムに関する。 The present invention relates to an information search method, apparatus, and program, and in particular, in the field of databases and indexes for storing and searching a large number of XML data as structured data, the processing at the time of executing a combined search is performed efficiently and at high speed. The present invention relates to an information search method, apparatus, and program.
XMLとは、マークアップ言語の一つで、XMLで記述されたデータは構造化され、構造に意味を持ったデータである。図13は、XMLデータとその構造を示した図である。XMLデータを構成する要素を識別するために使われるマークをタグと呼び、タグに挟まれた間に値(テキスト)を記述する。タグは入れ子にすることができる。 XML is one of markup languages, and data described in XML is structured and has meaning in the structure. FIG. 13 is a diagram showing XML data and its structure. A mark used to identify an element constituting XML data is called a tag, and a value (text) is described between the tags. Tags can be nested.
したがって、XMLデータはモデル的に木構造で表すことができ、各節をノードと呼ぶ。特に、値のノードをルート要素、値(記述内容)をテキストノード、タグ中に記述されたものを属性と呼ぶ。 Therefore, XML data can be represented in a tree structure as a model, and each node is called a node. In particular, a value node is called a root element, a value (description content) is called a text node, and an element described in a tag is called an attribute.
各ノードは、"/"の後ろにルート要素からのタグを"/"でつなげた「パス」で指定する。例えば、本のタイトルを示したい場合、パスを「/book/title」と指定する。 Each node is specified by a “path” in which a tag from the root element is connected by “/” after “/”. For example, if you want to show the title of a book, specify the path as “/ book / title”.
XMLデータに対して効率的な検索を実現しようとした場合、構造の任意の場所にある記述内容を高速に取り出すことが可能でなければならない。一般的には、XMLデータの構造と記述内容を記述したインデクス(構造インデクス)を予め構築しておく。構造インデクスの構築は様々な方法が存在するが、多くの場合、XMLデータの持つ全てのパスとパスに指定される記述内容を関係づけるインデクスが構築される。以上のようなXMLデータの効率的な検索を実現する一手法として、XMLデータの要約情報に範囲ラベルを付与して保持し、検索時に、問い合わせを木構造に変換して値の部分を削除した問い合わせ木の構造部を生成し、中間問い合わせ木と要約情報を照合して中間要約木の集合を生成し、XMLデータに対して中間要約木の集合を実体化したデータを含む実体中間木の集合に変換し、XMLデータに対して、実体中間も木の集合に対応する値の部分を用いてフィルタ処理を行うことで、XMLデータの効率的な検索を実現する技術がある(例えば、特許文献1参照)。 When an efficient search is to be performed on XML data, it is necessary to be able to retrieve the description contents at an arbitrary place in the structure at high speed. In general, an index (structure index) describing the structure and description contents of XML data is constructed in advance. There are various methods for constructing a structure index. In many cases, an index that associates all the paths of XML data with the description contents specified in the path is constructed. As a technique for realizing efficient search of XML data as described above, a range label is attached to XML data summary information and retained, and at the time of search, the query is converted to a tree structure and the value part is deleted A query tree structure part is generated, a set of intermediate summary trees is generated by collating the summary information with the intermediate query tree, and a set of entity intermediate trees including data obtained by materializing the set of intermediate summary trees with respect to XML data There is a technique that realizes an efficient search of XML data by converting the XML data into a filter process using the portion of the value corresponding to the set of trees in the entity intermediate (see, for example, Patent Documents). 1).
検索の一パターンとして、2種類(同一種類でも可)のXMLデータ群の結合がある。例えば、図14に示されるような「クラス情報XML」「受講者XML」の2種類のXML群がある場合、受講者のIDを示す「クラス情報XML」の
"/course/students/student_id/text()"("text()"はテキストノードを示す)
と「受講者XML」の
As a search pattern, there is a combination of two types (or the same type) of XML data groups. For example, when there are two types of XML groups “class information XML” and “student XML” as shown in FIG. 14, the “class information XML” indicating the ID of the student is displayed.
"/ course / students / student_id / text ()"("text()" indicates a text node)
And “Student XML”
この例の結合の検索クエリは、XML問い合わせ言語1つであるXQueryでは、図16のように記述できる。 In this example, the combined search query can be described as shown in FIG. 16 in XQuery, which is one XML query language.
単純な検索処理手法としては、各XMLデータのルート要素から順次子ノードを辿っていき、検索条件に合ったノード群を探し出す方法があるが、大きなデータや多数のデータ群の場合や、パスが深いところを指している場合などには、走査に時間がかってしまう。そこで、前述の特許文献1に示すような、処理に必要なノード群だけを直接取り出し、それらの親子及び先祖子孫関係を判定することで、効率的な検索が行われる。
As a simple search processing method, there is a method in which child nodes are sequentially traced from the root element of each XML data to find a node group that matches the search condition. However, in the case of large data or a large number of data groups, the path is When it points to a deep place, scanning takes time. Therefore, as shown in the above-mentioned
しかし、当該手法は、結合検索にまでは言及されておらず、効率的な手法は提案されていない。したがって、結合検索となる双方のXMLデータ群を特許文献1に示すような効率的な検索を行った後、結合処理を単純な手法で一つ一つ突合せていく方法が考えられるが、図16の例のように結合条件
("$a/students/student_id/text()=$b/@id")
以外に条件がない場合などは、中間結果が多くなりすぎて、効率化にはつながらないケースがある。
However, this method is not mentioned even in the join search, and an efficient method has not been proposed. Therefore, after performing efficient search as shown in
If there are no other conditions, there are cases where the number of intermediate results is too large to improve efficiency.
また、結合処理については、関係データベース(RDB:Relational Data Base)においては効率的な手法が実現されているが、XMLデータの結合は以下の点で異なるため、そのままでは適用できない。 In addition, regarding the joining process, an efficient technique is realized in a relational database (RDB), but the joining of XML data differs in the following points, and thus cannot be applied as it is.
RDBの場合、結合の単位(タプル)と結合条件となるキーは1対1関係にある(図17参照)が、XMLの場合は1対N関係となる。例えば、上記の例の場合、「クラス情報XML」の結合の単位は、
"/course"
以下の部分木、つまり文書全体であるが、結合条件となるキー
"/course/students/students_id"
は文書内に複数個ある。
In the case of RDB, the unit (tuple) of the bond and the key serving as the join condition have a one-to-one relationship (see FIG. 17), but in the case of XML, the key has a one-to-N relationship. For example, in the case of the above example, the unit of combination of “class information XML” is
"/ course"
The following subtree, that is, the entire document, but the key that becomes the join condition
"/ course / students / students_id"
There are several in the document.
つまり、N個のキー同士のどれかのペアがマッチすれば「真」という結合が必要になる。 In other words, a combination of “true” is required if any pair of N keys matches.
本発明は、上記の点に鑑みなされたもので、効率的に結合検索を行うことが可能な情報検索方法及び装置及びプログラムを提供することを目的とする。 The present invention has been made in view of the above points, and an object of the present invention is to provide an information search method, apparatus, and program capable of efficiently performing a combined search.
図1は、本発明の原理を説明するための図である。 FIG. 1 is a diagram for explaining the principle of the present invention.
本発明(請求項1)は、構造化データであるXMLデータ群に対して、蓄積及び検索する装置における情報検索方法であって、
入力された検索クエリで指定された検索パス及び検索キーワードに基づいて、XMLの構造をパス単位で格納したパスインデクス記憶手段と、XMLの各ノード間の関係を保持するための、親ノードが子ノードを含むノードIDで表される範囲ラベルをノードIDとするノード情報を格納したノード記憶手段を参照して、問い合わせ木を生成し(ステップ1)、該問い合わせ木の処理対象となるパスに対し、ノード群を取得する処理、それらの先祖子孫関係の判定処理、ノード群の結合処理、最終的な結合結果を生成する結果生成処理の各処理種別のノードを含む実行木を生成する(ステップ2)実行木生成ステップと、
実行木の各実行ノードにおいて、子ノードがある場合は該子ノードの結果を取得し、当該ノードの処理種別に応じた処理を行い(ステップ3)、最終的な結果を出力する(ステップ4)検索ステップと、を行う。
The present invention (Claim 1) is an information search method in an apparatus for storing and searching XML data groups that are structured data,
Based on the search path and the search keyword specified by the input search query, the path index storage means for storing the XML structure in units of paths and the parent node for maintaining the relationship between each node of the XML are children. A query tree is generated by referring to node storage means storing node information whose node ID is a range label represented by a node ID including a node (step 1). Then, an execution tree including nodes of each processing type is generated (step 2), a process for acquiring a node group, a process for determining their ancestor-descendant relationship, a node group combining process, and a result generating process for generating a final combined result (
If there is a child node in each execution node of the execution tree, the result of the child node is acquired, the process according to the processing type of the node is performed (step 3), and the final result is output (step 4). And a search step.
また、本発明(請求項2)は、検索ステップにおいて、
実行木の実行ノードが結合条件を有しているとき、該結合条件で指定されているノード群(結合キーノード群)について結合を行い、結合したペア毎に結合IDを付与し、検索記憶手段に格納し、
ノード記憶手段から、検索の単位となるノード群(検索ノード群)のノード情報を取得し、該検索ノード群に対し、結合キーノード群のノード情報の範囲ラベルに基づいて該当するものをマッチングし、マッチする検索ノード群を当該結合キーノード群の結合IDと共に取得し、該検索ノード群と該結合キーノード群を結合し、検索記憶手段に格納し、
検索クエリの指定に基づいて検索記憶手段に格納されている情報から結果を生成する。
Further, the present invention (Claim 2), in the search step,
When an execution node of an execution tree has a join condition, the nodes specified in the join condition (join key node group) are joined, and a join ID is assigned to each joined pair and stored in the search storage means. And
Obtain node information of a node group (search node group) that is a unit of search from the node storage means, and match the corresponding one based on the range label of the node information of the combined key node group to the search node group, A matching search node group is acquired together with a combination ID of the combination key node group, the search node group and the combination key node group are combined, and stored in a search storage unit;
Based on the specification of the search query, a result is generated from the information stored in the search storage means.
図2は、本発明の原理構成図である。 FIG. 2 is a principle configuration diagram of the present invention.
本発明(請求項3)は、構造化データであるXMLデータ群に対して、蓄積及び検索する装置における情報検索装置であって、
XMLの構造をパス単位で格納したパスインデクス記憶手段1と、
XMLの各ノード間の関係を保持するための、親ノードが子ノードを含むノードIDで表される範囲ラベルをノードIDとするノード情報を格納したノード記憶手段2と、
入力された検索クエリで指定された検索パス及び検索キーワードに基づいて、パスインデクス記憶手段とノード記憶手段を参照して、問い合わせ木を生成し、該問い合わせ木の処理対象となるパスに対し、ノード群を取得する処理、それらの先祖子孫関係の判定処理、ノード群の結合処理、最終的な結合結果を生成する結果生成処理の各処理種別のノードを含む実行木を生成する実行木生成手段41と、
実行木の各実行ノードにおいて、子ノードがある場合は該子ノードの結果を取得し、当該ノードの処理種別に応じた処理を行い、最終的な結果を出力する検索実行手段42と、を有する。
The present invention (Claim 3) is an information search device in an apparatus for storing and searching XML data groups that are structured data.
Path index storage means 1 storing the XML structure in units of paths;
A
Based on the search path and the search keyword specified by the input search query, a query tree is generated with reference to the path index storage means and the node storage means, and a node is obtained for the path to be processed by the query tree. Execution tree generation means 41 for generating an execution tree including nodes of each processing type of a process for acquiring a group, a determination process for their ancestor-descendant relationship, a node group combination process, and a result generation process for generating a final combination result When,
Each execution node of the execution tree has a search execution means 42 that acquires the result of the child node if there is a child node, performs processing according to the processing type of the node, and outputs the final result .
また、本発明(請求項4)の検索実行手段42は、
実行木の実行ノードが結合条件を有しているとき、該結合条件で指定されているノード群(結合キーノード群)について結合を行い、結合したペア毎に結合IDを付与し、検索記憶手段に格納する手段と、
ノード記憶手段2から、検索の単位となるノード群(検索ノード群)のノード情報を取得し、該検索ノード群に対し、結合キーノード群のノード情報の前記範囲ラベルに基づいて該当するものをマッチングし、マッチする検索ノード群を当該結合キーノード群の結合IDと共に取得し、該検索ノード群と該結合キーノード群を結合し、検索記憶手段に格納する手段と、
検索クエリの指定に基づいて検索記憶手段に格納されている情報から結果を生成する手段と、を含む。
The search execution means 42 of the present invention (Claim 4)
When an execution node of an execution tree has a join condition, the nodes specified in the join condition (join key node group) are joined, and a join ID is assigned to each joined pair and stored in the search storage means. Means to
Node information of a node group (search node group) that is a unit of search is acquired from the node storage means 2, and the corresponding one is matched to the search node group based on the range label of the node information of the join key node group Obtaining a matching search node group together with a combination ID of the combination key node group, combining the search node group and the combination key node group, and storing in the search storage unit;
Means for generating a result from information stored in the search storage means based on the designation of the search query.
本発明(請求項5)は、請求項3または4記載の情報検索装置を構成する各手段としてコンピュータを機能させるための情報検索プログラムである。
The present invention (Claim 5) is an information search program for causing a computer to function as each means constituting the information search apparatus according to
上記のように本発明によれば、XMLの階層構造を順次辿る中間処理を行うことなく、必要最小限のノード群のみを直接取り扱うことで、効率的に結合検索を行うことができる。 As described above, according to the present invention, it is possible to efficiently perform a combined search by directly handling only the minimum necessary node group without performing an intermediate process for sequentially tracing the hierarchical structure of XML.
以下、図面と共に本発明の実施の形態を説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
本発明は、XMLの階層構造を順次辿ることなく、必要最低限のノード群のみを直接取り扱うことで、効率的に結合検索を行う手法(例えば、特許文献1)をベースに、RDBで実現されている結合処理を組み合わせることで、XMLデータ群に対する効率的な結合処理を実現するものであある。 The present invention is realized in RDB based on a technique (for example, Patent Document 1) that efficiently performs a join search by directly handling only the minimum necessary node group without sequentially following the hierarchical structure of XML. By combining the combination processing, the efficient combination processing for the XML data group is realized.
図3は、本発明の一実施の形態における情報検索装置の構成を示す。 FIG. 3 shows the configuration of the information retrieval apparatus in one embodiment of the present invention.
同図に示す情報検索装置は、XMLの構造をパス単位で保持するパスインデクス部1、XMLの各ノード間のXML構造における関係を把握するノード管理部2、各ノードの値のインデクスを構築及び管理する値インデクス部3と、(結合)検索を実行する検索部4とを有する。パスインデクス部1とノード管理部2は、前述の背景技術の項における構造インデクスにあたる。
The information retrieval apparatus shown in FIG. 1 includes a
パスインデクス部1は、XMLデータの持つ全てのパスとパスに指定されるノードを関係付けるインデクスを構築し、内部の記憶手段に格納する。
The
ノード管理部2は、各ノード間のXMLデータの構造上の関係を内部の記憶手段に保持する。一般的には、構造上の関係を管理するために、XMLデータの各ノードにIDを付与し、ノード間の関係(先祖子孫関係など)を範囲ラベルとして保持する。
The
値インデクス部3は、テキストノード及び属性の値に対するインデクス(B−Tree、ハッシュ等)を構築し、内部の記憶手段に保持する。検索するだけであれば不要のものであるが、高速検索を実現するためには必要となる。
The
検索部4の処理は以下の手順で行う。以下、用語として、検索の単位となるノード(群)を「検索ノード(群)」、結合条件となるノード(群)を「結合キーノード(群)」と呼ぶこととする。
The processing of the
前述の図16のクエリの例の場合、"$a"、"$b"にセットされた全データの"/course"及び"/profile"がそれぞれの検索ノード群であり、where句で条件とされている
"/course/students/student_id/text()"
及び、
In the example of the query in FIG. 16 described above, “/ course” and “/ profile” of all the data set in “$ a” and “$ b” are the respective search nodes, and the conditions in the where clause Has been
"/ course / students / student_id / text ()"
as well as,
(1)双方の結合キーノード群について、そのノード群の単位で結合処理を行う(以降、当該処理を「キー結合」処理と呼ぶ)。 (1) For both combined key node groups, the combined process is performed in units of the node groups (hereinafter, this process is referred to as “key combined” process).
これは、RDBと同等の処理方法で実現できる。その際、マッチしたペアを識別できる結合ID(双方もしくは片方のノードIDでも可)を付与し、当該検索部4内のメモリ(図示せず)に保持する。
This can be realized by a processing method equivalent to RDB. At this time, a binding ID (both or one of the node IDs) that can identify the matched pair is assigned and held in a memory (not shown) in the
(2)双方の検索ノード群を取得する。(その際、(1)で得た結合キーノード群を含むXMLデータのみに限定して取得するとより効率的である)。 (2) Acquire both search node groups. (At that time, it is more efficient to obtain only the XML data including the combination key node group obtained in (1)).
(3)XMLデータ群ごとに(2)で得た検索ノード群に対し、(1)で得た結合キーノード群から、(ノードIDによる親子及び先祖子孫関係判定を用い)該当するものをマッチングし、マッチする検索ノード群を、結合ID(群)と共に取得する。 (3) For each XML data group, the search node group obtained in (2) is matched with the corresponding one from the join key node group obtained in (1) (using parent-child and ancestor-descendant relationship determination by node ID). , A matching search node group is acquired together with a binding ID (group).
(4)双方の検索ノード群の対応を結合ID(群)により判定し、結合を行う。但し、この場合、結果の単位(まとめ方)はクエリ指定に依存する。 (4) The correspondence between both search node groups is determined by the combination ID (group), and the connection is performed. However, in this case, the result unit (how to summarize) depends on the query specification.
(5)検索ノードを基軸とし、結果に必要な(return句に指定されている)ノードに取得し、結果を生成し、返却する。 (5) Using the search node as a base, obtain the node necessary for the result (specified in the return clause), generate the result, and return it.
すなわち、結合条件について結合キーノードのレベルでRDBの結合処理と同等の処理を行うことで、候補を絞り込むことができ、更に結合IDを保存しておくことで、最終的な検索ノード同士の結合処理も効率化を図ることができる。 In other words, candidates can be narrowed down by performing the same process as the RDB join process at the join key node level for the join condition, and by further saving the join ID, the final join process between search nodes Can also improve efficiency.
上記の(4)について補足すると、図16のクエリの場合、"$a"は"for"文で指定されているため、検索ノード"$a"の単位で結果が纏められる(図15)。一方、図4のように"$b"の単位で結果を得ることも可能で、その場合のXQueryは、図5のように"$b"も"for"文で指定することで、内側の"for"である検索ノード"$b"の単位で結果が纏められる。 Supplementing the above (4), in the case of the query of FIG. 16, since “$ a” is specified by the “for” statement, the results are collected in units of the search node “$ a” (FIG. 15). On the other hand, as shown in Fig. 4, it is also possible to obtain the result in units of "$ b". In that case, the XQuery specifies the "$ b" in the "for" statement as shown in Fig. Results are collected in units of search node "$ b" which is "for".
また、結合条件が複数ある場合は、それぞれの結合条件に対し、結合ID(群)を保持し、その組み合わせの判定を(4)において行うことで対応できる。 Further, when there are a plurality of binding conditions, it can be dealt with by holding a binding ID (group) for each binding condition and determining the combination in (4).
また、図5のクエリのように、他の絞り込み条件("$a/meta/grade='初級クラス'")がある場合は、(1)〜(3)及びその前後の適切なタイミングで絞り込みを行うことで対応できる(適切な順序は、絞り込み条件と対象データ群により変化する)。 In addition, if there are other narrowing conditions ("$ a / meta / grade = 'Beginning class'") as shown in the query in FIG. 5, narrowing down at appropriate timings before and after (1) to (3). (The appropriate order varies depending on the narrowing-down condition and the target data group).
以下に、実現方法の一形態として、特許文献1の手法をベースした例を説明する。
Hereinafter, an example based on the technique of
図3に示す各構成要素について詳細に説明する。 Each component shown in FIG. 3 will be described in detail.
パスインデクス部1は、パス情報を内部の記憶手段で管理するモジュールで、パスとパスに対応する各データのノードへの関係の保持も含まれる。パス情報の格納例を図6(A)に示す。パスとそのパスに対するIDを保持する。
The
ノード管理部2は、各ノードの情報を内部の記憶手段に格納し管理する。ノードの情報とは、図6(B)に示すように、パスインデクス部1のパスIDに対応するパスID、データ毎のID(文書ID)、ノードID(範囲ラベル)、タグ、値等から構成される。範囲ラベルは、図7に示すようにノード毎に2値で表され、親ノードが子ノードを含むように付与する。これにより、任意のノード間で親子及び先祖子孫関係を判定可能となる。この例では、文書ID101と201の例のみを示しているが、今回の場合は、各XML群で同一の構造であるため、他のXMLに対しても同様の範囲ラベルが付与される(一般的には、同じパスに対しても同一の範囲ラベルとは限らない)。
The
値インデクス部3は、テキストノード及び属性の値に対するインデクス(B-Tree、ハッシュ等)を構築し、内部の記憶手段に格納・管理する。少なくともパスとその値の制限を条件に、検索が可能な形とする。例えば、パスと値の両方をキーに全てを対象としたインデクスを1つ作成してもよいし、パス毎に別々のインデクス(値がキーとなる)を作成してもよい。
The
検索部4は、検索クエリを受け取り、指定された検索パス及び検索キーワードにマッチするノードを、パスインデクス部1、ノードインデクス部2、値インデクス部3の各記憶手段から特定し、必要であればデータベース等のデータ管理部(図示せず)から返却結果を取得し、返却する。
The
検索部4における結合検索の処理を以下に示す。
The combined search process in the
図8は、本発明の一実施の形態における結合検索の処理のフローチャートである。 FIG. 8 is a flowchart of join search processing in one embodiment of the present invention.
ステップ110) 検索部4は取得した検索クエリから、問い合わせ木を生成する。
Step 110) The
ステップ120) 次に、ノード管理部2のノード情報を用いて問い合わせ木に対する実行木を作成する。
Step 120) Next, using the node information of the
ステップ130) 実行木に従って、ノード種別「ノード取得」「関係判定」「結合」「結果生成」等の実行ノードを選択する。 Step 130) According to the execution tree, an execution node such as node type “node acquisition”, “relationship determination”, “join”, “result generation”, etc. is selected.
ステップ140) 実行ノード種別が「ノード取得」である場合は、ステップ150に移行し、「関係判定」である場合はステップ160に移行し、「結合」の場合はステップ107に移行し、「結果生成」の場合はステップ180に移行する。 Step 140) If the execution node type is “node acquisition”, the process proceeds to step 150; if it is “relationship determination”, the process proceeds to step 160; if it is “join”, the process proceeds to step 107; In the case of “generation”, the process proceeds to step 180.
ステップ150) 実行ノード種別が「ノード取得」である場合は、パスインデクス部1、ノード管理部2からノード情報を取得し、ステップ190に移行する。
Step 150) When the execution node type is “node acquisition”, node information is acquired from the
ステップ160) 実行ノード種別が「関係判定」である場合は、ノード管理部2からノード情報を取得し、範囲ラベルに従って親子/先祖子孫関係を判定し(文書IDの突き合わせ、範囲ラベルによる構造ジョイン)、ステップ190に移行する。
Step 160) When the execution node type is “relationship determination”, the node information is acquired from the
ステップ170) 実行ノード種別が「結合」である場合は、ノード管理部2からノード情報を取得し、値インデクスも必要に応じ利用し結合を行うと共に、結合IDを付与する。また、同じ結合ID同士を結合し、ステップ190に移行する。
Step 170) When the execution node type is “join”, the node information is acquired from the
ステップ180) 実行ノード種別が「結果生成」である場合は、返却するための結果を生成し、ステップ190に移行する。 Step 180) If the execution node type is “result generation”, a result to be returned is generated, and the process proceeds to step 190.
ステップ190) 全ての実行ノードについて、ステップ130以降の処理を繰り返す。 Step 190) The processing after Step 130 is repeated for all execution nodes.
次に、上記のステップ150について詳細に説明する
図9は、本発明の一実施の形態におけるノード取得処理のフローチャートである。
Next,
ステップ151) 実行ノード種別が「ノード取得」である場合、結合条件を持つかを判定し、持つ場合には、ステップ152に移行し、持たない場合はステップ156に移行する。 Step 151) When the execution node type is “node acquisition”, it is determined whether or not there is a join condition. If so, the process proceeds to step 152. If not, the process proceeds to step 156.
ステップ152) キー結合が実行済みである場合はステップ155に移行し、まだ実行していない場合はステップ153に移行する。 Step 152) If the key combination has been executed, the process goes to Step 155, and if not yet executed, the process goes to Step 153.
ステップ153) パスインデクス部1及びノード管理部2から該当する双方の結合キーノード情報を取得する。
Step 153) The corresponding combined key node information is acquired from the
ステップ154) ステップ153で取得した結合キーノード情報に基づいて値インデクス部3に問い合わせ、結合キーノード情報に対応するキーIDを取得し、キー結合処理を行う。
Step 154) The
ステップ155) キー結合結果から結合IDと共に、ノード情報を取得し、当該処理を終了する。 Step 155) The node information is acquired together with the combination ID from the key combination result, and the process is terminated.
ステップ156) 結合条件を持たない場合は、パスインデクス部1、ノード管理部2から該当するノード情報(群)を取得する。
Step 156) If there is no join condition, the corresponding node information (group) is acquired from the
ステップ157) 値インデクス部1に問い合わせ、値の制約を満たすものだけに絞り込み、当該処理を終了する。
Step 157) The
以下に、上記の図8、図9の処理の具体的な例として図14のデータ群が図7のラベル付けがされ検索部4のメモリ(図示せず)に格納されている場合に、図5のクエリを実行する手順を示す。
In the following, as a specific example of the processing of FIGS. 8 and 9, when the data group of FIG. 14 is labeled in FIG. 7 and stored in the memory (not shown) of the
検索部4は、問い合わせ木を生成する。ここで作成する問い合わせ木は、図10のようになる。同図において二重線の部分(「course」「profile」)が処理対象となるパスを表しており、破線の矢印が指されているパスには値に制約が付いていることを示している。
The
次に、検索部4は、図11に示すような実行木を作成する。問い合わせ木の処理対象となるパスに対し、ノード群を取得する処理(ノード取得)を葉とし、それらの先祖子孫関係の判定を節にする。ノード取得には、値の制約が付与される場合があり、結合条件も制約の一種として双方の葉に共通的に付与する。実行木の根には、最終的な結合結果を生成する結果生成処理が配置され、その直下に、クエリ例では、"$a"、"$b"にセットされた2つの検索ノード群の結合処理とする。
Next, the
木の形は実行順序を表している。複数の選択肢があるため、何らかの実行計画の最適化処理を行うことが望ましいが、本発明では対象外であるのでその説明を省略する。実行ノードを選択し、実行木の葉から根に向かって処理を進めていく。 The tree shape represents the execution order. Since there are a plurality of choices, it is desirable to perform some kind of execution plan optimization process, but since it is out of scope in the present invention, its description is omitted. Select an execution node and proceed from the leaves of the execution tree toward the root.
ノードIDを[文書ID,(範囲ラベル)]の形式で表すと、以下の手順で処理される。 When the node ID is expressed in the format of [document ID, (range label)], it is processed in the following procedure.
(1)P5:"/course/meta/grade/text()制約:='初級クラス'"のノード取得
結合条件は持っていないため、パスインデクス部1、ノード管理部2からパスに該当するノード情報を取得し、値インデクス部3により制約を満たすノードのみに絞り込む。"初級クラス"という値を該当パスに持つものは、文書101、及び102のノードとなるので、以下が得られる。
(1) P5: "/ course / meta / grade / text () Constraint: =" Beginner class "node acquisition Since there is no join condition, the node corresponding to the path from the
'初級クラス'[101,(6,7)],'初級クラス'[102,(6,7)]
(2)P6:"/course"のノード取得
結合条件は持っていないため、パスインデクス部1、ノード管理部2から、パスに該当するノード情報を取得する(制約を持たないため、値インデクス部3により絞り込んでも同じ)全ての文書に該当パスを持つノードが存在するため、以下が得られる。
'Beginner class' [101, (6,7)], 'Beginner class' [102, (6,7)]
(2) Node acquisition of P6: “/ course” Since there is no join condition, node information corresponding to the path is acquired from the
[101,(1,36)],[102,(1,36)],[103,(1,36)]*
ただし、上記の[103,(1,36)]*のノードは、(1)の結果から文書IDを利用し、この段階で取り除くことも可能である。なお、以降も、事前の処理結果の文書IDを利用し、同様に取り除くことが可能なノードについては、「*」を付与する。
[101, (1,36)], [102, (1,36)], [103, (1,36)] *
However, the node [103, (1, 36)] * can be removed at this stage using the document ID from the result of (1). In the following, “*” is given to nodes that can be similarly removed using the document ID of the previous processing result.
(3)P4:P5とP6の先祖子孫関係判定
この例では、先祖側のP6のノードを残す形で、P6が先祖でP5が子孫の関係のノードを取得する。
(3) P4: Determination of ancestor-descendant relationship between P5 and P6 In this example, P6 is an ancestor and P5 is a descendant node in the form of leaving the ancestor P6 node.
[101,(1,36)](←子孫101,[6,7]),[102,(1,36)](←子孫102,[6,7])
(4)P7:"/course/students/student_id/text()制約:キー結合"のノード取得
結合条件を持っており、まだキー結合が実行されていないため、まずキー結合を実行する。パスインデクス部1、ノード管理部2からP7とP9双方のノード情報を取得し、値インデクス部3も必要に応じ利用し、結合を行うと共に、結合IDも付与する。キー結合結果として、以下が得られる。
[101, (1, 36)] (←
(4) P7: “/ course / students / student_id / text () constraint: key join” node acquisition Since it has a join condition and the key join has not yet been executed, the key join is executed first. The node information of both P7 and P9 is acquired from the
次に、得られたキー結合結果から、P7のノードIDと結合IDを取り出し、ノード取得結果が得られる。 Next, the node ID and the combination ID of P7 are extracted from the obtained key combination result, and the node acquisition result is obtained.
先祖側のP4のノードを残す形で、P4が先祖でP7が子孫の関係のノードを取得する。その際、結合IDも検索部4の内部のメモリ(図示せず)に保持しておく。
結合条件を持っており、キー結合結果も(1)で得られているため、キー結合結果から、P9のノードIDと結合IDを取り出し、ノード取得結果を得る。
結合条件は持っていないため、パスインデクス部1、ノード管理部2から、パスに該当するノード情報を取得する(制約を持たないため、値インデクス部3により絞り込んでも同じ)全ての文書に該当パスを持つノードが存在するため、以下が得られる。
[201,(1,2)],[202,(1,12)],[203,(1,12)],[204,(1,12)]*,[205,(1,12)]*,[206,(1,12)]*,
[207,(,12)]
(8)P8:P9とP10の先祖子孫関係判定
先祖側のP10のノードを残す形で、パスインデクス部1、ノード管理部2からP10が先祖でP9が子孫の関係のノードを取得する。その際、結合IDも保持しておく。
[201, (1,2)], [202, (1,12)], [203, (1,12)], [204, (1,12)] *, [205, (1,12)] *, [206, (1,12)] *,
[207, (, 12)]
(8) P8: Determination of ancestor-descendant relationship between P9 and P10 In the form of leaving the ancestor-side P10 node, the node of the
同じ結合IDを含むもの同士で結合を行うが、本例では、"$b"にあたるP8側の単位で結合する。
(10)P1:結果生成
最後のP1でreturn句に従って返却結果を作成すると、図4のようになる。返却対象のノードの取得も、上記手順と類似した方法で行うことができるが、本発明では対象外であるため、その説明を省略する。
(10) P1: Result generation When a return result is created according to the return phrase in the last P1, it is as shown in FIG. Acquisition of the node to be returned can also be performed by a method similar to the above procedure, but since it is out of scope in the present invention, description thereof is omitted.
なお、図3に示す検索部4の動作をプログラムとして構築し、情報検索装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
It is possible to construct the operation of the
また、構築されたプログラムをハードディスクや、フレキシブルディスク・CD−ROM等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。 Further, the constructed program can be stored in a portable storage medium such as a hard disk, a flexible disk, or a CD-ROM, and can be installed or distributed in a computer.
なお、本発明は、上記の実施の形態及び実施例に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。 The present invention is not limited to the above-described embodiments and examples, and various modifications and applications can be made within the scope of the claims.
本発明は、構造化データである多数のXMLデータの蓄積や検索技術に適用可能である。 The present invention can be applied to a technique for accumulating and retrieving a large number of XML data as structured data.
1 パスインデクス記憶手段、パスインデクス部
2 ノード記憶手段、ノード管理部
3 値インデクス記憶手段、値インデクス部
4 検索部
41 実行木生成手段
42 検索実行手段
45 メモリ
1 path index storage means,
Claims (5)
入力された検索クエリで指定された検索パス及び検索キーワードに基づいて、XMLの構造をパス単位で格納したパスインデクス記憶手段と、XMLの各ノード間の関係を保持するための、親ノードが子ノードを含むノードIDで表される範囲ラベルをノードIDとするノード情報を格納したノード記憶手段を参照して、問い合わせ木を生成し、該問い合わせ木の処理対象となるパスに対し、ノード群を取得する処理、それらの先祖子孫関係の判定処理、ノード群の結合処理、最終的な結合結果を生成する結果生成処理の各処理種別のノードを含む実行木を生成する実行木生成ステップと、
前記実行木の各実行ノードにおいて、子ノードがある場合は該子ノードの結果を取得し、当該ノードの処理種別に応じた処理を行い、最終的な結果を出力する検索ステップと、
を行うことを特徴とする情報検索方法。 An information retrieval method in an apparatus for storing and retrieving XML data that is structured data,
Based on the search path and the search keyword specified by the input search query, the path index storage means for storing the XML structure in units of paths and the parent node for maintaining the relationship between each node of the XML are children. A query storage is generated by referring to a node storage unit that stores node information whose node ID is a range label represented by a node ID including a node, and a node group is determined for a path to be processed by the query tree. An execution tree generation step for generating an execution tree including nodes of each processing type of a process to acquire, a determination process of their ancestor-descendant relationship, a node group combination process, and a result generation process for generating a final combination result;
In each execution node of the execution tree, if there is a child node, a result of the child node is obtained, processing according to the processing type of the node is performed, and a final result is output;
An information retrieval method characterized by:
前記実行木の実行ノードが結合条件を有しているとき、該結合条件で指定されているノード群(結合キーノード群)について結合を行い、結合したペア毎に結合IDを付与し、検索記憶手段に格納し、
前記ノード記憶手段から、検索の単位となるノード群(検索ノード群)のノード情報を取得し、該検索ノード群に対し、前記結合キーノード群のノード情報の前記範囲ラベルに基づいて該当するものをマッチングし、マッチする検索ノード群を当該結合キーノード群の結合IDと共に取得し、該検索ノード群と該結合キーノード群を結合し、検索記憶手段に格納し、
前記検索クエリの指定に基づいて前記検索記憶手段に格納されている情報から結果を生成する
請求項1記載の情報検索方法。 The search step includes
When the execution node of the execution tree has a join condition, the join group is joined with respect to the node group (join key node group) designated by the join condition, and a join ID is assigned to each joined pair, and the search storage means Store and
Node information of a node group (search node group) as a unit of search is acquired from the node storage means, and the corresponding one based on the range label of the node information of the combined key node group is obtained for the search node group A matching search node group is obtained together with a combination ID of the combination key node group, the search node group and the combination key node group are combined, and stored in a search storage unit;
The information search method according to claim 1, wherein a result is generated from information stored in the search storage unit based on designation of the search query.
XMLの構造をパス単位で格納したパスインデクス記憶手段と、
XMLの各ノード間の関係を保持するための、親ノードが子ノードを含むノードIDで表される範囲ラベルをノードIDとするノード情報を格納したノード記憶手段と、
入力された検索クエリで指定された検索パス及び検索キーワードに基づいて、前記パスインデクス記憶手段と前記ノード記憶手段を参照して、問い合わせ木を生成し、該問い合わせ木の処理対象となるパスに対し、ノード群を取得する処理、それらの先祖子孫関係の判定処理、ノード群の結合処理、最終的な結合結果を生成する結果生成処理の各処理種別のノードを含む実行木を生成する実行木生成手段と、
前記実行木の各実行ノードにおいて、子ノードがある場合は該子ノードの結果を取得し、当該ノードの処理種別に応じた処理を行い、最終的な結果を出力する検索実行手段と、
を有することを特徴とする情報検索装置。 An information search apparatus in an apparatus for storing and searching XML data group that is structured data,
A path index storage means for storing the XML structure in units of paths;
Node storage means for storing node information whose node ID is a range label represented by a node ID whose parent node includes a child node, in order to maintain a relationship between nodes of XML;
Based on the search path and the search keyword specified by the input search query, the query index is generated by referring to the path index storage means and the node storage means, and the query tree is processed. An execution tree generation that generates an execution tree including nodes of each processing type of a node group acquisition process, a determination process of their ancestor-descendant relationship, a node group combination process, and a result generation process that generates a final combination result Means,
In each execution node of the execution tree, if there is a child node, a result of the child node is obtained, processing according to the processing type of the node is performed, and a search execution unit that outputs a final result;
An information retrieval apparatus comprising:
前記実行木の実行ノードが結合条件を有しているとき、該結合条件で指定されているノード群(結合キーノード群)について結合を行い、結合したペア毎に結合IDを付与し、検索記憶手段に格納する手段と、
前記ノード記憶手段から、検索の単位となるノード群(検索ノード群)のノード情報を取得し、該検索ノード群に対し、前記結合キーノード群のノード情報の前記範囲ラベルに基づいて該当するものをマッチングし、マッチする検索ノード群を当該結合キーノード群の結合IDと共に取得し、該検索ノード群と該結合キーノード群を結合し、検索記憶手段に格納する手段と、
前記検索クエリの指定に基づいて前記検索記憶手段に格納されている情報から結果を生成する手段と、
を含む請求項3記載の情報検索装置。 The search execution means includes
When the execution node of the execution tree has a join condition, the join group is joined with respect to the node group (join key node group) designated by the join condition, and a join ID is assigned to each joined pair, and the search storage means Means for storing;
Node information of a node group (search node group) as a unit of search is acquired from the node storage means, and the corresponding one based on the range label of the node information of the combined key node group is obtained for the search node group Means for matching, obtaining a matching search node group together with a combination ID of the combination key node group, combining the search node group and the combination key node group, and storing in the search storage unit;
Means for generating a result from information stored in the search storage means based on the designation of the search query;
The information search device according to claim 3, comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009117964A JP2010267081A (en) | 2009-05-14 | 2009-05-14 | Information search method, device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009117964A JP2010267081A (en) | 2009-05-14 | 2009-05-14 | Information search method, device and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010267081A true JP2010267081A (en) | 2010-11-25 |
Family
ID=43364000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009117964A Pending JP2010267081A (en) | 2009-05-14 | 2009-05-14 | Information search method, device and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010267081A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018073116A (en) * | 2016-10-28 | 2018-05-10 | 富士通株式会社 | Retrieval program, retrieval device, and retrieval method |
WO2018185921A1 (en) * | 2017-04-06 | 2018-10-11 | 富士通株式会社 | Index generation program, index generation device, index generation method, search program, search device, and search method |
CN111984689A (en) * | 2020-08-21 | 2020-11-24 | 北京百度网讯科技有限公司 | Information retrieval method, device, equipment and storage medium |
-
2009
- 2009-05-14 JP JP2009117964A patent/JP2010267081A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018073116A (en) * | 2016-10-28 | 2018-05-10 | 富士通株式会社 | Retrieval program, retrieval device, and retrieval method |
WO2018185921A1 (en) * | 2017-04-06 | 2018-10-11 | 富士通株式会社 | Index generation program, index generation device, index generation method, search program, search device, and search method |
US11520765B2 (en) | 2017-04-06 | 2022-12-06 | Fujitsu Limited | Computer-readable recording medium recording index generation program, information processing apparatus and search method |
CN111984689A (en) * | 2020-08-21 | 2020-11-24 | 北京百度网讯科技有限公司 | Information retrieval method, device, equipment and storage medium |
CN111984689B (en) * | 2020-08-21 | 2023-07-25 | 北京百度网讯科技有限公司 | Information retrieval method, device, equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Faye et al. | A survey of RDF storage approaches | |
US8935267B2 (en) | Apparatus and method for executing different query language queries on tree structured data using pre-computed indices of selective document paths | |
Su et al. | ODE: Ontology-assisted data extraction | |
US6889223B2 (en) | Apparatus, method, and program for retrieving structured documents | |
US7664773B2 (en) | Structured data storage method, structured data storage apparatus, and retrieval method | |
CA3078018A1 (en) | Scalable analysis platform for semi-structured data | |
US20130191404A1 (en) | Using views of subsets of nodes of a schema to generate data transformation jobs to transform input files in first data formats to output files in second data formats | |
US8082492B2 (en) | Structured-document management apparatus, search apparatus, storage method, search method and program | |
CN102033885A (en) | Method and system for XPath execution in XML (extensible markup language) data storage bank | |
JP4247108B2 (en) | Structured document search method, structured document search device, and program | |
JP2010267081A (en) | Information search method, device and program | |
US8745035B1 (en) | Multistage pipeline for feeding joined tables to a search system | |
Al-Wasil et al. | Establishing an XML metadata klnowledge base to assist integration of structured and semi-structured databases | |
CN1588371A (en) | Forming method for package device | |
Kapisha et al. | Exploring XML Index Structures and Evaluating C-Tree Index-based Algorithm | |
Droop et al. | Bringing the XML and semantic web worlds closer: transforming XML into RDF and embedding XPath into SPARQL | |
JP2019003501A (en) | Information processor, information processing method, and program | |
KR100555982B1 (en) | Information retrieval system for XML documents, its implementation methods, and the storage media containing program sources and the methods thereof | |
JP4334450B2 (en) | Structured document search apparatus and structured document search method | |
JP5225022B2 (en) | XML data search method, apparatus and program | |
Komamizu et al. | Faceted navigation framework for XML data | |
JP2004348484A (en) | Partial document acquiring method, system, program, and recording medium | |
JP5191441B2 (en) | Index construction method and apparatus, information retrieval method, apparatus and program | |
Jyothi et al. | Search Results From the Web Databases Using Ontology-Assisted Data Extraction | |
Ciaccia et al. | The collection index to support complex approximate queries |