JP6974665B1 - Search device, search method, and program - Google Patents
Search device, search method, and program Download PDFInfo
- Publication number
- JP6974665B1 JP6974665B1 JP2021108326A JP2021108326A JP6974665B1 JP 6974665 B1 JP6974665 B1 JP 6974665B1 JP 2021108326 A JP2021108326 A JP 2021108326A JP 2021108326 A JP2021108326 A JP 2021108326A JP 6974665 B1 JP6974665 B1 JP 6974665B1
- Authority
- JP
- Japan
- Prior art keywords
- search
- attribute
- information
- source
- identifier
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】2以上のデータソースから情報を適切に検索し、当該検索結果を統合することが困難であった。【解決手段】ソース識別子と1以上のソース属性定義情報とを有する情報であるソース層定義情報と、ユーザテーブル識別子と1以上のユーザ属性定義情報とを有するユーザ層定義情報と、2以上の各データソースに対して発行する検索命令を生成し、検索結果を取得し、統合データを作成するための情報である変換ルール定義情報とを有するデータ辞書411を参照して、情報を検索する検索装置4であり、検索条件を受け付ける条件受付部121と、データ辞書411を参照して、検索条件に対応する2以上のデータソースごとに検索命令を生成し、当該検索命令に基づいた検索結果を取得し、当該検索結果を統合し、統合データを取得する検索部432と、検索部432が取得した統合データを出力する結果出力部441とを具備する検索装置4により、上記課題を解決できる。【選択図】図17PROBLEM TO BE SOLVED: To appropriately search information from two or more data sources and integrate the search results. SOLUTION: A source layer definition information having a source identifier and one or more source attribute definition information, a user layer definition information having a user table identifier and one or more user attribute definition information, and two or more each. A search device that searches for information by referring to a data dictionary 411 that has conversion rule definition information that is information for generating search instructions to be issued to a data source, acquiring search results, and creating integrated data. 4. With reference to the condition reception unit 121 that accepts the search condition and the data dictionary 411, a search command is generated for each of two or more data sources corresponding to the search condition, and the search result based on the search command is acquired. The above problem can be solved by the search device 4 including the search unit 432 that integrates the search results and acquires the integrated data, and the result output unit 441 that outputs the integrated data acquired by the search unit 432. [Selection diagram] FIG. 17
Description
本発明は、情報を検索する検索装置等に関するものである。 The present invention relates to a search device or the like for retrieving information.
従来、少ない資源で高速に複数表の結合演算を実行するリレーショナルデータベースのDBMSにおける表結合処理方法の技術があった(特許文献1参照)。 Conventionally, there has been a technique of a table join processing method in a relational database DBMS that executes a join operation of a plurality of tables at high speed with a small amount of resources (see Patent Document 1).
しかしながら、従来技術においては、2以上のデータソースから情報を適切に検索し、当該検索結果を統合することが困難であった。 However, in the prior art, it has been difficult to appropriately search for information from two or more data sources and integrate the search results.
本第一の発明の検索装置は、1以上の属性値を有する1以上のレコードを含む2以上の各データソースを定義する情報であり、データソースの識別子であるソース識別子と、データソースの属性識別子であるソース属性識別子を含む1以上のソース属性定義情報とを有する情報であるソース層定義情報と、検索条件に基づく検索の対象のテーブルであり、1以上の属性値を有する1以上のレコードを含むテーブルであるユーザテーブルを定義する情報であり、ユーザテーブルを識別するユーザテーブル識別子と、ユーザテーブルの属性識別子であるユーザ属性識別子を含む1以上のユーザ属性定義情報とを有する情報であるユーザ層定義情報と、検索条件に基づいて、2以上の各データソースに対して発行する検索命令を生成し、検索命令に対応する検索結果を取得し、2以上の検索結果を用いて、検索条件に対応する統合データを作成するための情報である変換ルール定義情報と、を有するデータ辞書を参照して、情報を検索する検索装置であり、ユーザテーブルに対する検索条件を受け付ける条件受付部と、データ辞書を参照して、検索条件に対応する2以上のデータソースを決定し、変換ルール定義情報を用いて、2以上の各データソースごとに、検索命令を生成し、検索命令に基づいた検索結果を取得し、変換ルール定義情報とユーザ層定義情報とを用いて、2以上の各データソースに対応する検索結果を統合し、検索条件に対応する統合データを取得する検索部と、検索部が取得した統合データを出力する結果出力部とを具備する検索装置である。 The search device of the first invention is information that defines each of two or more data sources including one or more records having one or more attribute values, and is a source identifier that is an identifier of the data source and an attribute of the data source. Source layer definition information that is information having one or more source attribute definition information including source attribute identifier that is an identifier, and one or more records that are search target tables based on search conditions and have one or more attribute values. Information that defines a user table, which is a table including Based on the layer definition information and the search condition, a search command to be issued to each of two or more data sources is generated, the search result corresponding to the search command is acquired, and the search condition is used using the two or more search results. It is a search device that searches for information by referring to the conversion rule definition information that is the information for creating the integrated data corresponding to the above, and the condition reception unit that accepts the search conditions for the user table, and the data. Refer to the dictionary to determine two or more data sources corresponding to the search conditions, generate a search command for each of the two or more data sources using the conversion rule definition information, and search results based on the search command. The search unit and the search unit that acquire the integrated data corresponding to the search conditions by integrating the search results corresponding to each of the two or more data sources by using the conversion rule definition information and the user layer definition information. It is a search device including a result output unit that outputs the acquired integrated data.
かかる構成により、2以上のデータソースから情報を適切に検索し、当該検索結果を統合できる。 With such a configuration, information can be appropriately searched from two or more data sources, and the search results can be integrated.
また、本第二の発明の検索装置は、第一の発明に対して、変換ルール定義情報は、2以上のデータソースのうちの1以上のデータソースを用いて構成される変換ビューを定義する1以上の変換ビュー情報を有し、変換ビュー情報は、1以上のビュー属性値を有する1以上のレコードを含み得る変換ビューを定義する情報であり、ビュー属性値に対応するビュー属性識別子と、ビュー属性値の取得方法を特定するビュー属性値元情報とを有する1以上のビュー属性定義情報を有し、ユーザ属性定義情報は、1以上の変換ビューの1以上のビュー属性値を用いたユーザ属性値の取得方法を特定するユーザ属性値元情報を有し、検索部は、検索条件に含まれる1以上のユーザ属性識別子を取得し、1以上の各ユーザ属性識別子に対応するユーザ属性値元情報を取得し、ユーザ属性値元情報に対応する1以上のビュー属性識別子を取得し、1以上の各ビュー属性識別子に対応するソース識別子をビュー属性定義情報から取得するソース決定手段と、検索条件とビュー属性値元情報とを用いて、ソース決定手段が取得した2以上の各ソース識別子で識別されるデータソースごとに検索命令を生成する命令生成手段と、2以上の各データソースごとに、検索命令に基づいた検索結果を取得するソース検索手段と、検索条件とユーザ層定義情報とを用いて、ソース検索手段が取得した2以上の各データソースごとの検索結果を統合した統合データを取得する統合手段とを具備する、検索装置である。 Further, the search device of the second invention defines a conversion view in which the conversion rule definition information is configured by using one or more data sources of two or more data sources with respect to the first invention. The transformation view information has one or more transformation view information, and the transformation view information is information that defines a transformation view that can include one or more records having one or more view attribute values, and includes a view attribute identifier corresponding to the view attribute value and a view attribute identifier. A user who has one or more view attribute definition information having a view attribute value source information for specifying a method of acquiring a view attribute value, and the user attribute definition information is a user who uses one or more view attribute values of one or more converted views. It has user attribute value source information that specifies the acquisition method of the attribute value, and the search unit acquires one or more user attribute identifiers included in the search condition, and the user attribute value source corresponding to each one or more user attribute identifiers. Source determination means and search conditions for acquiring information, acquiring one or more view attribute identifiers corresponding to user attribute value source information, and acquiring source identifiers corresponding to one or more view attribute identifiers from view attribute definition information. An instruction generation means that generates a search instruction for each data source identified by each of the two or more source identifiers acquired by the source determination means, and an instruction generation means for each of the two or more data sources, using the and view attribute value source information. Acquire integrated data that integrates the search results for each of two or more data sources acquired by the source search means using the source search means that acquires the search results based on the search command and the search conditions and user layer definition information. It is a search device provided with an integrated means for performing.
かかる構成により、2以上のデータソースから情報を適切に検索し、当該検索結果を統合できる。 With such a configuration, information can be appropriately searched from two or more data sources, and the search results can be integrated.
また、本第三の発明の検索装置は、第二の発明に対して、1以上のビュー属性値元情報のうちのいずれかのビュー属性値元情報は、2以上のいずれかのデータソースのソース属性識別子または1以上のいずれかの変換ビューのビュー属性識別子のうちの1以上の属性識別子と、1以上の属性識別子に対応する属性値をパラメータとする演算式またはプログラム識別子とを有し、検索部は、ビュー属性値元情報に対応するビュー属性値を取得する場合に、ビュー属性値元情報が有する1以上の各属性識別子に対応する属性値をデータソースまたは変換ビューから取得し、当該取得した1以上の属性値を演算式またはプログラム識別子で識別されるプログラムに与えて、演算式またはプログラムを実行し、ビュー属性値を取得する、検索装置である。 Further, in the search device of the third invention, with respect to the second invention, the view attribute value source information of any one or more view attribute value source information is of any of the two or more data sources. It has one or more attribute identifiers of the source attribute identifier or one or more of the view attribute identifiers of the conversion view, and an arithmetic expression or program identifier whose parameters are the attribute values corresponding to the one or more attribute identifiers. When the search unit acquires the view attribute value corresponding to the view attribute value source information, the search unit acquires the attribute value corresponding to each one or more attribute identifiers of the view attribute value source information from the data source or the transformed view. It is a search device that gives one or more acquired attribute values to a program identified by an arithmetic expression or a program identifier, executes the arithmetic expression or the program, and acquires a view attribute value.
かかる構成により、2以上のデータソースから情報を適切に検索し、当該検索結果を統合できる。 With such a configuration, information can be appropriately searched from two or more data sources, and the search results can be integrated.
また、本第四の発明の検索装置は、第二または第三の発明に対して、変換ルール定義情報は、2以上の変換ビュー情報を有し、かつ2以上の変換ビュー情報に基づいて取得された2以上の検索結果を結合する方式を特定する結合方式識別子を有し、統合手段は、結合方式識別子により特定される結合方式に従って、2以上の検索結果を結合し、統合データを取得する検索装置である。 Further, the search device of the fourth invention has two or more conversion view information and the conversion rule definition information is acquired based on two or more conversion view information with respect to the second or third invention. It has a join method identifier that specifies a method for combining two or more search results, and the integration means combines two or more search results according to the join method specified by the join method identifier and acquires integrated data. It is a search device.
かかる構成により、2以上のデータソースから情報を適切に検索し、当該検索結果を適切に統合できる。 With such a configuration, information can be appropriately searched from two or more data sources, and the search results can be appropriately integrated.
また、本第五の発明の検索装置は、第四の発明に対して、変換ルール定義情報は、「UNION」「CHOICE」「LOOKUP」の3以上の結合方式識別子のうちの2以上の結合方式識別子の中の一の結合方式識別子を有し、「UNION」は、2以上の検索結果に対して、キー項目でグループ化し、非キー項目の2以上の属性値を集約することにより、一のレコードを構成する併合処理により2以上の検索結果を結合することを示す情報であり、「CHOICE」は、優先順位に従い、2以上の検索結果の中から1以上の検索結果に含まれるキー項目の属性値を選択し、かつ非キー項目の2以上の属性値を集約して、一のレコードを構成する選択処理により2以上の検索結果を結合することを示す情報であり、「LOOKUP」は、参照条件に従い、2以上の検索結果のうちの一の検索結果のキー項目の属性値に、当該一の検索結果とは異なる他の検索結果に含まれるキー項目の属性値であり、一の検索結果に含まれないキー項目の属性値を付加し、かつ非キー項目の2以上の属性値を集約して、一のレコードを構成する補完処理により2以上の検索結果を結合することを示す情報である、検索装置である。 Further, in the search device of the fifth invention, the conversion rule definition information is the combination method of two or more of the three or more combination method identifiers of "UNION", "CHOICE", and "LOOKUP" with respect to the fourth invention. Having one combination method identifier among the identifiers, "UNION" is one by grouping two or more search results by key items and aggregating two or more attribute values of non-key items. Information indicating that two or more search results are combined by the merge process constituting the record, and "CHOICE" is a key item included in one or more search results from two or more search results according to the priority order. "LOOKUP" is information indicating that two or more search results are combined by a selection process that selects an attribute value and aggregates two or more attribute values of non-key items to form one record. According to the reference condition, the attribute value of the key item of one of the two or more search results is the attribute value of the key item included in another search result different from the one search result, and one search. Information indicating that the attribute values of key items that are not included in the results are added, and two or more attribute values of non-key items are aggregated, and two or more search results are combined by the completion process that constitutes one record. It is a search device.
かかる構成により、2以上のデータソースから情報を適切に検索し、当該検索結果を適切に統合できる。 With such a configuration, information can be appropriately searched from two or more data sources, and the search results can be appropriately integrated.
また、本第六の発明の検索装置は、第二から第五いずれか1つの発明に対して、1以上のユーザ属性値元情報のうちのいずれかのユーザ属性値元情報は、1以上のいずれかの変換ビューのビュー属性識別子または2以上のいずれかのデータソースのソース属性識別子のうちの1以上の属性識別子と、1以上の属性識別子に対応する属性値をパラメータとする演算式またはプログラム識別子とを有し、検索部は、ユーザ属性値元情報に対応するユーザ属性値を取得する場合に、ユーザ属性値元情報が有する1以上の各属性識別子に対応する属性値を変換ビューまたはデータソースから取得し、取得した1以上の属性値を演算式またはプログラム識別子で識別されるプログラムに与えて、演算式またはプログラムを実行し、ユーザ属性値を取得する、検索装置である。 Further, in the search device of the sixth invention, for any one of the second to fifth inventions, the user attribute value source information of any one or more of the user attribute value source information is one or more. An arithmetic expression or program whose parameters are one or more attribute identifiers of the view attribute identifier of any of the transformed views or the source attribute identifier of any of two or more data sources and the attribute values corresponding to one or more attribute identifiers. When the search unit acquires the user attribute value corresponding to the user attribute value source information, the search unit converts the attribute value corresponding to one or more attribute identifiers possessed by the user attribute value source information into a conversion view or data. It is a search device that acquires a user attribute value by executing an arithmetic expression or program by giving one or more acquired attribute values obtained from a source to a program identified by an arithmetic expression or a program identifier.
かかる構成により、2以上のデータソースから情報を適切に検索し、当該検索結果を統合できる。 With such a configuration, information can be appropriately searched from two or more data sources, and the search results can be integrated.
また、本第七の発明の検索装置は、第一から第六いずれか1つの発明に対して、ソース層定義情報は、データソースに対する検索命令を生成するための命令元情報を有し、2以上の各データソースに対応する命令元情報には、少なくとも2種類以上の異なる命令元情報が存在し、検索部は、2以上の各データソースに対する命令元情報に従って、2以上の各データソースから情報を取得するための検索命令を生成し、検索命令に基づいた検索結果を取得し、2以上の検索結果を統合し、統合データを取得する、検索装置である。 Further, the search device of the seventh invention has, for any one of the first to sixth inventions, the source layer definition information has command source information for generating a search command for the data source, and 2 There are at least two or more different types of command source information in the command source information corresponding to each of the above data sources, and the search unit can use the command source information for each of the two or more data sources from two or more data sources. It is a search device that generates a search command for acquiring information, acquires a search result based on the search command, integrates two or more search results, and acquires integrated data.
かかる構成により、2以上のデータソースから情報を適切に検索し、当該検索結果を統合できる。 With such a configuration, information can be appropriately searched from two or more data sources, and the search results can be integrated.
また、本第八の発明の検索装置は、第七の発明に対して、2種類以上の異なる命令元情報は、SQL文の検索命令を生成するための情報、および検索モジュールを生成するための情報を含み、検索部は、2以上の各データソースに対する命令元情報に従って、SQL文に対応するデータソースに対しては、命令元情報に従ったSQL文である検索命令を生成し、検索モジュールに対応するデータソースに対しては、命令元情報に従った検索モジュールのインターフェイスである検索命令を生成し、2以上の各データソースごとに、検索命令に基づいた検索結果を取得し、2以上の検索結果を統合し、統合データを取得する、検索装置である。 Further, in the search device of the eighth invention, with respect to the seventh invention, two or more kinds of different command source information are used to generate information for generating a search command for an SQL statement and for generating a search module. The search unit generates a search command which is an SQL statement according to the instruction source information for the data source corresponding to the SQL statement according to the instruction source information for each of two or more data sources including the information, and the search module. For the data source corresponding to, the search instruction which is the interface of the search module according to the instruction source information is generated, and the search result based on the search instruction is acquired for each of 2 or more data sources, and 2 or more. It is a search device that integrates the search results of the above and acquires the integrated data.
かかる構成により、2以上のデータソースから情報を適切に検索し、当該検索結果を統合できる。 With such a configuration, information can be appropriately searched from two or more data sources, and the search results can be integrated.
また、本第九の発明の検索装置は、第一から第八いずれか1つの発明に対して、ソース層定義情報は、2以上の各データソースにアクセスするための接続情報を有し、検索部は、接続情報を用いて、接続情報に対応するデータソースにアクセスし、検索命令に基づいた検索結果をデータソースから取得し、2以上の検索結果を統合し、統合データを取得する、検索装置である。 Further, the search device of the ninth invention has connection information for accessing each of two or more data sources in the source layer definition information for any one of the first to eighth inventions, and searches. The department uses the connection information to access the data source corresponding to the connection information, obtains the search result based on the search command from the data source, integrates two or more search results, and acquires the integrated data. It is a device.
かかる構成により、2以上のデータソースから情報を適切に検索し、当該検索結果を統合できる。 With such a configuration, information can be appropriately searched from two or more data sources, and the search results can be integrated.
また、本第十の発明の検索装置は、第一から第九いずれか1つの発明に対して、2以上のデータソースのうち、少なくとも1以上のデータソースに対して、データソースが有する2以上のレコードのうちの1以上の各レコードごと、および各レコードの1以上の各属性ごとに、属性値が存在する位置を特定する属性位置情報を有する配列インデックスが格納されており、検索部は、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得し、属性位置情報を用いて、検索条件が有する属性識別子に対応する属性値をデータソースから取得し、属性値を有する統合データを構成する、検索装置である。 Further, the search device of the tenth invention has two or more data sources for at least one data source among two or more data sources for any one of the first to ninth inventions. An array index having attribute position information for specifying the position where the attribute value exists is stored for each one or more records of the records and for each one or more attributes of each record. The attribute position information corresponding to the attribute identifier of the search condition is acquired from the array index, the attribute value corresponding to the attribute identifier of the search condition is acquired from the data source using the attribute position information, and the integration having the attribute value is obtained. It is a search device that composes data.
かかる構成により、情報検索を高速に行える。 With such a configuration, information retrieval can be performed at high speed.
本発明による検索装置によれば、2以上のデータソースから情報を適切に検索し、当該検索結果を統合できる。 According to the search device according to the present invention, information can be appropriately searched from two or more data sources, and the search results can be integrated.
以下、検索装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。 Hereinafter, embodiments of the search device and the like will be described with reference to the drawings. In addition, since the components with the same reference numerals perform the same operation in the embodiment, the description may be omitted again.
(実施の形態1)
本実施の形態において、1種類以上のインデックスを用いて、データソースに対して情報検索を行う検索装置を具備する検索システムについて説明する。なお、1種類以上のインデックスは、例えば、後述する配列インデックス、後述する配列ラベル・インデックス、後述するレコード・インデックス、後述する2次インデックス、後述するソース・インデックスである。
(Embodiment 1)
In the present embodiment, a search system including a search device for searching information on a data source using one or more types of indexes will be described. The one or more types of indexes are, for example, an array index described later, an array label index described later, a record index described later, a secondary index described later, and a source index described later.
また、本実施の形態において、データソースを用いて、当該データソースに対応する1種類以上のインデックスを生成する検索装置を具備する検索システムについて説明する。 Further, in the present embodiment, a search system including a search device for generating one or more types of indexes corresponding to the data source by using the data source will be described.
さらに、本実施の形態において、インデックスを自動更新する検索装置を具備する検索システムについて説明する。 Further, in the present embodiment, a search system including a search device for automatically updating the index will be described.
図1は、本実施の形態における検索システムAの概念図である。検索システムAは、例えば、検索装置1、1または2以上のデータソース管理装置2、1または2以上の端末装置3を備える。
FIG. 1 is a conceptual diagram of the search system A according to the present embodiment. The search system A includes, for example, a
検索装置1は、データソースから情報を検索する装置である。データソース管理装置2は、1または2以上のデータソースが格納されている装置である。端末装置3は、情報を検索するユーザが使用する端末である。
The
検索装置1、データソース管理装置2は、例えば、いわゆるサーバであり、例えば、クラウドサーバ、ASPサーバ等である。なお、検索装置1、データソース管理装置2の種類は問わない。また、検索装置1は、スタンドアロンの装置でも良い。かかる場合、検索システムAは、データソース管理装置2や端末装置3を有さなくても良い。また、かかる場合、データソースは、検索装置1に格納されている。
The
さらに、検索装置1と1以上のデータソース管理装置2とは、インターネットやLAN等のネットワークにより、通信可能である。また、検索装置1と端末装置3とは、インターネットやLAN等のネットワークにより、通信可能である。
Further, the
図2は、本実施の形態における検索システムAのブロック図である。図3は、検索システムAを構成する検索装置1のブロック図である。
FIG. 2 is a block diagram of the search system A according to the present embodiment. FIG. 3 is a block diagram of the
検索装置1は、格納部11、受付部12、処理部13、および出力部14を備える。格納部11は、データソース格納部111、インデックス格納部112を備える。インデックス格納部112は、配列インデックス格納部1121、配列ラベル・インデックス格納部1122、レコード・インデックス格納部1123、2次インデックス格納部1124、およびソース・インデックス格納部1125を備える。受付部12は、条件受付部121を備える。処理部13は、インデックス生成部131、検索部132、およびインデックス更新部133を備える。インデックス生成部131は、配列インデックス生成部1311、配列ラベル・インデックス生成部1312、レコード・インデックス生成部1313、2次インデックス生成部1314、およびソース・インデックス生成部1315を備える。出力部14は、結果出力部141を備える。
The
データソース管理装置2は、データソース格納部111を備える。
The data
端末装置3は、端末格納部31、端末受付部32、端末処理部33、端末送信部34、端末受信部35、および端末出力部36を備える。
The
検索装置1を構成する格納部11には、各種の情報が格納される。各種の情報は、例えば、後述するデータソース、後述する1以上の種類のインデックスである。
Various types of information are stored in the
データソース格納部111には、1または2以上のデータソースが格納される。なお、検索装置1は、データソース格納部111が存在しなくても良い。かかる場合、検索対象のデータソースは、データソース管理装置2に格納されている。
One or two or more data sources are stored in the data
データソースは、検索対象のデータの集合である。データは、情報と言っても良い。データソースは、通常、一つのファイルである。ただし、データソースは、例えば、一つのデータベース、データベース内の一つの表などでも良い。データソースは、通常、1または2以上のレコードを有する。レコードは、例えば、行やタップル等と言っても良い。レコード間は、例えば、第一デリミタにより区切られているなど、その区切りは認識可能である。第一デリミタは、例えば、リターンコード、TABコード、スペース等であるが、問わない。データソースは、検索対象以外のデータを有しても良い。検索対象以外のデータは、例えば、項目ラベル、属性識別子である。項目ラベルは、項目のラベルであるが、項目名でも良い。項目は、例えば、キー項目と明細項目とを有する。キー項目は、キー項目値に対する識別子である。また、1レコード内に、2以上のキー項目が存在しても良い。明細項目は、キー項目を含む項目である。なお、キー項目や明細項目も、属性識別子である、と考えても良い。つまり、キー項目値や明細項目値も、レコードを構成する属性値である、と考えても良い。属性識別子は、属性を識別する情報である。属性識別子は、例えば、属性名、属性のIDである。レコードは、通常、2以上の属性値を有する。レコードは、キー項目値や明細項目値も有しても良い。ただし、レコードは、一つの属性値でも良い。レコードにおける属性値の間は、例えば、第二デリミタにより区切られているなど、その区切りは認識可能である。第二デリミタは、例えば、カンマ「,」、コロン「:」、セミコロン「;」、スペース、TABコード等であるが、問わない。データソースは、ソース識別子に対応付いている。ソース識別子は、データソースを識別する情報であり、例えば、ファイル名、ファイルのIDである。なお、キー項目値は、例えば、予め決められている。なお、予め決められていることは、通常、ユーザの指定により、インデックスの生成時には、決まっていることを意味する。 A data source is a set of data to be searched. Data can be called information. The data source is usually a single file. However, the data source may be, for example, one database, one table in the database, or the like. A data source usually has one or more records. A record may be called a line, a tuple, or the like, for example. The delimiter is recognizable, for example, the records are separated by the first delimiter. The first delimiter is, for example, a return code, a TAB code, a space, or the like, but it does not matter. The data source may have data other than the search target. The data other than the search target is, for example, an item label and an attribute identifier. The item label is an item label, but may be an item name. The item has, for example, a key item and a detailed item. The key item is an identifier for the key item value. Further, two or more key items may exist in one record. The item item is an item including a key item. It may be considered that the key item and the detail item are also attribute identifiers. That is, it may be considered that the key item value and the detail item value are also attribute values constituting the record. The attribute identifier is information that identifies the attribute. The attribute identifier is, for example, an attribute name or an attribute ID. Records usually have two or more attribute values. The record may also have key item values and item item values. However, the record may have one attribute value. The delimiters are recognizable, for example, separated by a second delimiter between the attribute values in the record. The second delimiter is, for example, a comma ",", a colon ":", a semicolon ";", a space, a TAB code, or the like, but it does not matter. The data source corresponds to the source identifier. The source identifier is information that identifies a data source, and is, for example, a file name or a file ID. The key item value is, for example, predetermined. It should be noted that what is predetermined means that it is usually determined at the time of index generation according to the user's specification.
データソースの中の属性値は、通常、固定長ではなく、可変長である。また、データソースの中のレコードも、通常、固定長ではなく、可変長である。ただし、データソースの中の属性値やレコードは、固定長でも良い。 Attribute values in data sources are usually variable length rather than fixed length. Also, the records in the data source are usually variable length rather than fixed length. However, the attribute values and records in the data source may have a fixed length.
データソースは、1以上のソース属性値に対応付いていることは好適である。ソース属性値は、データソースの属性値である。ソース属性値は、例えば、最終更新時情報、更新者識別子、サイズ、種類識別子である。最終更新時情報は、データソースの最終更新時を特定する情報であり、例えば、年月日時分秒、月日時分である。更新者識別子は、データソースの更新者(通常、最終更新者)を識別する情報である。サイズは、データソースのデータサイズであり、例えば、バイト数、ビット数である。種類識別子は、データソースの種類を特定する情報であり、例えば、「ファイル」「RDB」「表」である。「ファイル」はデータソースがファイルであることを示す。「RDB」はデータソースがRDB(リレーショナルデータベース)であることを示す。「表」はデータソースが表形式の情報であることを示す。 It is preferable that the data source corresponds to one or more source attribute values. The source attribute value is the attribute value of the data source. The source attribute value is, for example, last update information, updater identifier, size, and type identifier. The information at the time of the last update is information for specifying the time of the last update of the data source, and is, for example, the year, month, day, hour, minute, second, and month, day, hour, and minute. The updater identifier is information that identifies the updater (usually the last updater) of the data source. The size is the data size of the data source, for example, the number of bytes and the number of bits. The type identifier is information that identifies the type of data source, and is, for example, a "file", "RDB", or "table". "File" indicates that the data source is a file. "RDB" indicates that the data source is an RDB (relational database). "Table" indicates that the data source is tabular information.
インデックス格納部112には、1または2以上の種類のインデックスが格納される。インデックスとは、データソースから所望の情報を検索するために参照される情報(通常、索引)である。インデックスは、例えば、後述する配列インデックス、後述する配列ラベル・インデックス、後述するレコード・インデックス、後述する2次インデックス、後述するソース・インデックスである。
The
1種類以上の各インデックスは、例えば、ファイルである。ただし、インデックスは、RDB等のデータベース内の情報でも良く、その物理的な構造は問わない。データベース内の情報は、例えば、表である。 Each index of one or more types is, for example, a file. However, the index may be information in a database such as RDB, and its physical structure does not matter. The information in the database is, for example, a table.
なお、インデックスには、生成時情報が対応付いていることは好適である。生成時情報は、インデックスが生成された時を特定する情報であり、例えば、年月日時分秒、月日時分である。 It is preferable that the index is associated with the information at the time of generation. The generation time information is information that specifies the time when the index is generated, and is, for example, the year, month, day, hour, minute, second, and month, day, day, and minute.
配列インデックス格納部1121には、配列インデックスが格納される。配列インデックス格納部1121には、通常、データソースごとに、配列インデックスが格納される。つまり、配列インデックスは、通常、データソースを識別するソース識別子に対応付いている。なお、検索対象のデータソースが一つである場合、配列インデックスは、ソース識別子に対応付いている必要はない。
The array index is stored in the array
配列インデックスは、レコード内の属性値の位置を特定するための情報であるである。 配列インデックスは、データソースが有するレコードごとの情報である1以上の配列インデックスレコードを有する。配列インデックスレコードは、各レコードの各属性ごとの属性位置情報を有する。属性位置情報は、属性値が存在する位置を特定する情報である。属性位置情報は、通常、属性値のレコード内におけるオフセットである。ただし、属性位置情報は、データソース内におけるオフセット等でも良い。属性位置情報は、例えば、レコードを識別するレコード識別子、および属性識別子に対応付いている。 The array index is information for specifying the position of the attribute value in the record. The array index has one or more array index records that are record-by-record information that the data source has. The array index record has attribute position information for each attribute of each record. The attribute position information is information that identifies the position where the attribute value exists. The attribute position information is usually an offset within the record of the attribute value. However, the attribute position information may be an offset or the like in the data source. The attribute position information corresponds to, for example, a record identifier that identifies a record and an attribute identifier.
配列インデックスは、すべてのレコードに対応する一部の属性値の属性位置情報を有することは好適であるが、データソースが有するすべてのレコードに対応するすべての属性値の属性位置情報を有しても良いし、一部のレコードに対応するすべての属性値の属性位置情報を有しても良いし、一部のレコードに対応する一部の属性値の属性位置情報を有しても良い。 It is preferable that the array index has the attribute position information of some attribute values corresponding to all the records, but it has the attribute position information of all the attribute values corresponding to all the records of the data source. It may have the attribute position information of all the attribute values corresponding to some records, or may have the attribute position information of some attribute values corresponding to some records.
配列インデックスが、一部の属性値の属性位置情報のみを有する場合、データソースのレコード内の属性値の並びの順に、配列インデックスは属性位置情報を有する。 When the array index has only the attribute position information of some attribute values, the array index has the attribute position information in the order of the list of the attribute values in the record of the data source.
配列ラベル・インデックス格納部1122には、配列ラベル・インデックスが格納される。配列ラベル・インデックス格納部1122には、通常、データソースごとに、配列ラベル・インデックスが格納される。つまり、配列ラベル・インデックスは、通常、ソース識別子に対応付いている。なお、検索対象のデータソースが一つである場合、配列ラベル・インデックスは、ソース識別子に対応付いている必要はない。
The array label
配列ラベル・インデックスは、データソースのレコードにおける属性の順番を特定するための情報である。配列ラベル・インデックスは、データソースが有するレコードごとの情報である1以上の配列ラベル・インデックスレコードを有する。配列ラベル・インデックスレコードは、レコード内における属性の順番を示す情報である。配列ラベル・インデックスレコードは、例えば、属性識別子と属性順番情報との組である。2以上の各配列ラベル・インデックスレコードは、例えば、レコード内の順番に配置された属性識別子でも良い。配列ラベル・インデックスは、レコードにおけるすべての属性の順番を特定する情報であることは好適である。配列ラベル・インデックスにおいて、属性識別子はソートされていることは好適である。 The array label index is information for specifying the order of attributes in the records of the data source. The array label index has one or more array label index records that are record-by-record information that the data source has. The array label index record is information indicating the order of attributes in the record. An array label index record is, for example, a set of an attribute identifier and attribute order information. Each of the two or more array label index records may be, for example, an attribute identifier arranged in order in the record. It is preferable that the array label index is information that identifies the order of all attributes in the record. In the array label index, it is preferable that the attribute identifiers are sorted.
レコード・インデックス格納部1123には、レコード・インデックスが格納される。レコード・インデックス格納部1123には、通常、データソースごとに、レコード・インデックスが格納される。つまり、レコード・インデックスは、通常、ソース識別子に対応付いている。なお、検索対象のデータソースが一つである場合、レコード・インデックスは、ソース識別子に対応付いている必要はない。
The record index is stored in the record
レコード・インデックスは、データソースのレコードに対応するインデックスである。レコード・インデックスは、データソースのレコードの位置を特定するための1以上のレコード・インデックスレコードを有する。レコード・インデックスレコードは、キー項目値あるいは2以上のキー項目値の組合せと、レコード位置情報とを有する。レコード・インデックスレコードは、キー項目値とレコード位置情報とレコード・インデックスレコード位置情報の組でも良い。
また、同じレコード内の異なるキー項目値、あるいはキー項目値の組合せとレコード位置情報とを有する、別のレコード・インデックスを有することは好適である。
A record index is an index that corresponds to a record in the data source. The record index has one or more record index records for locating records in the data source. The record index record has a key item value or a combination of two or more key item values and record position information. The record index record may be a set of a key item value, a record position information, and a record index record position information.
It is also preferable to have a different record index with different key item values within the same record, or a combination of key item values and record position information.
キー項目値は、レコードに含まれる属性値であり、キーとなる属性値である。キー項目値は、レコードを識別可能なユニークな情報であることは好適であるが、ユニークな情報でなくても良い。 The key item value is an attribute value included in the record and is a key attribute value. The key item value is preferably unique information that can identify the record, but does not have to be unique information.
レコード位置情報は、キー項目値を含むレコードの位置を特定する情報である。レコード位置情報は、例えば、レコードの位置を特定するデータソースの中のオフセットである。レコード位置情報は、例えば、レコードの先頭のオフセットである。レコード位置情報は、例えば、レコードの最後の情報のオフセットでも良い。 The record position information is information that identifies the position of the record including the key item value. The record position information is, for example, an offset in the data source that identifies the position of the record. The record position information is, for example, the offset at the beginning of the record. The record position information may be, for example, an offset of the last information of the record.
レコード・インデックスレコード位置情報は、レコード・インデックスにおけるレコード・インデックスレコードの位置を特定する情報である。レコード・インデックスレコード位置情報は、例えば、レコード・インデックスにおけるレコード・インデックスレコードのオフセットである。 The record index record position information is information that identifies the position of the record index record in the record index. The record index record position information is, for example, the offset of the record index record in the record index.
なお、レコード・インデックスにおいて、キー項目値がソートされていることは好適である。 It is preferable that the key item values are sorted in the record index.
また、レコード・インデックスレコードと配列インデックスレコードとは、対応付いていることは好適である。レコード・インデックスレコードと配列インデックスレコードとは、例えば、キー項目値により対応付いている。 Further, it is preferable that the record index record and the array index record are associated with each other. The record index record and the array index record are associated with each other by, for example, a key item value.
2次インデックス格納部1124には、2次インデックスが格納される。2次インデックス格納部1124には、通常、データソースごとに、2次インデックスが格納される。つまり、2次インデックスは、通常、ソース識別子に対応付いている。なお、検索対象のデータソースが一つである場合、2次インデックスは、ソース識別子に対応付いている必要はない。
The secondary index is stored in the secondary
2次インデックスは、レコード・インデックスに高速にアクセスするためのインデックスである。2次インデックスは、データソースが有する2以上のレコードのうちの一部である1以上の各レコードに対応する情報である。2次インデックスは、レコードごとの2次インデックスレコードを有する。2次インデックスレコードは、キー項目値とレコード・インデックスレコード位置情報との組である。レコード・インデックスレコード位置情報は、レコード・インデックス内における箇所であり、レコード位置情報が存在する箇所を特定する情報である。キー項目値は、レコードが有するキー項目値である。 The secondary index is an index for high-speed access to the record index. The quadratic index is information corresponding to each one or more records that is a part of the two or more records possessed by the data source. The secondary index has a secondary index record for each record. The secondary index record is a set of the key item value and the record index record position information. Record index The record position information is a place in the record index and is information for specifying a place where the record position information exists. The key item value is the key item value that the record has.
なお、2次インデックスにおけるキー項目値は、ソートされていることは好適である。 It is preferable that the key item values in the secondary index are sorted.
ソース・インデックス格納部1125には、ソース・インデックスが格納される。ソース・インデックスは、データソースごとのインデックスである。ソース・インデックスは、例えば、データソースごとのソース・インデックスレコードの集合である。 The source index is stored in the source index storage unit 1125. The source index is an index for each data source. A source index is, for example, a collection of source index records for each data source.
ソース・インデックスレコードは、例えば、ソース識別子と最小キー項目値と最大キー項目値との組である。最小キー項目値は、ソース識別子で識別されるデータソースが有する最小のキー項目値である。最大キー項目値は、ソース識別子で識別されるデータソースが有する最大のキー項目値である。かかる場合、通常、2以上の各データソースに、異なるレコードが格納されている。 A source index record is, for example, a set of a source identifier, a minimum key item value, and a maximum key item value. The minimum key item value is the minimum key item value that the data source identified by the source identifier has. The maximum key item value is the maximum key item value possessed by the data source identified by the source identifier. In such cases, different records are usually stored in each of the two or more data sources.
ソース・インデックスレコードは、例えば、ソース識別子と最小属性識別子と最大属性識別子との組である。最小属性識別子は、ソース識別子で識別されるデータソースが有する最小の属性識別子である。最大属性識別子は、ソース識別子で識別されるデータソースが有する最大の属性識別子である。かかる場合、通常、2以上の各データソースに、異なる属性の属性値が格納されている。 A source index record is, for example, a set of a source identifier, a minimum attribute identifier, and a maximum attribute identifier. The minimum attribute identifier is the smallest attribute identifier of the data source identified by the source identifier. The maximum attribute identifier is the largest attribute identifier of the data source identified by the source identifier. In such a case, usually, attribute values of different attributes are stored in each of two or more data sources.
ソース・インデックスレコードは、例えば、ソース識別子と最小キー項目値と最大キー項目値と最小属性識別子と最大属性識別子との組である。かかる場合、通常、2以上の各データソースに、一部のレコードの一部の属性の属性値が格納されている。 A source index record is, for example, a set of a source identifier, a minimum key item value, a maximum key item value, a minimum attribute identifier, and a maximum attribute identifier. In such a case, usually, the attribute values of some attributes of some records are stored in each of two or more data sources.
受付部12は、各種の指示や情報を受け付ける。各種の指示や情報とは、例えば、後述する検索条件、データソース、データソースを構成する一部の情報である。
The
ここで、受け付けとは、通常、端末装置3からの受信であるが、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念であっても良い。
Here, the reception is usually reception from the
条件受付部121は、検索条件を受け付ける。検索条件は、例えば、1または2以上の属性識別子を含む。検索条件は、例えば、1または2以上のキー項目値を含む。検索条件は、例えば、1以上の属性識別子および1以上のキー項目値を含む。
The
処理部13は、各種の処理を行う。各種の処理は、例えば、インデックス生成部131、検索部132、インデックス更新部133が行う処理である。
The
処理部13は、受付部12がデータソースを受け付けた場合に、当該データソースをデータソース格納部111に蓄積する。その際、処理部13は、図示しない時計から最終更新時情報を取得し、当該最終更新時情報を当該データソースに対応付ける。
When the receiving
処理部13は、受付部12がデータソースを構成する一部の情報を受け付けた場合、当該一部の情報を用いて、データソースを更新する。その際、処理部13は、図示しない時計から最終更新時情報を取得し、当該最終更新時情報を当該データソースに対応付ける。
When the receiving
インデックス生成部131は、1または2以上の各データソースからインデックスを生成する。
The
配列インデックス生成部1311は、1以上の各データソースごとに、配列インデックスを生成し、配列インデックス格納部1121に蓄積する。
The array index generation unit 1311 generates an array index for each one or more data sources and stores it in the array
配列インデックス生成部1311は、データソースにおけるレコードごと、および1以上の属性値ごとに、属性位置情報を取得する。 The array index generation unit 1311 acquires the attribute position information for each record in the data source and for each attribute value of 1 or more.
配列インデックス生成部1311は、データソースにおけるすべての各レコードごとに、一部の各属性値の属性位置情報を有する配列インデックスレコードを取得し、当該1以上の配列インデックスレコードを有する配列インデックスを構成し、配列インデックス格納部1121に蓄積することは好適である。ただし、配列インデックス生成部1311は、データソースにおけるすべての各レコードごとに、すべての各各属性値の属性位置情報を有する配列インデックスレコードを取得し、当該1以上の配列インデックスレコードを有する配列インデックスを構成し、配列インデックス格納部1121に蓄積しても良い。
The array index generation unit 1311 acquires an array index record having attribute position information of a part of each attribute value for each record in the data source, and constitutes an array index having one or more array index records. , It is preferable to store in the array
配列インデックスレコードは、レコードにおけるすべての属性値のうちの一部の属性値の属性位置情報のみを有する情報であることは好適である。なお、かかる一部の属性値の選択方法は問わない。一部の属性値は、例えば、所定の値ごと(例えば、1番目、5番目、9番目等の4つごと)に選択されることは好適であるが、ランダムに所定数だけ選択されても良い。 It is preferable that the array index record is information having only the attribute position information of some of the attribute values among all the attribute values in the record. It does not matter how to select some of these attribute values. It is preferable that some attribute values are selected for each predetermined value (for example, every four such as the first, fifth, ninth, etc.), but even if a predetermined number are randomly selected. good.
配列インデックス生成部1311は、データソースにおける2以上のレコードのうちの1以上の各レコードごと、および1以上の各属性値ごとに、属性位置情報を取得する。そして、配列インデックス生成部1311は、レコードごと、および属性値ごとの属性位置情報を有する配列インデックスを生成し、配列インデックス格納部1121に蓄積する。
The array index generation unit 1311 acquires the attribute position information for each one or more records of the two or more records in the data source and for each attribute value of one or more. Then, the array index generation unit 1311 generates an array index having attribute position information for each record and each attribute value, and stores the array index in the array
配列インデックス生成部1311は、例えば、取得した属性位置情報を、レコード識別子またはキー項目値、および属性値識別子に対応付くように、配列インデックス格納部1121に蓄積する。
The array index generation unit 1311 stores, for example, the acquired attribute position information in the array
配列インデックス生成部1311は、通常、データソースを走査し、第一デリミタごとにレコードを認識し、当該レコードを走査し、第二デリミタごとに属性値を認識し、例えば、当該レコードの先頭から、各第二デリミタの次の位置を、各属性値の属性位置情報として取得する。 The array index generation unit 1311 usually scans the data source, recognizes a record for each first delimiter, scans the record, recognizes an attribute value for each second delimiter, and for example, from the beginning of the record. The next position of each second delimiter is acquired as the attribute position information of each attribute value.
配列ラベル・インデックス生成部1312は、1以上の各データソースごとに、配列ラベル・インデックスを生成し、配列ラベル・インデックス格納部1122に蓄積する。
The array label
配列ラベル・インデックス生成部1312は、例えば、データソースから、2以上の各属性ごとに、属性値識別子と属性順番情報とを取得し、当該属性値識別子と属性順番情報との組である配列ラベル・インデックスレコードを取得し、当該2以上の配列ラベル・インデックスレコードを有する配列ラベル・インデックスを構成し、当該配列ラベル・インデックスを配列ラベル・インデックス格納部1122に蓄積する。
The array label
なお、配列ラベル・インデックス生成部1312は、属性値識別子キーとして配列ラベル・インデックスレコードをソートし、配列ラベル・インデックスを構成することは好適である。
It is preferable that the array label
また、配列インデックスレコードが、すべての属性値の属性位置情報を有する場合、配列ラベル・インデックスは不要である。 Also, if the array index record has attribute position information for all attribute values, then the array label index is not needed.
レコード・インデックス生成部1313は、データソースを参照し、データソースの2以上の各レコードのキー項目値とレコード位置情報とを有するレコード・インデックスレコードを、レコードごとに取得する。そして、レコード・インデックス生成部1313は、レコードごとのレコード・インデックスレコードの集合を有するレコード・インデックスを生成し、レコード・インデックス格納部1123に蓄積する。
The record
レコード・インデックス生成部1313は、1以上の各レコード・インデックスレコードに、レコード・インデックス内におけるレコード・インデックスレコードの位置を特定するレコード・インデックスレコード位置情報を取得し、当該レコード・インデックスレコード位置情報を有するレコード・インデックスレコードを構成することは好適である。
The record
なお、レコード・インデックス生成部1313は、キー項目値をキーとして該レコード・インデックスレコードをソートし、レコード・インデックスを構成することは好適である。
It is preferable that the record
2次インデックス生成部1314は、データソースごとに、データソースが有する2以上のレコードのうちの一部である1以上の各レコードごとに、レコード・インデックスレコード位置情報とレコードのキー項目値との組である2次インデックスレコードを取得し、当該1以上の2次インデックスレコードを有する2次インデックスを構成し、2次インデックス格納部1124に蓄積する。
The secondary
また、配列インデックスの属性値位置情報がデータソース内における位置を特定する情報である場合、レコード・インデックスは無くても良い。 Further, when the attribute value position information of the array index is the information for specifying the position in the data source, the record index may be omitted.
2次インデックス生成部1314は、例えば、データソースごとに、データソースに対応するレコード・インデックスを参照し、当該レコード・インデックスが有する一部のレコードであり、2以上の各レコードが有するレコード・インデックスレコード位置情報とキー項目値との組である2次インデックスレコードを取得し、2以上の2次インデックスレコードを有する2次インデックスを生成し、2次インデックス格納部1124に蓄積する。
The secondary
2次インデックスレコードは、一部のレコード・インデックスレコードに対応するが、その一部のレコード・インデックスレコードの選択方法は問わない。一部のレコード・インデックスレコードは、例えば、所定の値ごと(例えば、1番目、5番目、9番目等の4つごと)に選択されることは好適であるが、ランダムに所定数だけ選択されても良い。 The secondary index record corresponds to a part of the record index record, but the method of selecting the part of the record index record does not matter. It is preferable that some record index records are selected for each predetermined value (for example, every four such as the first, fifth, ninth, etc.), but a predetermined number are randomly selected. May be.
なお、2次インデックスは、レコードの検索を高速にするが、無くても良い。 The secondary index speeds up the search for records, but it is not necessary.
ソース・インデックス生成部1315は、2以上の各データソースごとに、ソース・インデックスレコードを取得し、2以上のソース・インデックスレコードを有するソース・インデックスを生成し、ソース・インデックス格納部1125に蓄積する。なお、ソース・インデックスレコードは、例えば、ソース識別子と最小キー項目値と最大キー項目値との組である。ソース・インデックスレコードは、例えば、ソース識別子と最小属性識別子と最大属性識別子との組である。ソース・インデックスレコードは、例えば、ソース識別子と最小キー項目値と最大キー項目値と最小属性識別子と最大属性識別子との組である。
The source
なお、データソースが一つである場合、ソース・インデックス生成部1315は、不要である。
If there is only one data source, the source
検索部132は、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得し、当該属性位置情報を用いて、検索条件が有する属性識別子に対応する属性値を、キー項目値と2以上の属性値とを有する1または2以上のレコードを含むデータソースから取得する。
The
検索部132は、例えば、条件受付部121が受け付けた検索条件が有する属性識別子で識別される属性値の前に配置されている属性値を識別する属性識別子に対応する第一の属性位置情報と、検索条件が有する属性識別子で識別される属性値の後に配置されている属性値を識別する属性識別子に対応する第二の属性位置情報とを、配列インデックスから取得する。次に、検索部132は、当該第一の属性位置情報が特定する位置と、当該第二の属性位置情報が特定する位置の間に存在する属性値であり、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。
The
検索部132は、例えば、条件受付部121が受け付けた検索条件が有する属性識別子に対応する属性順番情報を配列ラベル・インデックスから取得する。次に、検索部132は、当該属性順番情報を用いて、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得する。次に、検索部132は、当該属性位置情報を用いて、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。
The
検索部132は、例えば、条件受付部121が受け付けた検索条件が有する属性識別子に対応する属性順番情報を配列ラベル・インデックスから取得する。検索部132は、当該属性順番情報が示す順番の前に配置されている属性値を識別する属性識別子に対応する第一の属性位置情報と、当該属性順番情報が示す順番の後に配置されている属性値を識別する属性識別子に対応する第二の属性位置情報とを、配列インデックスから取得する。次に、検索部132は、当該第一の属性位置情報が特定する位置と、当該第二の属性位置情報が特定する位置の間に存在する属性値であり、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。
The
検索部132は、例えば、検索条件が有するキー項目値と対になるレコード位置情報をレコード・インデックスから取得する。次に、検索部132は、当該レコード位置情報が特定する位置に対応するレコードを決定し、当該レコードの中の属性値であり、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。なお、検索条件において属性識別子が示されない場合、検索条件が有する属性識別子は、すべての属性識別子である、と考えても良い。
The
検索部132は、例えば、検索条件が有するキー項目値を挟む2つのキー項目値を2次インデックスから取得する。次に、検索部132は、取得した2つの各キー項目値と対になる第一のレコード・インデックスレコード位置情報と第二のレコード・インデックスレコード位置情報とを、2次インデックスから取得する。次に、検索部132は、当該第一のレコード・インデックスレコード位置情報と当該第二のレコード・インデックスレコード位置情報との間のレコード・インデックスレコードを検索し、検索条件が有するキー項目値を含むレコード・インデックスレコードを決定し、当該レコード・インデックスレコードの中のレコード位置情報を取得する。次に、検索部132は、当該レコード位置情報が特定する位置に対応するレコードの中の属性値であり、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。なお、検索部132は、検索条件が有する属性識別子に対応する属性値の属性位置情報を、配列インデックスを用いて取得し、当該属性位置情報が特定する位置の属性値をデータソースから取得することは好適である。
The
また、レコード・インデックスにおいて、キー項目値がソートされている場合、検索部132は、二分探索により、検索条件が有するキー項目値を含むレコード・インデックスレコードを決定することは好適であるが、シーケンシャルサーチでも良い。
Further, when the key item values are sorted in the record index, it is preferable that the
検索部132は、例えば、検索条件が有するキー項目値と一致する、またはキー項目値を間に挟む最小キー項目値と最大キー項目値と対になるソース識別子を、ソース・インデックスから取得する。次に、検索部132は、当該ソース識別子により識別されるデータソースから、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得する。次に、検索部132は、当該属性位置情報を用いて、レコードの中の属性値であり、検索条件が有する属性識別子に対応する属性値を取得する。
The
検索部132は、例えば、検索条件が有する属性識別子と一致する、または属性識別子を間に挟む最小属性識別子と最大属性識別子と対になるソース識別子を、ソース・インデックスから取得する。検索部132は、当該ソース識別子により識別されるデータソースに対応する配列インデックスから、検索条件が有する属性識別子に対応する属性位置情報を取得する。検索部132は、当該属性位置情報を用いて、当該ソース識別子により識別されるデータソースの中のレコードの中の属性値であり、検索条件が有する属性識別子に対応する属性値を取得する。
The
検索部132は、例えば、検索条件が有するキー項目値と検索条件が有する属性識別子とに対応するソース識別子を、ソース・インデックスから取得する。検索部132は、当該ソース識別子により識別されるデータソースに対応する2次インデックスから、検索条件が有するキー項目値を挟む2つのキー項目値を2次インデックスから取得する。次に、検索部132は、取得した2つの各キー項目値と対になる第一のレコード・インデックスレコード位置情報と第二のレコード・インデックスレコード位置情報とを、2次インデックスから取得する。次に、検索部132は、当該第一のレコード・インデックスレコード位置情報と当該第二のレコード・インデックスレコード位置情報との間のレコード・インデックスレコードを検索し、検索条件が有するキー項目値を含むレコード・インデックスレコードを決定し、当該レコード・インデックスレコードの中のレコード位置情報を取得する。また、検索部132は、検索条件が有する属性識別子に対応する属性順番情報を配列ラベル・インデックスから取得する。次に、検索部132は、当該属性順番情報を用いて、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得する。次に、検索部132は、取得したレコード位置情報により特定されるレコードの中の属性値であり、当該属性位置情報が特定する属性値をデータソースから取得する。
The
インデックス更新部133は、予め決められた条件を満たす場合に、データソースから取得した最終更新時情報が示す最終更新時が、1以上の各種類のインデックスに対応する生成時情報が示す生成時より後か否かを判断し、後である場合に、インデックス生成部131を動作させて、1以上の各種類のインデックスを構成する。また、インデックス更新部133は、通常、構成した1以上の各種類のインデックスを、インデックス格納部112の古いインデックスに上書きする。なお、1以上の各種類のインデックスは、配列インデックス、配列ラベル・インデックス、レコード・インデックス、2次インデックス、ソース・インデックスのうちの1種類以上である。また、予め決められた条件は、例えば、ユーザからの指示を受け付けたこと、予め決められた時刻になったこと、データソースが更新されたことである。
When the
出力部14は、各種の情報を取得する。各種の情報は、例えば、後述する検索結果である。なお、ここでの出力とは、通常、端末装置3への送信であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。
The
結果出力部141は、検索部132が取得した属性値を含む検索結果を出力する。検索結果は、通常、属性値を有する。
The
データソース管理装置2は、1以上のデータソースを管理する。データソース管理装置2は、データソース格納部111を具備する。
The data
端末装置3を構成する端末格納部31には、各種の情報が格納される。各種の情報は、例えば、検索条件、データソースである。
Various types of information are stored in the
端末受付部32は、各種の指示や情報を受け付ける。各種の指示や情報は、例えば、検索条件、データソース、データソースの一部の情報である。 The terminal reception unit 32 receives various instructions and information. Various instructions and information are, for example, search conditions, data sources, and information of a part of data sources.
なお、ここでの受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。 The acceptance here means acceptance of information input from input devices such as keyboards, mice, and touch panels, reception of information transmitted via wired or wireless communication lines, optical disks, magnetic disks, semiconductor memories, etc. It is a concept including acceptance of information read from a recording medium of.
端末処理部33は、各種の処理を行う。各種の処理とは、例えば、端末受付部32が受け付けた指示や情報を、送信するデータ構造の指示や情報にする処理である。各種の処理とは、例えば、端末受信部35が受信した情報を、出力するデータ構造の情報にする処理である。
The
端末送信部34は、各種の情報や指示を送信する。端末送信部34は、通常、各種の情報や指示を検索装置1に送信する。各種の情報や指示は、例えば、検索条件、データソースである。
The terminal transmission unit 34 transmits various information and instructions. The terminal transmission unit 34 usually transmits various information and instructions to the
端末受信部35は、各種の情報を受信する。端末受信部35は、各種の情報を検索装置1から受信する。各種の情報は、例えば、検索結果である。
The terminal receiving unit 35 receives various types of information. The terminal receiving unit 35 receives various information from the
端末出力部36は、各種の情報を出力する。各種の情報は、例えば、検索結果である。
The
格納部11、データソース格納部111、インデックス格納部112、配列インデックス格納部1121、配列ラベル・インデックス格納部1122、レコード・インデックス格納部1123、2次インデックス格納部1124、ソース・インデックス格納部1125、および端末格納部31は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。
The process of storing information in the
受付部12、条件受付部121、および端末受信部35は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
The
処理部13、インデックス生成部131、検索部132、インデックス更新部133、配列インデックス生成部1311、配列ラベル・インデックス生成部1312、レコード・インデックス生成部1313、2次インデックス生成部1314、ソース・インデックス生成部1315、および端末処理部33は、通常、プロセッサやメモリ等から実現され得る。処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わない。
Processing
出力部14、結果出力部141、および端末送信部34は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
The
端末受付部32は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。 The terminal reception unit 32 can be realized by a device driver for input means such as a touch panel or a keyboard, control software for a menu screen, or the like.
端末出力部36は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部36は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
The
次に、検索システムAの動作例について説明する。まず、検索装置1の動作例について、図4のフローチャートを用いて説明する。
Next, an operation example of the search system A will be described. First, an operation example of the
(ステップS401)インデックス生成部131は、インデックスを生成するタイミングであるか否かを判断する。インデックスを生成するタイミングであればステップS402に行き、インデックスを生成するタイミングでなければステップS406に行く。
(Step S401) The
(ステップS402)インデックス生成部131は、カウンタiに1を代入する。
(Step S402) The
(ステップS403)インデックス生成部131は、インデックスを生成する対象のi番目のデータソースが存在するか否かを判断する。i番目のデータソースが存在する場合はステップS404に行き、i番目のデータソースが存在しない場合はステップS401に戻る。
(Step S403) The
(ステップS404)インデックス生成部131は、i番目のデータソースに対応するインデックスを生成する。インデックス生成処理の例について、図5のフローチャートを用いて説明する。
(Step S404) The
(ステップS405)インデックス生成部131は、カウンタiを1、インクリメントする。ステップS403に戻る。
(Step S405) The
(ステップS406)インデックス更新部133は、インデックスを更新するタイミングであるか否かを判断する。インデックスを更新するタイミングであればステップS407に行き、インデックスを更新するタイミングでなければステップS414に行く。
(Step S406) The
(ステップS407)インデックス更新部133は、カウンタiに1を代入する。
(Step S407) The
(ステップS408)インデックス更新部133は、i番目のデータソースが存在するか否かを判断する。i番目のデータソースが存在する場合はステップS409に行き、i番目のデータソースが存在しない場合はステップS401に戻る。
(Step S408) The
(ステップS409)インデックス更新部133は、i番目のデータソースの属性値である最終更新時情報を取得する。
(Step S409) The
(ステップS410)インデックス更新部133は、i番目のデータソースに対応するインデクス(例えば、配列インデックス)の生成時情報を配列インデックス格納部1121から取得する。
(Step S410) The
(ステップS411)インデックス更新部133は、ステップS409で取得した最終更新時情報が示す時が、ステップS410で取得した生成時情報が示す時より新しいか否かを判断する。新しい場合はステップS412に行き、新しくない場合はステップS413に行く。
(Step S411) The
(ステップS412)インデックス更新部133は、インデックス生成部131に動作の指示をする。その結果、インデックス生成部131は、インデックスを生成し、i番目のデータソースに対応付けて、インデックスを蓄積する。かかる処理により、i番目のデータソースに対応するインデックスが更新される。なお、インデックス生成処理の例は、図5のフローチャートである。
(Step S412) The
(ステップS413)カウンタiを1、インクリメントする。ステップS408に戻る。 (Step S413) The counter i is incremented by 1. Return to step S408.
(ステップS414)条件受付部121は、検索条件を受け付けたか否かを判断する。検索条件を受け付けた場合はステップS415に行き、検索条件を受け付けなかった場合はステップS401に戻る。
(Step S414) The
(ステップS415)検索部132は、検索条件を用いて検索を行う。かかる検索処理の例について、図11フローチャートを用いて説明する。
(Step S415) The
(ステップS416)結果出力部141は、ステップS415で取得された検索結果を出力する。ステップS401に戻る。
(Step S416) The
なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。 In the flowchart of FIG. 4, the process ends when the power is turned off or an interrupt for the end of the process is interrupted.
次に、ステップS404のインデックス生成処理の例について、図5のフローチャートを用いて説明する。 Next, an example of the index generation process in step S404 will be described with reference to the flowchart of FIG.
(ステップS501)ソース・インデックス生成部1315は、ソース・インデックスを生成する。かかるソース・インデックス生成処理の例について、図6フローチャートを用いて説明する。
(Step S501) The source
(ステップS502)配列ラベル・インデックス生成部1312は、配列ラベル・インデックスを生成する。かかる配列ラベル・インデックス生成処理の例について、図7フローチャートを用いて説明する。
(Step S502) The array label
(ステップS503)配列インデックス生成部1311は、配列インデックスを生成する。かかる配列インデックス生成処理の例について、図8フローチャートを用いて説明する。 (Step S503) The array index generation unit 1311 generates an array index. An example of such an array index generation process will be described with reference to the flowchart of FIG.
(ステップS504)レコード・インデックス生成部1313は、レコード・インデックスを生成する。かかるレコード・インデックス生成処理の例について、図9フローチャートを用いて説明する。
(Step S504) The record
(ステップS505)2次インデックス生成部1314は、2次インデックスを生成する。かかる2次インデックス生成処理の例について、図10フローチャートを用いて説明する。
(Step S505) The secondary
なお、図5のフローチャートにおいて、例えば、レコード・インデックスと配列インデックスとは、レコードごとに、一緒に生成されても良い。つまり、各種のインデックスの生成の手順や順序等は問わない。 In the flowchart of FIG. 5, for example, the record index and the array index may be generated together for each record. That is, the procedure and order of generating various indexes are not limited.
次に、ステップS501のソース・インデックス生成処理の例について、図6フローチャートを用いて説明する。 Next, an example of the source index generation process in step S501 will be described with reference to the flowchart of FIG.
(ステップS601)ソース・インデックス生成部1315は、2以上の各データソースに、異なるレコードが存在するか否かを判断する。異なるレコードが存在する場合はステップS602に行き、異なるレコードが存在しない場合はステップS604に行く。
(Step S601) The source
(ステップS602)ソース・インデックス生成部1315は、インデックスの生成の対象のデータソースを参照し、当該データソースの最小キー項目値を取得する。
(Step S602) The source
(ステップS603)ソース・インデックス生成部1315は、インデックスの生成の対象のデータソースを参照し、当該データソースの最大キー項目値を取得する。
(Step S603) The source
(ステップS604)ソース・インデックス生成部1315は、2以上の各データソースに、異なる属性の属性値が存在するか否かを判断する。異なる属性の属性値が存在する場合はステップS605に行き、異なる属性の属性値が存在しない場合はステップS607に行く。
(Step S604) The source
(ステップS605)ソース・インデックス生成部1315は、インデックスの生成の対象のデータソースを参照し、当該データソースの最小属性識別子取得する。
(Step S605) The source
(ステップS606)ソース・インデックス生成部1315は、インデックスの生成の対象のデータソースを参照し、当該データソースの最大属性識別子取得する。
(Step S606) The source
(ステップS607)ソース・インデックス生成部1315は、インデックスの生成の対象のデータソースのソース識別子を取得する。
(Step S607) The source
(ステップS608)ソース・インデックス生成部1315は、ソース・インデックスレコードを構成する。ソース・インデックスレコードは、例えば、最小キー項目値と最大キー項目値とを有する。ソース・インデックスレコードは、例えば、最小属性識別子と最大属性識別子とを有する。ソース・インデックスレコードは、例えば、最小キー項目値と最大キー項目値と最小属性識別子と最大属性識別子とを有する。ソース・インデックスレコードは、ソース識別子に対応している。なお、ソース識別子に対応していることは、ソース識別子を有することでも良いことは言うまでもない。
(Step S608) The source
(ステップS609)ソース・インデックス生成部1315は、ステップS608で構成したソース・インデックスレコードをソース・インデックス格納部1125に追記する。上位処理にリターンする。
(Step S609) The source
次に、ステップS502の配列ラベル・インデックス生成処理の例について、図7フローチャートを用いて説明する。 Next, an example of the array label index generation process in step S502 will be described with reference to the flowchart of FIG. 7.
(ステップS701)配列ラベル・インデックス生成部1312は、カウンタiに1を代入する。
(Step S701) The array label
(ステップS702)配列ラベル・インデックス生成部1312は、インデックスの生成の対象のデータソースのi番目の属性の属性識別子を取得する。
(Step S702) The array label
なお、配列ラベル・インデックス生成部1312は、例えば、インデックスの生成の対象のデータソースの中の1行目のレコードのi番目の属性の属性識別子を取得する。配列ラベル・インデックス生成部1312は、例えば、格納部11に格納されているデータソーススキーマ情報からi番目の属性の属性識別子を取得しても良い。なお、データソーススキーマ情報とは、データソースの構造を特定する情報であり、例えば、2以上の属性識別子を有する。
The array label
(ステップS703)配列ラベル・インデックス生成部1312は、ステップS702でi番目の属性の属性識別子を取得できたか否かを判断する。取得できた場合はステップS704に行き、取得できなかった場合は上位処理にリターンする。
(Step S703) The array label
(ステップS704)配列ラベル・インデックス生成部1312は、ステップS702で取得したi番目の属性の属性識別子と、i(属性順番情報)とを有する配列ラベル・インデックスレコードを構成する。なお、配列ラベル・インデックスレコードは、配列ラベル・インデックスを構成する情報である。
(Step S704) The array label
(ステップS705)配列ラベル・インデックス生成部1312は、ステップS704で構成した配列ラベル・インデックスレコードを、インデックスの生成の対象のデータソースに対応付けて、配列ラベル・インデックス格納部1122に追記する。
(Step S705) The array label
(ステップS706)配列ラベル・インデックス生成部1312は、カウンタiを1、インクリメントする。ステップS702に戻る。
(Step S706) The array label
なお、図7のフローチャートにおいて、配列ラベル・インデックスレコードを、属性識別子をキーとしてソートし、配列ラベル・インデックスを構成することは好適である。 In the flowchart of FIG. 7, it is preferable to sort the array label index record using the attribute identifier as a key to form the array label index.
次に、ステップS503の配列インデックス生成処理の例について、図8フローチャートを用いて説明する。 Next, an example of the array index generation process in step S503 will be described with reference to the flowchart of FIG.
(ステップS801)配列インデックス生成部1311は、カウンタiに1を代入する。
(Step S801) The array index generation unit 1311
(ステップS802)配列インデックス生成部1311は、インデックスの生成の対象のデータソースの中に、i番目のレコードが存在するか否かを判断する。i番目のレコードが存在する場合はステップS803に行き、i番目のレコードが存在しない場合は上位処理にリターンする。 (Step S802) The array index generation unit 1311 determines whether or not the i-th record exists in the data source for which the index is generated. If the i-th record exists, the process proceeds to step S803, and if the i-th record does not exist, the process returns to higher processing.
(ステップS803)配列インデックス生成部1311は、カウンタjに1を代入する。 (Step S803) The array index generation unit 1311 assigns 1 to the counter j.
(ステップS804)配列インデックス生成部1311は、インデックスの生成の対象のデータソースに、j番目の属性が存在するか否かを判断する。j番目の属性が存在する場合はステップS805に行き、j番目の属性が存在しない場合はステップS809に行く。 (Step S804) The array index generation unit 1311 determines whether or not the j-th attribute exists in the data source for which the index is generated. If the j-th attribute exists, the process goes to step S805, and if the j-th attribute does not exist, the process goes to step S809.
(ステップS805)配列インデックス生成部1311は、j番目の属性を配列インデックスに使用するか否かを判断する。j番目の属性を配列インデックスに使用する場合はステップS806に行き、使用しない場合はステップS808に行く (Step S805) The array index generation unit 1311 determines whether or not to use the j-th attribute for the array index. If the jth attribute is used for the array index, go to step S806, and if not, go to step S808.
(ステップS806)配列インデックス生成部1311は、i番目のレコードのj番目の属性の属性値の属性位置情報を、インデックスの生成の対象のデータソースから取得する。 (Step S806) The array index generation unit 1311 acquires the attribute position information of the attribute value of the j-th attribute of the i-th record from the data source for which the index is generated.
(ステップS807)配列インデックス生成部1311は、ステップS806で取得した属性位置情報を、配列インデックスレコードのバッファに追記する。 (Step S807) The array index generation unit 1311 adds the attribute position information acquired in step S806 to the buffer of the array index record.
(ステップS808)配列インデックス生成部1311は、カウンタjを1、インクリメントする。ステップS804に戻る。 (Step S808) The array index generation unit 1311 increments the counter j by 1. Return to step S804.
(ステップS809)配列インデックス生成部1311は、配列インデックスレコードのバッファの配列インデックスレコードを、配列インデックス格納部1121に追記する。
(Step S809) The array index generation unit 1311 adds the array index record of the buffer of the array index record to the array
(ステップS810)配列インデックス生成部1311は、カウンタiを1、インクリメントする。ステップS802に戻る。 (Step S810) The array index generation unit 1311 increments the counter i by 1. Return to step S802.
次に、ステップS504のレコード・インデックス生成処理の例について、図9フローチャートを用いて説明する。 Next, an example of the record index generation process in step S504 will be described with reference to the flowchart of FIG.
(ステップS901)レコード・インデックス生成部1313は、カウンタiに1を代入する。
(Step S901) The record
(ステップS902)レコード・インデックス生成部1313は、インデックスの生成の対象のデータソースの中に、i番目のレコードが存在するか否かを判断する。i番目のレコードが存在する場合はステップS903に行き、i番目のレコードが存在しない場合は上位処理にリターンする。
(Step S902) The record
(ステップS903)レコード・インデックス生成部1313は、インデックスの生成の対象のデータソースを参照し、i番目のレコードのレコード位置情報を取得する。
(Step S903) The record
(ステップS904)レコード・インデックス生成部1313は、インデックスの生成の対象のデータソースを参照し、i番目のレコードのキー項目値を取得する。
(Step S904) The record
(ステップS905)レコード・インデックス生成部1313は、i番目のレコード・インデックスレコードの、レコード・インデックス内における位置情報であるレコード・インデックスレコード位置情報を取得する。
(Step S905) The record
(ステップS906)レコード・インデックス生成部1313は、ステップS903で取得したレコード位置情報、ステップS904で取得したキー項目値、およびステップS905で取得したレコード・インデックスレコード位置情報を有するi番目のレコード・インデックスレコードを構成する。
(Step S906) The record
(ステップS907)レコード・インデックス生成部1313は、ステップS906で構成したレコード・インデックスレコードを、レコード・インデックス格納部1123に追記する。
(Step S907) The record
(ステップS908)レコード・インデックス生成部1313は、カウンタiを1、インクリメントする。ステップ902に戻る。
(Step S908) The record
なお、図9のフローチャートにおいて、レコード・インデックス生成部1313は、キー項目値をキーとして、レコード・インデックスレコードをソートすることは好適である。かかる場合、レコード・インデックス生成部1313は、レコード・インデックスレコードごとに、ソートされた状態のレコード・インデックスレコード位置情報を取得することは言うまでもない。
In the flowchart of FIG. 9, it is preferable that the record
次に、ステップS505の2次インデックス生成処理の例について、図10フローチャートを用いて説明する。 Next, an example of the secondary index generation process in step S505 will be described with reference to the flowchart of FIG.
(ステップS1001)2次インデックス生成部1314は、カウンタiに1を代入する。
(Step S1001) The secondary
(ステップS1002)2次インデックス生成部1314は、レコード・インデックスの中に、i番目のレコード・インデックスレコードが存在するか否かを判断する。i番目のレコード・インデックスレコードが存在する場合はステップS1003に行き、存在しない場合は上位処理にリターンする。
(Step S1002) The secondary
(ステップS1003)2次インデックス生成部1314は、i番目のレコード・インデックスレコードを、2次インデックスに使用するか否かを判断する。2次インデックスに使用する場合はステップS1004に行き、2次インデックスに使用しない場合はステップS1006に行く。
(Step S1003) The secondary
なお、2次インデックス生成部1314は、すべてのレコード・インデックスレコードのうちの一部のレコード・インデックスレコードを使用する。2次インデックス生成部1314は、例えば、すべてのレコード・インデックスレコードの番号をN(Nは2以上の自然数)で割った場合の余りの値がM(Mは整数,0<=M<N−1)の番号に対応するレコード・インデックスレコードを使用する、と判断する。また、2次インデックス生成部1314は、例えば、予め決められている一部のレコード・インデックスレコードを使用する、と判断する。
The secondary
(ステップS1004)2次インデックス生成部1314は、i番目のレコード・インデックスレコードから、キー項目値とレコード・インデックスレコード位置情報とを取得し、当該情報を有する2次インデックスレコードを構成する。
(Step S1004) The secondary
(ステップS1005)2次インデックス生成部1314は、ステップS1004で構成した2次インデックスレコードを2次インデックス格納部1124に追記する。
(Step S1005) The secondary
(ステップS1006)2次インデックス生成部1314は、カウンタiを1、インクリメントする。ステップ1002に戻る。
(Step S1006) The secondary
なお、図10のフローチャートにおいて、2次インデックスレコードは、キー項目値をキーとしてソートされていることは好適である。 In the flowchart of FIG. 10, it is preferable that the secondary index records are sorted using the key item value as a key.
次に、ステップS415の検索処理の例について、図11フローチャートを用いて説明する。 Next, an example of the search process in step S415 will be described with reference to the flowchart of FIG.
(ステップS1101)検索部132は、受け付けられた検索条件に対応する1以上の属性識別子と1以上のキー項目値を取得する。なお、1以上の属性識別子は、検索結果として取得する属性値を特定する。1以上のキー項目値は、検索結果として情報を取得する対象のレコードを特定する。つまり、検索部132は、ここで取得した1以上のキー項目値のレコードの中の属性値であり、ここで取得した1以上の各属性識別子で識別される属性値を取得することとなる。
(Step S1101) The
(ステップS1102)検索部132は、ソース・インデックスを参照し、ステップS1101で取得した1以上の属性識別子と1以上のキー項目値に対応する1以上のソース識別子を取得する。ここで、検索部132は、取得した1以上の各ソース識別子に、当該ソース識別子で識別されるデータソースに含まれる属性値の1以上の属性識別子と、当該ソース識別子で識別されるデータソースに含まれるレコードの1以上のキー項目値とを対応付ける。
(Step S1102) The
(ステップS1103)検索部132は、カウンタiに1を代入する。
(Step S1103) The
(ステップS1104)検索部132は、ステップS1102で取得した1以上のソース識別子の中に、i番目のソース識別子が存在するか否かを判断する。i番目のソース識別子が存在する場合はステップS1105に行き、存在しない場合はステップS1118に行く。
(Step S1104) The
(ステップS1105)検索部132は、カウンタjに1を代入する。
(Step S1105) The
(ステップS1106)検索部132は、ステップS1102でi番目のソース識別子に対応付けられた1以上のキー項目値の中に、j番目のキー項目値が存在するか否かを判断する。j番目のキー項目値が存在する場合はステップS1107に行き、存在しない場合はステップS1117に行く。
(Step S1106) The
(ステップS1107)検索部132は、i番目のソース識別子に対応する2次インデックスを参照し、j番目のキー項目値に対応する第一のレコード・インデックスレコード位置情報と第二のレコード・インデックスレコード位置情報とを取得する。なお、第一のレコード・インデックスレコード位置情報は、j番目のキー項目値より小さなキー項目値のうちの最大のキー項目値と対になるレコード・インデックスレコード位置情報である。第二のレコード・インデックスレコード位置情報が、j番目のキー項目値より大きなキー項目値のうちの最小のキー項目値と対になるレコード・インデックスレコード位置情報である。また、ここで、検索部132は、j番目のキー項目値と対になる一つのレコード・インデックスレコード位置情報を2次インデックスから取得する場合もあり得る。
(Step S1107) The
(ステップS1108)ステップS1107で第一のレコード・インデックスレコード位置情報と第二のレコード・インデックスレコード位置情報とを取得した場合、検索部132は、当該第一のレコード・インデックスレコード位置情報と第二のレコード・インデックスレコード位置情報との間のレコード・インデックスレコードを検索し(例えば、二分探索、またはシーケンシャルサーチ)、j番目のキー項目値を検出する。次に、検索部132は、当該j番目のキー項目値と対になるレコード位置情報を、レコード・インデックスから取得する。
(Step S1108) When the first record index record position information and the second record index record position information are acquired in step S1107, the
また、ステップS1107で一つのレコード・インデックスレコード位置情報を取得した場合、検索部132は、当該レコード・インデックスレコード位置情報と対になるレコード位置情報を、レコード・インデックスから取得する。
Further, when one record index record position information is acquired in step S1107, the
(ステップS1109)検索部132は、カウンタkに1を代入する。
(Step S1109) The
(ステップS1110)検索部132は、i番目のソース識別子に対応するk番目の属性識別子が存在するか否かを判断する。k番目の属性識別子が存在する場合はステップS1111に行き、存在しない場合はステップS1116に行く。
(Step S1110) The
(ステップS1111)検索部132は、i番目のソース識別子に対応する配列ラベル・インデックスを参照し、k番目の属性識別子と対になる属性順番情報を、当該配列ラベル・インデックスから取得する。
(Step S1111) The
(ステップS1112)検索部132は、i番目のソース識別子に対応する配列インデックスを参照し、当該配列インデックス内に、ステップS1111で取得した属性順番情報と一致する属性順番情報が存在するか否かを判断する。属性順番情報と一致する属性順番情報が存在する場合は、検索部132は、当該属性順番情報と対になり、かつj番目のキー項目値と対になる属性位置情報を当該配列インデックスから取得する。
(Step S1112) The
属性順番情報と一致する属性順番情報が存在しない場合は、検索部132は、当該属性順番情報を挟む2つの属性順番情報を取得する。つまり、検索部132は、当該属性順番情報より小さい値の属性順番情報であり、当該属性順番情報との差が最も小さい第一の属性順番情報を取得する。また、検索部132は、当該属性順番情報より大きい値の属性順番情報であり、当該属性順番情報との差が最も小さい第二の属性順番情報を取得する。なお、第一の属性順番情報と第二の属性順番情報とは、当該属性順番情報を挟む情報である。次に、検索部132は、第一の属性順番情報と対になり、かつj番目のキー項目値と対になる属性位置情報を当該配列インデックスから取得する。また、検索部132は、第二の属性順番情報と対になり、かつj番目のキー項目値と対になる属性位置情報を当該配列インデックスから取得する。
If there is no attribute order information that matches the attribute order information, the
(ステップS1113)ステップS1112で一つの属性位置情報を取得した場合は、検索部132は、ステップS1108で取得したj番目のキー項目値と対になるレコード位置情報が示す位置のレコードの中から、ステップS1112で取得した一つの属性位置情報が示す位置の属性値を、i番目のソース識別子で識別されるデータソースから取得する。
(Step S1113) When one attribute position information is acquired in step S1112, the
また、ステップS1112で2つの属性位置情報を取得した場合は、検索部132は、ステップS1108で取得したj番目のキー項目値と対になるレコード位置情報が示す位置のレコードの中から、2つの各属性位置情報が特定する位置の属性値を、例えば、シーケンシャルサーチにより検査し、k番目の属性識別子と対になる属性順番情報の順番に存在する属性値を、i番目のソース識別子で識別されるデータソースから取得する。
Further, when the two attribute position information is acquired in step S1112, the
(ステップS1114)検索部132は、j番目のキー項目値とk番目の属性識別子とに対応付けて、ステップS1113で取得した属性値を、図示しないバッファに一時蓄積する。
(Step S1114) The
(ステップS1115)検索部132は、カウンタkを1、インクリメントする。ステップ1110に戻る。
(Step S1115) The
(ステップS1116)検索部132は、カウンタjを1、インクリメントする。ステップ1106に戻る。
(Step S1116) The
(ステップS1117)検索部132は、カウンタiを1、インクリメントする。ステップ1104に戻る。
(Step S1117) The
(ステップS1118)検索部132は、図示しないバッファに一時蓄積された1以上の属性値を含む検索結果を構成する。上位処理にリターンする。なお、検索結果の構成方法は問わない。検索結果に含まれる属性値に対応する属性識別子は、属性値に対応付くことが明示される態様で、検索結果に含まれることは好適である。また、検索結果は、j番目のキー項目値を含むことは好適である。
(Step S1118) The
次に、データソース管理装置2の動作例について説明する。データソース管理装置2は、検索装置1からのアクセスに応じて、データソース格納部111のデータソースを読み出し、検索装置1に送信する。なお、かかる場合、データソース管理装置2は、データソースの一部のみを読み出し、送信しても良い。
Next, an operation example of the data
次に、端末装置3の動作例について説明する。端末装置3の端末受付部32は、検索条件を受け付ける。次に、端末処理部33は、送信する検索条件を構成する。次に、端末送信部34は、当該検索条件を検索装置1に送信する。そして、検索条件の送信に応じて、端末受信部35は、検索結果を受信する。次に、端末処理部33は、受信された検索結果を用いて、出力する検索結果を構成する。次に、端末出力部36は、当該検索結果を出力する。
Next, an operation example of the
以下、本実施の形態における検索システムAの具体的な動作例について説明する。 Hereinafter, a specific operation example of the search system A in the present embodiment will be described.
今、検索装置1のデータソース格納部111、またはデータソース管理装置2のデータソース格納部111に、図12に示す3つのデータソース(1201、1202、1203)を含む3以上のデータソースが格納されている、とする。なお、3つの各データソースは、ここでは、1つのファイルである、とする。
Now, three or more data sources including the three data sources (1201, 1202, 1203) shown in FIG. 12 are stored in the data
そして、図12のデータソースは、ヘッダー・レコード、ラベル・レコード、多数のレコードを有する。ラベル・レコード、および各レコードは、第一デリミタにより区切られている。また、第一デリミタは、ここでは、例えば、リターンコードである。 And the data source of FIG. 12 has a header record, a label record, and a large number of records. The label record and each record are separated by the first delimiter. Further, the first delimiter is, for example, a return code here.
ヘッダー・レコードは、ファイルのいわゆるヘッダーであり、1以上のソース属性値を有する。ソース属性値は、ここでは、ソース識別子、レポート番号、最終更新時情報である。ソース識別子は、図12では、File Nameであり、値は「File1」である。レポート番号は、当該データソースの出所を識別するための番号で、値は「A12345」である。最終更新時情報は、図12では、Dateであり、値は「XXXX−XX−XX」である。 A header record is a so-called header of a file and has one or more source attribute values. The source attribute value is, here, the source identifier, the report number, and the information at the time of the last update. The source identifier is File Name in FIG. 12, and the value is “File1”. The report number is a number for identifying the source of the data source, and the value is "A12345". The information at the time of the last update is Date in FIG. 12, and the value is "XXXX-XX-XX".
ラベル・レコードは、例えば、ファイルの1行目である。なお、ヘッダー・レコードがファイルの1行目である場合は、ラベル・レコードは、ファイルの2行目である。ラベル・レコードは、項目ラベルの集合と、属性識別子の集合である。項目ラベルは、キー項目のラベルまたは明細項目のラベルである。キー項目は、レコードのキーとなる属性であり、ここでは「PID(パーソナルID)」である。「PID」は、ユーザを識別するIDである。明細項目は、「PID」に対応するユーザの属性値で、ここでは、明細項目は、「No.」「Age」を含む。「No.」は、レコードIDであり、その値は、図12の1201の[1][2][3]等である。また、「No.」の下の(Pos.)は、各レコードのレコード位置情報(ここでは、データソース内のレコードの先頭のオフセット)である。「Age」は、ユーザの年齢である。属性識別子は、図12では、「TestB」「TestE」「TestC」等である。図12では、属性識別子の下に属性順番情報が記載されている。属性順番情報は、属性識別子の下の[1][2][3]等である。 The label record is, for example, the first line of the file. If the header record is the first line of the file, the label record is the second line of the file. A label record is a set of item labels and a set of attribute identifiers. Item labels are key item labels or line item labels. The key item is an attribute that is a key of the record, and here, it is a "PID (personal ID)". The "PID" is an ID that identifies a user. The detail item is a user attribute value corresponding to "PID", and here, the detail item includes "No." and "Age". “No.” is a record ID, and its value is [1] [2] [3] of 1201 in FIG. Further, (Pos.) Under "No." is the record position information of each record (here, the offset at the beginning of the record in the data source). "Age" is the age of the user. In FIG. 12, the attribute identifier is “TestB”, “TestE”, “TestC”, or the like. In FIG. 12, the attribute order information is described under the attribute identifier. The attribute order information is [1] [2] [3] or the like under the attribute identifier.
図12の各レコードは、キー項目値、明細項目値、属性値を有する。キー項目値は、キー項目の値であり、ここでは、各ユーザのPID(例えば、236,029)である。なお、どの値をキー項目値とするかはインデックス生成のためのパラメータとして指定できることが好適であり、他の値(例えば、「Age」「PIDとAgeの組」)でも良く、また2以上のキー項目値を持つことも可能である。明細項目値は、ここでは、例えば、「No.」の値、「Age」の値である。「No.」の値は、ここでは、[1][2]等である。「No.」の値([1][2][3]等)の下に存在する値(例えば、(1)(121)(241)等)は、各レコードのレコード位置情報である。 Each record in FIG. 12 has a key item value, a detail item value, and an attribute value. The key item value is the value of the key item, and here, it is the PID (for example, 236,029) of each user. It is preferable that which value is used as the key item value can be specified as a parameter for index generation, and other values (for example, "Age" and "PID and Age pair") may be used, and two or more values may be used. It is also possible to have a key item value. Here, the item item value is, for example, a value of "No." or a value of "Age". Here, the value of "No." is [1], [2], or the like. The values (for example, (1), (121), (241), etc.) existing under the value of "No." ([1], [2], [3], etc.) are the record position information of each record.
レコード識別子[1]に対応するレコードの属性値は、0.11、0.4、0.57等である。また、図12において、属性値(0.11、0.4、0.57等)の下には、各属性値の属性値位置情報((57)(62)(73)等)が表記されている。 The attribute values of the record corresponding to the record identifier [1] are 0.11, 0.4, 0.57, and the like. Further, in FIG. 12, the attribute value position information ((57) (62) (73), etc.) of each attribute value is written below the attribute value (0.11, 0.4, 0.57, etc.). ing.
ここでのデータソースは、遺伝子・ゲノム情報の集合を含む、とする。また、一般的な遺伝子・ゲノム情報を取り扱うデータでは、遺伝子の塩基配列やタンパク質のアミノ酸配列などのデータが含むまれ、1レコードの長さが、例えば、数GBになることもある。また、1レコードの中の属性値の数が膨大になり、データサイズは巨大になる場合が多い。また、遺伝子・ゲノム情報を取り扱うデータは、フラットファイル(一般的なテキストファイル)に比較的単純なレイアウトで保存・流通されているケースが多く、本具体例におけるデータソース(図12参照)は、その例である。 It is assumed that the data source here includes a set of gene / genomic information. In addition, data dealing with general gene / genome information includes data such as a base sequence of a gene and an amino acid sequence of a protein, and the length of one record may be, for example, several GB. In addition, the number of attribute values in one record becomes enormous, and the data size often becomes enormous. In many cases, data dealing with gene / genome information is stored and distributed in a flat file (general text file) in a relatively simple layout, and the data source (see FIG. 12) in this specific example is This is an example.
かかる状況で、以下の3つの具体例について説明する。具体例1は、インデックスの生成処理の例である。具体例2は、ソース・インデックスが最小キー項目値と最大キー項目値との組を有し、最小属性識別子と最大属性識別子との組を有さない場合における検索処理の例である。具体例3は、ソース・インデックスが最小キー項目値と最大キー項目値と最小属性識別子と最大属性識別子との組を有する場合における検索処理の例である。 In such a situation, the following three specific examples will be described. Specific example 1 is an example of index generation processing. Specific Example 2 is an example of the search process in the case where the source index has a set of the minimum key item value and the maximum key item value and does not have the set of the minimum attribute identifier and the maximum attribute identifier. Specific Example 3 is an example of the search process when the source index has a set of the minimum key item value, the maximum key item value, the minimum attribute identifier, and the maximum attribute identifier.
(具体例1)
検索装置1のインデックス生成部131が、各種のインデックスの生成処理の例について、図13を用いて説明する。ここでは、キー項目は「PID」である、とする。
(1)ソース・インデックス生成処理
(Specific example 1)
An example of various index generation processes by the
(1) Source index generation process
ソース・インデックス生成部1315は、ファイル「データソース1301」にアクセスし、データソース1301のソース識別子(ここでは、ファイル名)「file1」を取得する。また、ソース・インデックス生成部1315は、データソース1301をオープンする。次に、ソース・インデックス生成部1315は、データソース1301のPIDの中の最小のPIDである最小キー項目値「029」と最大のPIDである最大キー項目値「451」とを取得する。なお、データソース1301において、PIDがソートされている場合は、ソース・インデックス生成部1315は、最初のPIDと最後のPIDとを取得する。PIDがソートされていない場合は、ソース・インデックス生成部1315は、シーケンシャルにPIDを検査し、最小キー項目値と最大キー項目値とをデータソース1301から取得する。
The source
また、ソース・インデックス生成部1315は、データソース1301のラベル・レコードの属性値識別子の中の最小属性識別子「TestA」と最大属性識別子「TestE」とを取得する。なお、データソース1301において、属性識別子がソートされている場合は、ソース・インデックス生成部1315は、ラベル・レコードから、最初の属性識別子と最後の属性識別子とを取得する。属性識別子がソートされていない場合は、ソース・インデックス生成部1315は、シーケンシャルに属性識別子を検査し、最小属性識別子と最大属性識別子とをラベル・レコードから取得する。
Further, the source
次に、ソース・インデックス生成部1315は、取得したソース識別子、最小キー項目値、最大キー項目値、最小属性識別子、および最大属性識別子から、ソース・インデックスレコード「file1,029,451,TestA,TestE」を構成し、ソース・インデックス格納部1125に蓄積する。
Next, the source
ソース・インデックス生成部1315は、他のデータソース(ファイル「file2」「file3」等)に対しても、同様に、ソース・インデックスレコードを構成し、ソース・インデックス格納部1125に蓄積する。
Similarly, the source
以上の処理により、図13の1302のソース・インデックスがソース・インデックス格納部1125に蓄積される。
(2)配列ラベル・インデックス生成処理
By the above processing, the source index of 1302 of FIG. 13 is accumulated in the source index storage unit 1125.
(2) Array label index generation process
配列ラベル・インデックス生成部1312は、ファイル「データソース1301」にアクセスし、データソース1301のソース識別子(ファイル名)「file1」を取得する。また、ソース・インデックス生成部1315は、データソース1301をオープンする。
The array label
次に、配列ラベル・インデックス生成部1312は、データソース1301のラベル・インデックス内に配置されている順に、属性識別子をその順番である属性順番情報と共に取得する。そして、属性識別子ごとに、属性識別子と属性順番情報との組である配列ラベル・インデックスレコードを構成する。
Next, the array label
次に、配列ラベル・インデックス生成部1312は、属性識別子をキーとして配列ラベル・インデックスレコードを、例えば、昇順にソートする。そして、配列ラベル・インデックス生成部1312は、ソートされた配列ラベル・インデックスレコードを、配列ラベル・インデックス格納部1122に蓄積する。
Next, the array label
配列ラベル・インデックス生成部1312は、他のデータソース(ファイル「file2」「file3」等)に対しても、同様に、配列ラベル・インデックスを構成し、配列ラベル・インデックス格納部1122に蓄積する。
The array label
以上の処理により、図13の1303の配列ラベル・インデックスが配列ラベル・インデックス格納部1122に蓄積される。
(3)配列インデックス生成処理
By the above processing, the array label index of 1303 in FIG. 13 is accumulated in the array label
(3) Array index generation process
配列インデックス生成部1311は、ファイル「データソース1301」にアクセスし、データソース1301のソース識別子(ファイル名)「file1」を取得する。また、ソース・インデックス生成部1315は、データソース1301をオープンする。
The array index generation unit 1311 accesses the file "
配列インデックス生成部1311は、例えば、1番目、4番目、7番目といった具合に、所定数(ここでは、3つ)飛ばしで、データソース1301の属性順番情報を取得する。また、配列インデックス生成部1311は、例えば、レコードごとに、第二デリミタを検出しながら、取得した各属性順番情報の順番の属性値まで、ファイルポインタを進め、例えば、その順番の属性値のレコード内でのオフセットである属性位置情報を取得する。次に、配列インデックス生成部1311は、データソース1301のレコードごとに、レコードのPIDに対応付けて、属性順番情報が示す順番に、取得した属性位置情報を連結し、配列インデックスレコードを構成する。
The array index generation unit 1311 acquires the attribute order information of the
次に、配列インデックス生成部1311は、例えば、対応するPIDをキーとして、配列インデックスレコードを、例えば、昇順にソートし、配列インデックスを構成し、配列インデックス格納部1121に蓄積する。
Next, the array index generation unit 1311 sorts the array index records in ascending order, for example, using the corresponding PID as a key, constitutes an array index, and stores the array index records in the array
また、配列インデックス生成部1311は、他のデータソース(ファイル「file2」「file3」等)に対しても、同様に、配列インデックスを構成し、配列インデックス格納部1121に蓄積する。
Further, the array index generation unit 1311 similarly forms an array index for other data sources (files “file2”, “file3”, etc.) and stores them in the array
以上の処理により、図13の1304の配列インデックスが配列インデックス格納部1121に蓄積される。
(4)レコード・インデックス生成処理
By the above processing, the array index of 1304 in FIG. 13 is accumulated in the array
(4) Record index generation process
レコード・インデックス生成部1313は、ファイル「データソース1301」にアクセスし、データソース1301のソース識別子(ファイル名)「file1」を取得する。また、ソース・インデックス生成部1315は、データソース1301をオープンする。
The record
レコード・インデックス生成部1313は、データソース1301におけるレコードごとに、キー項目値と、データソース1301内におけるレコードのオフセットであるレコード位置情報とを、データソース1301から取得し、レコード・インデックスレコードを構成する。
The record
そして、レコード・インデックス生成部1313は、キー項目値をキーとして、例えば、昇順に、キー項目値とレコード位置情報との組をソートする。次に、レコード・インデックス生成部1313は、レコード・インデックスにおける各レコード・インデックスレコードの位置情報(Pos.)を取得する。かかる位置情報(Pos.)は、レコード・インデックスレコード位置情報である。
Then, the record
なお、ここで、レコード・インデックスレコード位置情報(Pos.)は、当該位置情報(Pos.)とキー項目値とレコード位置情報との組と配列インデックスレコードとを有するレコードの位置情報(Pos.)であることは好適である。つまり、レコード・インデックスレコードと配列インデックスレコードとは、データソースのレコードごとに、連絡されていることは好適である。 Here, the record / index record position information (Pos.) Is the position information (Pos.) Of a record having the position information (Pos.), A set of a key item value and a record position information, and an array index record. Is preferable. That is, it is preferable that the record index record and the array index record are communicated for each record of the data source.
次に、レコード・インデックス生成部1313は、データソース1301におけるレコードごとのレコード・インデックスレコードをレコード・インデックス格納部1123に蓄積する。
Next, the record
また、レコード・インデックス生成部1313は、他のデータソース(ファイル「file2」「file3」等)に対しても、同様に、レコード・インデックスを構成し、レコード・インデックス格納部1123に蓄積する。
Further, the record
以上の処理により、図13の1305のレコード・インデックスがレコード・インデックス格納部1123に蓄積される。
(5)2次インデックス生成処理
By the above processing, the record index of 1305 of FIG. 13 is accumulated in the record
(5) Secondary index generation process
2次インデックス生成部1314は、レコード・インデックス格納部1123のレコード・インデックスを読み出す。
The secondary
次に、2次インデックス生成部1314は、例えば、1番目、4番目、7番目といった具合に、所定数(ここでは、3つ)飛ばしで、レコード・インデックスレコードに含まれるキー項目値(ここでは、PID)とレコード・インデックスレコード位置情報(Pos.)との組である2次インデックスレコードを取得する。
Next, the secondary
次に、2次インデックス生成部1314は、取得した2次インデックスレコードを2次インデックス格納部1124に追記する。なお、2次インデックスにおいて、PIDをキーとして、2次インデックスレコードはソートされている。
Next, the secondary
また、2次インデックス生成部1314は、他のデータソース(ファイル「file2」「file3」等)に対しても、同様に、2次インデックスを構成し、2次インデックス格納部1124に蓄積する。
Further, the secondary
以上の処理により、図13の1306の2次インデックスが2次インデックス格納部1124に蓄積される。
By the above processing, the secondary index of 1306 in FIG. 13 is accumulated in the secondary
(具体例2)
今、データソース管理装置2のデータソース格納部111、または検索装置1のデータソース格納部111に、図14の1401のデータソースが格納されている、とする。
(Specific example 2)
Now, it is assumed that the data source of 1401 of FIG. 14 is stored in the data
かかる場合、ユーザは、端末装置3に、検索条件「Select PID,Age,Test,TestValue from データソース where PID=155 AND Test=TestC」を入力した、とする。なお、「PID,Age,Test,TestValue」の「Test」は属性値識別子であり、「TestValue」は属性値である、とする。
In such a case, it is assumed that the user has input the search condition "Select PID, Age, Test, TestValue from data source where PID = 155 AND Test = TestC" in the
すると、端末装置3の端末受付部32は、かかる検索条件を受け付ける。次に、端末処理部33は、送信する検索条件を構成する。次に、端末送信部34は、当該検索条件を検索装置1に送信する。
Then, the terminal reception unit 32 of the
次に、検索装置1の条件受付部121は、検索条件「Select PID,Age,Test,TestValue from データソース where PID=155 AND Test=TestC」を受信する。
Next, the
次に、検索装置1の検索部132は、以下のように「PID=155 AND Test=TestC」に合致するレコードの中の「PID」、「Age」、属性識別子「TestC」、およびTestCの属性値を取得する。
Next, the
つまり、まず、検索部132は、検索条件に含まれる「PID=155」を取得する。また、検索部132は、検索条件に含まれる属性値識別子「TestC」を取得する(図14の1406)。
That is, first, the
次に、検索部132は、ソース・インデックス(1402)を参照し、取得した「PID=155」を、Min(最小キー項目値)とMax(最大キー項目値)の間に挟む、ソース・インデックスレコードを検知し、当該ソース・インデックスレコードが有するソース識別子「File1」を取得する。
Next, the
また、検索部132は、ソース識別子「File1」に対応する2次インデックス(1403)を参照し、「PID=155」を間に挟むPID「029」と「236」とを検知し、当該PID「029」と「236」と対になるレコード・インデックスレコード位置情報(1)と(151)とを、2次インデックス(1403)から取得する。
Further, the
次に、検索部132は、ソース識別子「File1」に対応するレコード・インデックス(1404)を参照し、レコード・インデックスレコード位置情報(1)と(151)の間を、例えば、「PID=155」をキーとして二分探索し、「PID=155」を含むレコード・インデックスレコードを検出する。そして、検索部132は、当該レコード・インデックスレコードから、「PID=155」と対になるレコード位置情報(241)を取得する。なお、検索部132は、二分探索ではなく、シーケンシャルサーチして、「PID=155」を含むレコード・インデックスレコードを検出しても良い。
Next, the
次に、検索部132は、取得したレコード位置情報(241)と、レコード・インデックスレコード位置情報(101)とを、図示しないバッファに一時蓄積する。
Next, the
次に、検索部132は、ソース識別子「File1」に対応する配列ラベル・インデックス(1405)を参照し、検索条件に含まれる属性識別子「TestC」をキーとして、当該配列ラベル・インデックスを二分探索し、属性識別子「TestC」を検知し、当該属性識別子「TestC」と対になる属性順番情報(3)を取得する。なお、ここで、検索部132は、二分探索ではなく、シーケンシャルサーチして、属性順番情報(3)を取得しても良い。
Next, the
次に、検索部132は、ソース識別子「File1」に対応する配列インデックスを参照し、配列インデックスの中の、属性順番情報(3)を間に挟む、第一の属性順番情報(1)と第二の属性順番情報(4)とを取得する。
Next, the
次に、検索部132は、図示しないバッファのレコード・インデックスレコード位置情報(101)に対応し、第一の属性順番情報(1)に対応する属性値位置情報(54)をレコード・インデックスから取得し、図示しないバッファに一時蓄積する。また、検索部132は、当該レコード・インデックスレコード位置情報(101)に対応し、第二の属性順番情報(4)に対応する属性値位置情報(84)をレコード・インデックスから取得し、図示しないバッファに一時蓄積する。
Next, the
次に、検索部132は、ソース識別子「File1」で識別されるデータソースにアクセスし、当該ファイルをオープンする。
Next, the
次に、検索部132は、図示しないバッファから、レコード位置情報(241)と属性値位置情報(54)と属性値位置情報(84)とを取得し、当該レコード位置情報(241)が特定する位置のレコードの中の、属性値位置情報(54)と属性値位置情報(84)との間の属性値であり、属性順番情報(3)に対応する属性値「0.381」を、当該ファイルから取得する。また、検索部132は、レコード位置情報(241)が特定する位置のレコードの中の、Age「62」を当該ファイルから取得する。
Next, the
そして、検索部132は、PID「155」、Age「62」、属性値識別子「TestC」、属性値「0.381」を有する検索結果を構成する。
Then, the
次に、結果出力部141は、構成された検索結果を、端末装置3に送信する。なお、かかる検索結果は、例えば、図14の1407である。
Next, the
次に、端末装置3の端末受信部35は、検索結果を受信する。次に、端末処理部33は、受信された検索結果を用いて、出力する検索結果を構成する。次に、端末出力部36は、当該検索結果を出力する。
Next, the terminal receiving unit 35 of the
(具体例3)
今、データソース管理装置2のデータソース格納部111、または検索装置1のデータソース格納部111に、図13の1301のデータソースが格納されている、とする。
(Specific example 3)
Now, it is assumed that the data source of 1301 of FIG. 13 is stored in the data
かかる場合、ユーザは、端末装置3に、検索条件「Select PID,Age,Test,TestValue from データソース where PID=155 AND Test=TestC」を入力した、とする。
In such a case, it is assumed that the user has input the search condition "Select PID, Age, Test, TestValue from data source where PID = 155 AND Test = TestC" in the
すると、端末装置3の端末受付部32は、かかる検索条件を受け付ける。次に、端末処理部33は、送信する検索条件を構成する。次に、端末送信部34は、当該検索条件を検索装置1に送信する。
Then, the terminal reception unit 32 of the
次に、検索装置1の条件受付部121は、検索条件「Select PID,Age,Test,TestValue from データソース where PID=155 AND Test=TestC」を受信する。
Next, the
次に、検索装置1の検索部132は、以下のように「PID=155 AND Test=TestC」に合致するレコードの中の「PID」、「Age」、属性識別子「TestC」、およびTestCの属性値を取得する。
Next, the
つまり、まず、検索部132は、検索条件に含まれる「PID=155」を取得する。また、検索部132は、検索条件に含まれる属性値識別子「TestC」を取得する。
That is, first, the
次に、検索部132は、ソース・インデックス(1302)を参照し、取得した「PID=155」および「TestC」に対応するソース識別子「File1」を取得する。
Next, the
その後、検索部132は、具体例2で説明した処理と同様の処理により、検索結果を得る。
After that, the
次に、結果出力部141は、構成された検索結果を、端末装置3に送信する。なお、かかる検索結果は、例えば、図13の1307である。
Next, the
次に、検索条件の送信に応じて、端末受信部35は、検索結果を受信する。次に、端末処理部33は、受信された検索結果を用いて、出力する検索結果を構成する。次に、端末出力部36は、当該検索結果を出力する。
Next, in response to the transmission of the search condition, the terminal receiving unit 35 receives the search result. Next, the
以上、本実施の形態によれば、大きいデータサイズのデータソースから、所望の属性値を高速に検索できる。 As described above, according to the present embodiment, a desired attribute value can be searched at high speed from a data source having a large data size.
また、本実施の形態によれば、特に、1レコードの長さが非常に長いデータソースに対して、所望の属性値を高速に検索できる。 Further, according to the present embodiment, it is possible to search for a desired attribute value at high speed, particularly for a data source having a very long record length.
また、本実施の形態によれば、情報検索を高速に行うためのインデックスを自動生成できる。 Further, according to the present embodiment, an index for high-speed information retrieval can be automatically generated.
また、本実施の形態によれば、特に、1レコードの長さが非常に長いデータソースに対して、情報検索を高速に行うためのインデックスを自動生成できる。 Further, according to the present embodiment, it is possible to automatically generate an index for high-speed information retrieval, particularly for a data source having a very long record length.
さらに、本実施の形態によれば、最新の状態のインデックスを保持できる。 Further, according to the present embodiment, the index in the latest state can be maintained.
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における検索装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、キー項目値と2以上の属性値とを有する2以上のレコードを含むデータソースが格納されるデータソース格納部と、2以上のレコードのうちの1以上の各レコードごと、および各レコードの1以上の各属性ごとに、属性値が存在する位置を特定する属性位置情報を有する配列インデックスが格納される配列インデックス格納部とにアクセス可能なコンピュータを、属性識別子を含む検索条件を受け付ける条件受付部と、前記検索条件が有する属性識別子に対応する属性位置情報を、前記配列インデックスから取得し、当該属性位置情報を用いて、前記検索条件が有する前記属性識別子に対応する属性値を、前記データソースから取得する検索部と、前記検索部が取得した前記属性値を含む検索結果を出力する結果出力部として機能させるためのプログラムである。
Further, the processing in the present embodiment may be realized by software. Then, this software may be distributed by software download or the like. Further, this software may be recorded on a recording medium such as a CD-ROM and disseminated. It should be noted that this also applies to other embodiments herein. The software that realizes the
(実施の形態2)
本実施の形態において、3層のスキーマ構造を有するデータ辞書を用いて、2以上のデータソースから情報を取得し、当該情報を統合して、出力する検索装置を具備する検索システムについて説明する。
(Embodiment 2)
In the present embodiment, a search system including a search device that acquires information from two or more data sources, integrates the information, and outputs the information by using a data dictionary having a three-layer schema structure will be described.
図15は、本実施の形態における検索システムBの概念図である。検索システムBは、検索装置4、1または2以上のデータソース管理装置2、および1または2以上の端末装置3を備える。
FIG. 15 is a conceptual diagram of the search system B according to the present embodiment. The search system B includes a
検索装置4は、データソースから情報を検索する装置である。検索装置4は、例えば、いわゆるサーバであり、例えば、クラウドサーバ、ASPサーバ等である。なお、検索装置4の種類は問わない。
The
なお、1または2以上の各データソース管理装置2は、通常、検索装置4とは異なる装置である。
In addition, each data
さらに、検索装置4と1以上のデータソース管理装置2とは、インターネットやLAN等のネットワークにより、通信可能である。また、検索装置4と端末装置3とは、インターネットやLAN等のネットワークにより、通信可能である。
Further, the
図16は、本実施の形態における検索システムBのブロック図である。図17は、検索装置4のブロック図である。
FIG. 16 is a block diagram of the search system B according to the present embodiment. FIG. 17 is a block diagram of the
検索装置4は、格納部41、受付部12、処理部43、および出力部44を備える。格納部41は、インデックス格納部112、および辞書格納部411を備える。処理部43は、インデックス生成部131、検索部432、およびインデックス更新部133を備える。検索部432は、ソース決定手段4321、命令生成手段4322、ソース検索手段4323、および統合手段4324を備える。出力部44は、結果出力部441を備える。
The
データソース管理装置2を構成するデータソース格納部111のデータソースは、1または2以上のテーブルを有する。データソースは、1ファイルでも良いが、2以上のファイルから構成されていても良い。テーブルは、1ファイルでも良いが、一ファイルの中に複数のテーブルが存在しても良い。データソースやテーブルの構造は種々あり得、問わない。
The data source of the data
また、データソースは、例えば、リレーショナルデータベース、オブジェクト指向データベース、XMLデータベース、NoSQLデータベース、ファイル・データソース、データウェアハウス、データマート、ディレクトリ管理システム、リアルタイム測定データ、オンライン・データサービス、ストリーミング・データサービスのうちのいずれかであり、その種類は問わない。 Data sources include, for example, relational databases, object-oriented databases, XML databases, NoSQL databases, file data sources, data warehouses, data marts, directory management systems, real-time measurement data, online data services, streaming data services. It is one of the above, and the type does not matter.
検索装置4を構成する格納部41には、各種の情報が格納される。各種の情報は、例えば、上述した1以上の種類のインデックス、後述するデータ辞書の各種の情報である。
Various types of information are stored in the
辞書格納部411には、データ辞書が格納される。データ辞書は、ユーザが入力する検索条件を用いて、2以上のデータソースから情報を取得し、当該情報を統合するための情報の集合である。データ辞書は、ソース層定義情報、ユーザ層定義情報、変換ルール定義情報を有する。つまり、データ辞書は、3層の情報を有する。
A data dictionary is stored in the
ソース層定義情報は、データソースのスキーマを定義する情報である。ソース層定義情報は、例えば、ソース識別子と1以上のソース属性定義情報とを有する。ソース層定義情報は、例えば、ソース識別子とテーブル識別子と1以上のソース属性定義情報とを有する。 Source layer definition information is information that defines the schema of the data source. The source layer definition information includes, for example, a source identifier and one or more source attribute definition information. The source layer definition information includes, for example, a source identifier, a table identifier, and one or more source attribute definition information.
ソース属性定義情報は、データソースにおけるテーブルの属性を定義する情報である。ソース属性定義情報は、ソース属性識別子を有する。ソース属性識別子は、データソースにおけるテーブルの属性を識別する情報であり、例えば、属性名、IDである。ソース属性定義情報は、データソースにおけるテーブルの属性の1以上の属性値を有しても良い。属性の1以上の属性値は、例えば、データタイプ、サイズである。 Source attribute definition information is information that defines the attributes of a table in a data source. The source attribute definition information has a source attribute identifier. The source attribute identifier is information that identifies an attribute of a table in a data source, and is, for example, an attribute name or an ID. The source attribute definition information may have one or more attribute values of the table attributes in the data source. One or more attribute values of the attribute are, for example, a data type and a size.
ソース層定義情報は、テーブルに対応する情報である。データソースに一つのテーブルのみが存在する場合、ソース層定義情報は、データソースに対応する情報である。 The source layer definition information is the information corresponding to the table. If there is only one table in the data source, the source layer definition information is the information corresponding to the data source.
ソース層定義情報は、データソース固有情報を有することは好適である。データソース固有情報は、各データソースに固有の情報である。データソース固有情報は、例えば、命令元情報、接続情報を有する。 It is preferable that the source layer definition information has data source specific information. Data source-specific information is information specific to each data source. The data source specific information includes, for example, instruction source information and connection information.
命令元情報は、データソースに対する検索命令を生成するための情報である。命令元情報は、検索命令を構成するための情報である。2以上の各データソースに対応する命令元情報は、異なる種類であることは好適である。また、2種類以上の異なる各命令元情報は、例えば、SQL文の検索命令を生成するための情報、検索モジュールを生成するための情報、検索先のURLを含む構文を示すURL構文を含むことは好適である。 The instruction source information is information for generating a search instruction for a data source. The instruction source information is information for constructing a search instruction. It is preferable that the command source information corresponding to each of the two or more data sources is of a different type. Further, each of the two or more different instruction source information includes, for example, information for generating a search command of SQL statement, information for generating a search module, and URL syntax indicating a syntax including a search destination URL. Is suitable.
命令元情報は、例えば、データソースに対して発行するSQL文を構成するための情報である。命令元情報は、例えば、データソースに対してアクセスする際に使用するモジュールのAPIを特定する情報である。命令元情報は、例えば、URL構文であり、例えば、URLとエンドポイント(テーブル識別子)とを有する文字列である。 The instruction source information is, for example, information for constructing an SQL statement issued to a data source. The instruction source information is, for example, information that identifies the API of the module used when accessing the data source. The instruction source information is, for example, a URL syntax, for example, a character string having a URL and an endpoint (table identifier).
接続情報は、データソースにアクセスするための情報である。接続情報は、例えば、IPアドレス、URLを含む。接続情報は、例えば、データソースにログインするためのログイン情報を含む。ログイン情報は、例えば、ユーザ識別子、パスワードを含む。接続情報は、例えば、データソースのドライバー識別情報、APIキーを含む。 Connection information is information for accessing a data source. The connection information includes, for example, an IP address and a URL. The connection information includes, for example, login information for logging in to a data source. The login information includes, for example, a user identifier and a password. The connection information includes, for example, data source driver identification information and API key.
ユーザ層定義情報は、ユーザテーブルのスキーマを定義する情報である。ユーザテーブルは、ユーザが入力する検索条件に基づく検索の対象である。ユーザテーブルは、通常、ビューであり、当該ビューは、1以上のレコードを含む。また、かかるレコードは、1以上の属性値を有する。レコードは、1以上のキー項目値を有することは好適である。 User layer definition information is information that defines the schema of the user table. The user table is the target of the search based on the search conditions entered by the user. A user table is usually a view, which contains one or more records. Further, such a record has one or more attribute values. It is preferable that the record has one or more key item values.
ユーザ層定義情報は、例えば、ユーザテーブル識別子と1以上のユーザ属性定義情報とを有する。ユーザテーブル識別子は、ユーザテーブルを識別する情報であり、例えば、テーブル名、IDである。ユーザ属性定義情報は、ユーザテーブルの属性を定義する情報である。ユーザ属性定義情報は、ユーザ属性識別子を含む。ユーザ属性識別子は、ユーザテーブルの属性を識別する情報である。ユーザ属性識別子は、例えば、属性名、属性のIDである。 The user layer definition information includes, for example, a user table identifier and one or more user attribute definition information. The user table identifier is information that identifies the user table, and is, for example, a table name or an ID. User attribute definition information is information that defines the attributes of the user table. The user attribute definition information includes the user attribute identifier. The user attribute identifier is information that identifies the attribute of the user table. The user attribute identifier is, for example, an attribute name or an attribute ID.
ユーザ属性定義情報は、通常、ユーザ属性値元情報を有する。ユーザ属性値元情報は、ユーザ属性値の取得方法を特定する情報である。ユーザ属性値元情報は、1以上の変換ビューの1以上のビュー属性値を用いた情報である。ユーザ属性値元情報は、例えば、ビュー識別子とビュー属性識別子とを有する。ユーザ属性値元情報は、例えば、ユーザテーブル識別子とユーザ属性識別子とを有しても良い。 The user attribute definition information usually has user attribute value source information. The user attribute value source information is information that specifies a method for acquiring a user attribute value. The user attribute value source information is information using one or more view attribute values of one or more converted views. The user attribute value source information has, for example, a view identifier and a view attribute identifier. The user attribute value source information may have, for example, a user table identifier and a user attribute identifier.
ユーザ属性値元情報は、演算式等を有しても良い。演算式等とは、演算式またはプログラム識別子である。ユーザ属性値元情報が演算式等を有する場合、ユーザ属性値元情報は、1以上のいずれかの変換ビューのビュー識別子または2以上のいずれかのデータソースのソース識別子のうちの1または2以上の識別子と、当該1または2以上の各識別子と対になる属性識別子を有する。なお、1以上の各識別子と対になる属性識別子は、1以上のいずれかの変換ビューのビュー属性識別子または2以上のいずれかのデータソースのソース属性識別子のうちの1以上の属性識別子である。そして、演算式またはプログラム識別子は、1以上の属性識別子に対応する1以上の属性値をパラメータとして受け付け、実行される、演算式またはプログラムの識別子である。プログラム識別子は、例えば、モジュール名、関数名、メソッド名である。 The user attribute value source information may have an arithmetic expression or the like. An arithmetic expression or the like is an arithmetic expression or a program identifier. When the user attribute value source information has an arithmetic expression or the like, the user attribute value source information is one or more of the view identifier of one or more of the transformed views or the source identifier of any of two or more data sources. It has an identifier of 1 and an attribute identifier paired with each of the 1 or 2 or more identifiers. The attribute identifier paired with each of one or more identifiers is one or more attribute identifiers of one or more of the view attribute identifiers of any of the transformed views or the source attribute identifiers of any of two or more data sources. .. The arithmetic expression or program identifier is an identifier of the arithmetic expression or program that accepts and executes one or more attribute values corresponding to one or more attribute identifiers as parameters. The program identifier is, for example, a module name, a function name, or a method name.
変換ルール定義情報は、検索部432が、受け付けられた検索条件に基づいて、2以上の各データソースに対して発行する検索命令を生成し、当該検索命令に対応する検索結果を取得し、当該検索条件に対応する統合データを作成するための情報である。
For the conversion rule definition information, the
変換ルール定義情報は、1以上の変換ビュー情報を有する。変換ビュー情報は、2以上のデータソースのうちの1以上のデータソースを用いて構成される変換ビューを定義する情報である。なお、変換ビューとは、ユーザテーブルと1以上のデータソースとの対応関係を表すビューである。変換ビューは、1以上のビュー属性値を有する1以上のレコードを含み得る。1以上のビュー属性値は、キー項目値を含むことは好適である。変換ビューは、通常、ユーザの直接的な検索対象にはならない情報である。また、一の変換ビュー情報は、通常、一のデータソースに対応する。 The conversion rule definition information has one or more conversion view information. The transformed view information is information that defines a transformed view configured by using one or more data sources out of two or more data sources. The conversion view is a view showing the correspondence between the user table and one or more data sources. The transformed view may contain one or more records with one or more view attribute values. It is preferable that the view attribute value of 1 or more includes the key item value. Transformed views are usually information that is not directly searched by the user. Also, one transform view information usually corresponds to one data source.
変換ビュー情報は、1以上のビュー属性定義情報を有する。変換ビュー情報は、通常、ビュー識別子を有する。ビュー属性定義情報は、変換ビューの属性を定義する情報である。ビュー属性定義情報は、ビュー属性識別子とビュー属性定義情報とを有する。ビュー属性識別子は、変換ビューの属性を識別する情報である。ビュー属性識別子は、例えば、変換ビューの属性名、変換ビューの属性のIDである。 The transformed view information has one or more view attribute definition information. The transformed view information usually has a view identifier. View attribute definition information is information that defines the attributes of the transformed view. The view attribute definition information includes a view attribute identifier and view attribute definition information. The view attribute identifier is information that identifies the attribute of the transformed view. The view attribute identifier is, for example, an attribute name of the conversion view or an ID of the attribute of the conversion view.
ビュー属性値元情報は、ビュー属性値の取得方法を特定する情報である。ビュー属性値元情報は、例えば、ビュー属性値の取得元のデータソースのソース識別子とソース属性識別子とを有する。 The view attribute value source information is information that specifies the acquisition method of the view attribute value. The view attribute value source information has, for example, a source identifier and a source attribute identifier of the data source from which the view attribute value is acquired.
ビュー属性値元情報は、2以上のいずれかのデータソースのソース属性識別子または1以上のいずれかの変換ビューのビュー属性識別子のうちの1以上の属性識別子と、当該1以上の属性識別子に対応する属性値をパラメータとする演算式等とを有する。演算式等とは、演算式またはプログラム識別子である。プログラム識別子は、0あるいは1以上の属性値をパラメータとして実行可能であり、ビュー属性値を取得するプログラムの識別情報である。なお、与える属性値が0であるプログラムは、例えば、本日の日付を取得する「TODAY()」、現在時刻を取得する「TIME()」である。 The view attribute value source information corresponds to one or more attribute identifiers of the source attribute identifier of any one or more data sources or the view attribute identifier of one or more transformation views and the one or more attribute identifiers. It has an arithmetic expression or the like whose parameter is the attribute value to be used. An arithmetic expression or the like is an arithmetic expression or a program identifier. The program identifier can be executed with an attribute value of 0 or 1 or more as a parameter, and is identification information of a program for acquiring a view attribute value. The program in which the attribute value to be given is 0 is, for example, "TODAY ()" for acquiring today's date and "TIME ()" for acquiring the current time.
変換ルール定義情報は、結合方式識別子を有しても良い。結合方式識別子は、2以上の変換ビュー情報に基づいて取得された2以上の検索結果を結合する方式を特定する情報である。結合方式識別子は、例えば、「UNION」「CHOICE」「LOOKUP」である。変換ルール定義情報が含み得る2以上の結合方式識別子は、「UNION」「CHOICE」「LOOKUP」のうちの2以上であることは好適である。また、変換ルール定義情報が含み得る結合方式識別子は、「UNION」「CHOICE」「LOOKUP」を含む3以上であることは好適である。 The conversion rule definition information may have a join method identifier. The join method identifier is information that specifies a method for joining two or more search results acquired based on two or more conversion view information. The binding method identifier is, for example, "UNION", "CHOICE", and "LOOKUP". It is preferable that the two or more combination method identifiers that the conversion rule definition information can include are two or more of "UNION", "CHOICE", and "LOOKUP". Further, it is preferable that the combination method identifier that can be included in the conversion rule definition information is 3 or more including "UNION", "CHOICE", and "LOOKUP".
「UNION」は、併合処理を特定する情報である。併合処理は、2以上の検索結果に対して、1または2以上のキー項目でグループ化し、1または2以上の各非キー項目の2以上の属性値を集約することにより、一のレコードを構成する処理である。 "UNION" is information that specifies the merge process. In the merge process, one record is composed by grouping two or more search results with one or two or more key items and aggregating two or more attribute values of each one or two or more non-key items. It is a process to do.
なお、2以上の属性値を集約することは、2以上の属性値に対して、所定の演算を行い、一つの値を取得することである。所定の演算とは、例えば、合計値の算出(SUM)、平均値の算出(Average)、最大値の取得(MAX)、最小値の取得(MIN)、中央値の取得(MEDIAN)、標準偏差の算出等である。 In addition, to aggregate two or more attribute values is to perform a predetermined operation on two or more attribute values and acquire one value. The predetermined calculation is, for example, calculation of total value (SUM), calculation of average value (Average), acquisition of maximum value (MAX), acquisition of minimum value (MIN), acquisition of median (MEDIAn), standard deviation. Calculation, etc.
「CHOICE」は、選択処理を特定する情報である。選択処理は、優先順位に従い、2以上の検索結果の中から1以上の検索結果を選択し、かつ1または2以上の各非キー項目の2以上の属性値を集約して、一のレコードを構成する処理である。なお、優先順位とは、2以上の変換ビューまたは2以上のデータソースからの検索結果に対する優先順位であり、例えば、格納部41に格納されている。変換ルール定義情報は、優先順位を含んでも良い。
"CHOICE" is information that specifies the selection process. In the selection process, one or more search results are selected from two or more search results according to the priority order, and two or more attribute values of each one or two or more non-key items are aggregated to obtain one record. It is a process to configure. The priority is a priority for search results from two or more conversion views or two or more data sources, and is stored in, for example, the
「LOOKUP」は、補完処理を特定する情報である。補完処理は、参照条件に従い参照する一の検索結果と、参照される他の検索結果とを特定し、2以上の検索結果のうちの参照する一の検索結果のキー項目の属性値に、参照される他の検索結果に含まれるキー項目の属性値であり、一の検索結果に含まれないキー項目の属性値を付加し、かつ1または2以上の各非キー項目の2以上の属性値を集約して、一のレコードを構成する処理である。なお、参照条件とは、検索結果から取得する1以上の各属性値を特定する情報であり、例えば、1以上の属性識別子である。 "LOOKUP" is information that specifies the complement processing. The completion process identifies one search result to be referenced and another search result to be referenced according to the reference condition, and refers to the attribute value of the key item of the one reference search result among the two or more search results. It is an attribute value of a key item included in other search results, and an attribute value of a key item not included in one search result is added, and two or more attribute values of one or two or more non-key items are added. Is a process that constitutes one record by aggregating. The reference condition is information for specifying one or more attribute values acquired from the search result, and is, for example, one or more attribute identifiers.
処理部43は、各種の処理を行う。各種の処理は、例えば、インデックス生成部131、検索部432、インデックス更新部133が行う処理である。
The
検索部432は、辞書格納部411を参照して、受付部12が受け付けた検索条件に対応する2以上のデータソースを決定する。なお、2以上のデータソースを決定することは、2以上のソース識別子を取得することである。また、2以上のデータソースの決定は、まとめて行われる必要はない。
The
そして、検索部432は、変換ルール定義情報を用いて、決定した2以上の各データソースごとに、検索命令を生成し、当該検索命令に基づいた検索結果を取得する。そして、検索部432は、変換ルール定義情報とユーザ層定義情報とを用いて、取得した2以上の各データソースに対応する検索結果を統合し、検索条件に対応する統合データを取得する。
Then, the
検索部432は、例えば、ビュー属性値元情報に対応するビュー属性値を取得する場合に、ビュー属性値元情報が有する1または2以上の各属性識別子に対応する属性値をデータソースまたは変換ビューから取得する。次に、検索部432は、当該取得した1または2以上の属性値を演算式またはプログラム識別子で識別されるプログラムに与えて、当該演算式またはプログラムを実行し、ビュー属性値を取得する。ビュー属性値元情報が有する1以上の各属性識別子は、ソース属性識別子またはビュー属性識別子である。また、ビュー属性値元情報が有する1以上の各属性識別子に対応する属性値は、ソース属性値またはビュー属性値である。
For example, when the
検索部432は、例えば、ユーザ属性値元情報に対応するユーザ属性値を取得する場合に、ユーザ属性値元情報が有する1または2以上の各属性識別子に対応する属性値をデータソースまたは変換ビューから取得する。次に、検索部432は、当該取得した1以上の属性値を演算式またはプログラム識別子で識別されるプログラムに与えて、演算式またはプログラムを実行し、ユーザ属性値を取得する。なお、ユーザ属性値元情報が有する1以上の各属性識別子は、ソース属性識別子またはビュー属性識別子である。また、ユーザ属性値元情報が有する1以上の各属性識別子に対応する属性値は、ソース属性値またはビュー属性値である。
For example, when the
検索部432は、例えば、2以上の各データソースに対する命令元情報に従って、2以上の各データソースから情報を取得するための検索命令を生成する。次に、検索部432は、2以上の各データソースに対する検索命令に基づいた検索結果を、対応するデータソースから取得する。次に、検索部432は、変換ルール定義情報とユーザ層定義情報とを用いて、2以上の各データソースに対応する検索結果を統合し、検索条件に対応する統合データを取得する。
The
検索部432は、例えば、2以上の各データソースに対する命令元情報に従って、SQL文に対応するデータソースに対しては、命令元情報に従ったSQL文である検索命令を生成する。また、検索部432は、例えば、検索モジュールに対応するデータソースに対しては、命令元情報に従った検索モジュールのインターフェイスである検索命令を生成する。そして、検索部432は、2以上の各データソースごとに、各検索命令に基づいた検索結果を取得する。次に、検索部432は、変換ルール定義情報とユーザ層定義情報とを用いて、2以上の各データソースに対応する検索結果を統合し、検索条件に対応する統合データを取得する。
The
検索部432は、例えば、2以上の各データソースに対する接続情報を用いて、接続情報に対応するデータソースにアクセスし、検索命令に基づいた検索結果をデータソースから取得する。次に、検索部432は、変換ルール定義情報とユーザ層定義情報とを用いて、2以上の各データソースに対応する検索結果を統合し、検索条件に対応する統合データを取得する。
The
検索部432は、例えば、変換ルール定義情報が有する結合方式識別子を取得し、当該結合方式識別子により特定される結合方式に従って、2以上の検索結果を結合し、統合データを取得する。
The
検索部432は、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得し、属性位置情報を用いて、検索条件が有する属性識別子に対応する属性値をデータソースから取得し、属性値を有する統合データを構成する。なお、検索対象のデータソースが実施の形態1で説明した構造を有するデータソースである場合、検索部432が当該データソースから情報を取得する場合、検索部432は、検索部132と同じ動作をする。つまり、検索部432は、インデックス格納部112の1種類以上のインデックス情報を用いて、当該データソースから情報を取得する。かかる検索部432の検索処理は、実施の形態1における検索部132の処理として説明したので、ここでの説明は省略する。
The
ソース決定手段4321は、検索条件に含まれる1以上のユーザ属性識別子を取得し、当該1以上の各ユーザ属性識別子に対応するユーザ属性値元情報を取得する。次に、ソース決定手段4321は、当該1以上の各ユーザ属性値元情報に対応する1以上のビュー属性識別子を取得する。次に、ソース決定手段4321は、当該1以上の各ビュー属性識別子に対応するソース識別子をビュー属性定義情報から取得する。なお、ソース決定手段4321は、取得したソース識別子に対してユニーク処理を行い、1または2以上のユニークなソース識別子を取得することは好適である。
The source determination means 4321 acquires one or more user attribute identifiers included in the search condition, and acquires the user attribute value source information corresponding to each of the one or more user attribute identifiers. Next, the source determination means 4321 acquires one or more view attribute identifiers corresponding to the one or more user attribute value source information. Next, the source determination means 4321 acquires the source identifier corresponding to each of the one or more view attribute identifiers from the view attribute definition information. It is preferable that the
命令生成手段4322は、検索条件とビュー属性値元情報とを用いて、ソース決定手段4321が取得した2以上の各ソース識別子で識別されるデータソースごとに検索命令を生成する。 The instruction generation means 4322 uses the search condition and the view attribute value source information to generate a search instruction for each data source identified by each of the two or more source identifiers acquired by the source determination means 4321.
命令生成手段4322は、2以上の各データソースに対する命令元情報に従って、データソースごとに検索命令を生成する。 The instruction generation means 4322 generates a search instruction for each data source according to the instruction source information for each of two or more data sources.
命令元情報が、SQL文の構文情報を含む場合、命令生成手段4322は、検索条件に基づいて、当該SQL文の構文情報に従ったSQL文を生成する。 When the instruction source information includes the syntax information of the SQL statement, the instruction generation means 4322 generates the SQL statement according to the syntax information of the SQL statement based on the search condition.
命令元情報が、検索モジュールのインターフェイスの構文情報を含む場合、命令生成手段4322は、検索条件に基づいて、当該検索モジュールのインターフェイスの構文情報に従った検索モジュールを実行するための文字列である検索命令を生成する。 When the instruction source information includes the syntax information of the interface of the search module, the instruction generation means 4322 is a character string for executing the search module according to the syntax information of the interface of the search module based on the search condition. Generate a search command.
命令元情報が、URL構文である場合、命令生成手段4322は、検索条件に基づいて、
URL構文が有するURLとエンドポイント(テーブル識別子)に加えて、検索条件が有する条件部とを有する文字列である検索命令を生成する。
When the instruction source information has a URL syntax, the instruction generation means 4322 is based on the search condition.
In addition to the URL and endpoint (table identifier) that the URL syntax has, a search command that is a character string having the condition part that the search condition has is generated.
ソース検索手段4323は、2以上の各データソースごとに、命令生成手段4322が取得した検索命令に基づいた検索結果を取得する。ソース検索手段4323は、例えば、2以上の各検索命令を実行し、対応するデータソースから検索結果を取得する。 The source search means 4323 acquires a search result based on the search instruction acquired by the instruction generation means 4322 for each of the two or more data sources. The source search means 4323, for example, executes each of two or more search commands and acquires search results from the corresponding data source.
統合手段4324は、検索条件およびユーザ層定義情報を用いて、ソース検索手段4323が取得した2以上の各データソースごとの検索結果を統合した統合データを取得する。 The integration means 4324 acquires integrated data in which the search results for each of the two or more data sources acquired by the source search means 4323 are integrated by using the search conditions and the user layer definition information.
統合手段4324は、例えば、辞書格納部411に格納されている変換ルール定義情報が有する結合方式識別子により特定される結合方式に従って、2以上の検索結果を結合し、統合データを取得する。
The integration means 4324 combines two or more search results and acquires integrated data according to the combination method specified by the combination method identifier of the conversion rule definition information stored in the
結合方式識別子が「UNION」である場合、統合手段4324は、優先順位に従い、2以上の検索結果の中から1以上の検索結果を選択し、かつ1または2以上の各非キー項目の2以上の属性値を集約して、一のレコードを構成する併合処理を行う。 When the binding method identifier is "UNION", the integration means 4324 selects one or more search results from two or more search results according to the priority, and two or more of one or two or more non-key items. The attribute values of are aggregated and the merge process that constitutes one record is performed.
結合方式識別子が「CHOICE」である場合、統合手段4324は、優先順位に従い、2以上の検索結果の中から1以上の検索結果に含まれるキー項目の属性値を選択し、かつ非キー項目の2以上の属性値を集約して、一のレコードを構成する選択処理を行う。なお、優先順位は、2以上の変換ビューまたは2以上のデータソースの中から優先する1以上の変換ビューまたは1以上のデータソースを特定する情報である。また、優先順位は、格納部41に格納されている。
When the combination method identifier is "CHOICE", the integration means 4324 selects the attribute value of the key item included in one or more search results from two or more search results according to the priority, and the non-key item. The selection process that constitutes one record is performed by aggregating two or more attribute values. The priority is information that identifies one or more conversion views or one or more data sources that are prioritized from among two or more conversion views or two or more data sources. Further, the priority order is stored in the
結合方式識別子が「LOOKUP」である場合、統合手段4324は、参照条件に従い、参照する一の検索結果と、参照される他の検索結果とを特定し、2以上の検索結果のうちの参照する一の検索結果のキー項目の属性値に、参照される他の検索結果に含まれるキー項目の属性値であり、一の検索結果に含まれないキー項目の属性値を付加し、かつ1または2以上の各非キー項目の2以上の属性値を集約して、一のレコードを構成する補完処理を行う。なお、参照条件とは、参照する一の検索結果と、参照される他の検索結果とを特定する情報である。参照条件は、例えば、「<参照ビュー識別子>識別子1 <非参照ビュー識別子>識別子2」である。また、参照条件は、格納部41に格納されている。
When the binding method identifier is "LOOKUP", the integration means 4324 identifies one search result to be referred to and another search result to be referred to according to a reference condition, and refers to two or more search results. To the attribute value of the key item of one search result, the attribute value of the key item that is the attribute value of the key item included in the other referenced search results and is not included in the one search result is added, and 1 or 1 or Complement processing that constitutes one record is performed by aggregating two or more attribute values of each of two or more non-key items. The reference condition is information that identifies one search result to be referred to and another search result to be referred to. The reference condition is, for example, "<reference view identifier>
出力部44は、各種の情報を出力する。各種の情報とは、例えば、統合データである。また、ここでの出力とは、通常、端末装置3への送信であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。
The
結果出力部441は、検索部432が取得した統合データを出力する。
The result output unit 441 outputs the integrated data acquired by the
次に、検索システムBを構成する検索装置4の動作例について、図18のフローチャートを用いて説明する。ここで、検索装置4の処理のうち、インデックスを生成する処理は、実施の形態1で説明したので、ここでの説明は省略する。ここでは、検索装置4が行う検索処理について説明する。
Next, an operation example of the
(ステップS1801)条件受付部121は、検索条件を受け付けたか否かを判断する。検索条件を受け付けた場合はステップS1802に行き、検索条件を受け付けなかった場合はステップS1801に戻る。
(Step S1801) The
(ステップS1802)ソース決定手段4321は、ステップS1801で受け付けられた検索条件に含まれるユーザテーブル識別子を取得する。このユーザテーブル識別子は、検索対象のユーザテーブルの識別子である。 (Step S1802) The source determination means 4321 acquires the user table identifier included in the search condition accepted in step S1801. This user table identifier is an identifier of the user table to be searched.
(ステップS1803)ソース決定手段4321は、ステップS1801で受け付けられた検索条件に含まれる1以上のユーザ属性識別子を取得する。 (Step S1803) The source determination means 4321 acquires one or more user attribute identifiers included in the search condition accepted in step S1801.
なお、かかるユーザ属性識別子は、検索条件の中の条件部、抽出部、その他部等のうちのいずれの箇所に存在していても良い。条件部とは、検索条件の中の条件を記載した箇所である。抽出部とは、検索条件の中の、統合データを構成する属性値を記載した箇所である。その他部は、条件部、抽出部以外の箇所である。 The user attribute identifier may exist in any of the condition part, the extraction part, the other part, and the like in the search condition. The condition part is a place where the condition in the search condition is described. The extraction unit is a place in the search condition in which the attribute values constituting the integrated data are described. The other parts are parts other than the condition part and the extraction part.
検索条件が「SELECT 商品ID, 商品名, SUM(販売数量), SUM(販売金額), SUM(仕入金額), SUM(売上利益) FROM 商品別売上利益 WHERE 商品ID=1103 GROUP BY 商品ID, 商品名」である場合、条件部は「商品ID=1103」、抽出部は「商品ID, 商品名, SUM(販売数量), SUM(販売金額), SUM(仕入金額), SUM(売上利益)」、その他部は「GROUP BY」句の「商品ID, 商品名」である。 The search conditions are "SELECT product ID, product name, SUM (sales quantity), SUM (sales amount), SUM (purchase amount), SUM (sales profit) FROM sales profit by product WHERE product ID = 1103 GROUP BY product ID, In the case of "product name", the condition part is "product ID = 1103", and the extraction part is "product ID, product name, SUM (sales quantity), SUM (sales amount), SUM (purchase amount), SUM (sales profit)". ) ”, The other part is the“ product ID, product name ”in the“ GROUP BY ”phrase.
(ステップS1804)ソース決定手段4321は、カウンタiに1を代入する。
(Step S1804) The source determination means 4321
(ステップS1805)ソース決定手段4321は、ステップS1803で取得したユーザ属性識別子の中で、i番目のユーザ属性識別子が存在するか否かを判断する。i番目のユーザ属性識別子が存在する場合はステップS1806に行き、i番目のユーザ属性識別子が存在しない場合はステップS1808に行く。 (Step S1805) The source determination means 4321 determines whether or not the i-th user attribute identifier exists among the user attribute identifiers acquired in step S1803. If the i-th user attribute identifier exists, the process goes to step S1806, and if the i-th user attribute identifier does not exist, the process goes to step S1808.
(ステップS1806)ソース決定手段4321は、i番目のユーザ属性識別子と対になるユーザ属性値元情報を、ソース層定義情報から取得する。 (Step S1806) The source determination means 4321 acquires the user attribute value source information paired with the i-th user attribute identifier from the source layer definition information.
(ステップS1807)ソース決定手段4321は、カウンタiを1、インクリメントする。ステップS1805に戻る。 (Step S1807) The source determination means 4321 increments the counter i by 1. Return to step S1805.
(ステップS1808)ソース決定手段4321は、ステップS1806で取得したすべてのユーザ属性値元情報からビュー識別子を取得する。なお、1以上のユーザ属性値元情報は、ビュー識別子ではなく、ユーザテーブル識別子を有しても良い。 (Step S1808) The source determination means 4321 acquires the view identifier from all the user attribute value source information acquired in step S1806. Note that the one or more user attribute value source information may have a user table identifier instead of a view identifier.
(ステップS1809)ソース決定手段4321は、ステップS1808で取得したビュー識別子に対して、ユニーク処理をし、統合データの取得に必要な1以上の各変換ビューのビュー識別子を取得する。 (Step S1809) The source determination means 4321 performs unique processing on the view identifier acquired in step S1808, and acquires one or more view identifiers of each transformed view necessary for acquiring integrated data.
(ステップS1810)ソース決定手段4321は、カウンタjに1を代入する。
(Step S1810) The source determination means 4321
(ステップS1811)ソース決定手段4321は、ステップS1809で取得したビュー識別子の中で、j番目のビュー識別子が存在するか否かを判断する。j番目のビュー識別子が存在する場合はステップS1812に行き、j番目のビュー識別子が存在しない場合はステップS1819に行く。 (Step S1811) The source determination means 4321 determines whether or not the j-th view identifier exists among the view identifiers acquired in step S1809. If the j-th view identifier exists, the process goes to step S1812, and if the j-th view identifier does not exist, the process goes to step S1819.
(ステップS1812)ソース決定手段4321は、カウンタkに1を代入する。
(Step S1812) The source determination means 4321
(ステップS1813)ソース決定手段4321は、ステップS1806で取得したユーザ属性値元情報の中に、j番目のビュー識別子と対になるk番目のビュー属性識別子が存在するか否かを判断する。k番目のビュー属性識別子が存在する場合はステップS1814に行き、k番目のビュー属性識別子が存在しない場合はステップS1818に行く。なお、ここでのk番目のビュー属性識別子は、ユニークなビュー属性識別子である。つまり、同じビュー属性識別子は、本ステップでは取得されない。また、k番目のビュー属性識別子は、ユーザ属性識別子でも良い。 (Step S1813) The source determination means 4321 determines whether or not the k-th view attribute identifier paired with the j-th view identifier exists in the user attribute value source information acquired in step S1806. If the k-th view attribute identifier exists, the process goes to step S1814, and if the k-th view attribute identifier does not exist, the process goes to step S1818. The kth view attribute identifier here is a unique view attribute identifier. That is, the same view attribute identifier is not acquired in this step. Further, the k-th view attribute identifier may be a user attribute identifier.
(ステップS1814)ソース決定手段4321は、ステップS1806で取得したユーザ属性値元情報の中から、j番目のビュー識別子と対になるk番目のビュー属性識別子を取得する。次に、ソース決定手段4321は、当該k番目のビュー属性識別子と対になるk番目のビュー属性値元情報を、変換ルール定義情報の中のj番目のビュー識別子と対になる変換ビュー情報から取得する。 (Step S1814) The source determination means 4321 acquires the k-th view attribute identifier paired with the j-th view identifier from the user attribute value source information acquired in step S1806. Next, the source determination means 4321 obtains the k-th view attribute value source information paired with the k-th view attribute identifier from the converted view information paired with the j-th view identifier in the conversion rule definition information. get.
なお、k番目のビュー属性識別子は、ユーザ属性識別子でも良い。ユーザ属性識別子である場合、ソース決定手段4321は、当該ユーザ属性識別子と対になるユーザ属性値元情報を取得し、当該ユーザ属性値元情報に含まれるビュー識別子とビュー属性識別子と対になるビュー属性値元情報を取得する。 The k-th view attribute identifier may be a user attribute identifier. In the case of a user attribute identifier, the source determination means 4321 acquires the user attribute value source information paired with the user attribute identifier, and the view paired with the view identifier and the view attribute identifier included in the user attribute value source information. Get the attribute value source information.
(ステップS1815)ソース決定手段4321は、カウンタkを1、インクリメントする。ステップS1813に戻る。 (Step S1815) The source determination means 4321 increments the counter k by 1. Return to step S1813.
(ステップS1816)ソース決定手段4321は、ステップS1814で取得した1以上のビュー属性値元情報を用いて、j番目のビュー識別子に対応する検索命令を生成する。かかる命令生成処理の例について、図19のフローチャートを用いて説明する。 (Step S1816) The source determination means 4321 uses the one or more view attribute value source information acquired in step S1814 to generate a search instruction corresponding to the jth view identifier. An example of such an instruction generation process will be described with reference to the flowchart of FIG.
(ステップS1817)ソース検索手段4323は、ステップS1816で生成された検索命令を用いて、j番目のビュー識別子に対応するデータソースから、検索結果を取得する。 (Step S1817) The source search means 4323 uses the search instruction generated in step S1816 to acquire a search result from the data source corresponding to the j-th view identifier.
(ステップS1818)ソース決定手段4321は、カウンタjを1、インクリメントする。ステップS1811に戻る。 (Step S1818) The source determination means 4321 increments the counter j by 1. Return to step S1811.
(ステップS1819)統合手段4324は、ステップS1817で取得された検索結果を統合し、統合データを取得する。なお、かかる統合処理の例について、図20のフローチャートを用いて説明する。 (Step S1819) The integration means 4324 integrates the search results acquired in step S1817 and acquires integrated data. An example of such integrated processing will be described with reference to the flowchart of FIG.
(ステップS1820)結果出力部441は、ステップS1819で取得された統合データを出力する。ステップS1801に戻る。 (Step S1820) The result output unit 441 outputs the integrated data acquired in step S1819. Return to step S1801.
なお、図18のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。 In the flowchart of FIG. 18, the process is terminated by turning off the power or interrupting the end of the process.
次に、ステップS1816の命令生成処理の例について、図19のフローチャートを用いて説明する。 Next, an example of the instruction generation process in step S1816 will be described with reference to the flowchart of FIG.
(ステップS1901)命令生成手段4322は、S1811のj番目のビュー識別子に対応するデータソースのソース層定義情報のデータソース固有情報から、命令元情報を取得する。 (Step S1901) The instruction generation means 4322 acquires the instruction source information from the data source specific information of the source layer definition information of the data source corresponding to the j-th view identifier of S1811.
(ステップS1902)命令生成手段4322は、受け付けられた検索条件を解析し、当該検索条件の条件部、抽出部、およびその他部の情報を取得する。 (Step S1902) The instruction generation means 4322 analyzes the accepted search condition and acquires the information of the condition unit, the extraction unit, and the other unit of the search condition.
なお、検索条件を解析する処理は、例えば、SQL文の処理ソフトウェア等の公知技術により、実現可能である。 The process of analyzing the search condition can be realized by a known technique such as SQL statement processing software.
(ステップS1903)命令生成手段4322は、カウンタiに1を代入する。
(Step S1903) The instruction generation means 4322
(ステップS1904)命令生成手段4322は、ステップS1902で取得した条件部に対応するi番目のビュー属性値元情報が存在するか否かを判断する。条件部に対応するi番目のビュー属性値元情報が存在する場合はステップS1905に行き、存在しない場合はステップS1907に行く。 (Step S1904) The instruction generation means 4322 determines whether or not the i-th view attribute value source information corresponding to the condition unit acquired in step S1902 exists. If the i-th view attribute value source information corresponding to the condition unit exists, the process goes to step S1905, and if it does not exist, the process goes to step S1907.
(ステップS1905)命令生成手段4322は、ステップS1902で取得した条件部に対応するi番目のビュー属性値元情報が有するソース属性識別子を取得する。 (Step S1905) The instruction generation means 4322 acquires the source attribute identifier possessed by the i-th view attribute value source information corresponding to the condition unit acquired in step S1902.
(ステップS1906)命令生成手段4322は、カウンタiを1、インクリメントする。ステップS1904に戻る。 (Step S1906) The instruction generation means 4322 increments the counter i by 1. Return to step S1904.
(ステップS1907)命令生成手段4322は、ステップS1905で取得した1以上のソース属性識別子と、受け付けられた検索条件の中の条件部とを用いて、ステップS1901で取得した命令元情報に従って、検索命令の条件部の情報を取得する。 (Step S1907) The instruction generation means 4322 uses the one or more source attribute identifiers acquired in step S1905 and the condition unit in the accepted search conditions, and uses the search instruction according to the instruction source information acquired in step S1901. Get the information of the condition part of.
(ステップS1908)命令生成手段4322は、カウンタjに1を代入する。
(Step S1908) The instruction generation means 4322
(ステップS1909)命令生成手段4322は、ステップS1902で取得した抽出部に対応するj番目のビュー属性値元情報が存在するか否かを判断する。抽出部に対応するj番目のビュー属性値元情報が存在する場合はステップS1910に行き、存在しない場合はステップS1912に行く。 (Step S1909) The instruction generation means 4322 determines whether or not the j-th view attribute value source information corresponding to the extraction unit acquired in step S1902 exists. If the j-th view attribute value source information corresponding to the extraction unit exists, the process goes to step S1910, and if it does not exist, the process goes to step S1912.
(ステップS1910)命令生成手段4322は、ステップS1902で取得した抽出部に対応するj番目のビュー属性値元情報が有するソース属性識別子を取得する。 (Step S1910) The instruction generation means 4322 acquires the source attribute identifier possessed by the j-th view attribute value source information corresponding to the extraction unit acquired in step S1902.
(ステップS1911)命令生成手段4322は、カウンタjを1、インクリメントする。ステップS1909に戻る。 (Step S1911) The instruction generation means 4322 increments the counter j by 1. Return to step S1909.
(ステップS1912)命令生成手段4322は、ステップS1910で取得した1以上のソース属性識別子と、受け付けられた検索条件の中の抽出部とを用いて、ステップS1901で取得した命令元情報に従って、検索命令の抽出部の情報を取得する。 (Step S1912) The instruction generation means 4322 uses the one or more source attribute identifiers acquired in step S1910 and the extraction unit in the accepted search conditions, and uses the search command according to the instruction source information acquired in step S1901. Get the information of the extraction part of.
(ステップS1913)命令生成手段4322は、カウンタkに1を代入する。
(Step S1913) The instruction generation means 4322
(ステップS1914)命令生成手段4322は、ステップS1902で取得したその他部に対応するk番目のビュー属性値元情報が存在するか否かを判断する。その他部に対応するk番目のビュー属性値元情報が存在する場合はステップS1915に行き、存在しない場合はステップS1917に行く。 (Step S1914) The instruction generation means 4322 determines whether or not the k-th view attribute value source information corresponding to the other part acquired in step S1902 exists. If the kth view attribute value source information corresponding to the other part exists, the process goes to step S1915, and if it does not exist, the process goes to step S1917.
(ステップS1915)命令生成手段4322は、ステップS1902で取得したその他部に対応するk番目のビュー属性値元情報が有するソース属性識別子を取得する。 (Step S1915) The instruction generation means 4322 acquires the source attribute identifier possessed by the k-th view attribute value source information corresponding to the other part acquired in step S1902.
(ステップS1916)命令生成手段4322は、カウンタkを1、インクリメントする。ステップS1914に戻る。 (Step S1916) The instruction generation means 4322 increments the counter k by 1. Return to step S1914.
(ステップS1917)命令生成手段4322は、ステップS1915で取得した1以上のソース属性識別子と、受け付けられた検索条件の中のその他部とを用いて、ステップS1901で取得した命令元情報に従って、検索命令のその他部の情報を取得する。なお、ここで、その他部の情報を取得しない場合がある。 (Step S1917) The instruction generation means 4322 uses the one or more source attribute identifiers acquired in step S1915 and the other part in the accepted search conditions, and uses the search instruction according to the instruction source information acquired in step S1901. Get information about other parts of. In addition, here, the information of other parts may not be acquired.
(ステップS1918)命令生成手段4322は、ステップS1907で取得した条件部の情報、ステップS1912で取得した抽出部の情報、ステップS1917で取得したその他部の情報を用いて、ステップS1901で取得した命令元情報に基づいて、検索命令を構成する。上位処理にリターンする。 (Step S1918) The instruction generation means 4322 uses the information of the condition unit acquired in step S1907, the information of the extraction unit acquired in step S1912, and the information of the other unit acquired in step S1917, and the instruction source acquired in step S1901. Configure search instructions based on the information. Return to higher-level processing.
なお、ステップS1917でその他部の情報を取得しなかった場合は、命令生成手段4322は、ステップS1907で取得した条件部の情報、ステップS1912で取得した抽出部の情報を用いて検索命令を構成する。 If the information of the other part is not acquired in step S1917, the instruction generation means 4322 configures the search command by using the information of the condition part acquired in step S1907 and the information of the extraction unit acquired in step S1912. ..
次に、ステップS1819の統合処理の例について、図20のフローチャートを用いて説明する。 Next, an example of the integration process in step S1819 will be described with reference to the flowchart of FIG.
(ステップS2001)統合手段4324は、カウンタiに1を代入する。
(Step S2001) The integration means 4324
(ステップS2002)統合手段4324は、結合対象の各検索結果がi番目のレコードを含むか否かを判断する。i番目のレコードを含む場合はステップS2003に行き、i番目のレコードを含まない場合は上位処理にリターンする。 (Step S2002) The integration means 4324 determines whether or not each search result to be combined includes the i-th record. If the i-th record is included, the process goes to step S2003, and if the i-th record is not included, the process returns to higher-level processing.
(ステップS2003)統合手段4324は、変換ルール定義情報が結合方式識別子を含むか否かを判断する。結合方式識別子を含まない場合はステップS2004に行き、結合方式識別子を含む場合はステップS2015に行く。 (Step S2003) The integration means 4324 determines whether or not the conversion rule definition information includes the join method identifier. If the join method identifier is not included, the process goes to step S2004, and if the join method identifier is included, the process goes to step S2015.
(ステップS2004)統合手段4324は、カウンタjに1を代入する。
(Step S2004) The integration means 4324
(ステップS2005)統合手段4324は、統合データに使用するj番目のユーザ属性識別子が存在するか否かを判断する。j番目のユーザ属性識別子が存在する場合はステップS2004に行き、存在しない場合はステップS2013に行く。 (Step S2005) The integration means 4324 determines whether or not the j-th user attribute identifier used for the integration data exists. If the j-th user attribute identifier exists, the process goes to step S2004, and if it does not exist, the process goes to step S2013.
(ステップS2006)統合手段4324は、j番目のユーザ属性識別子と対になるユーザ属性値元情報を、ユーザ層定義情報から取得する。 (Step S2006) The integration means 4324 acquires the user attribute value source information paired with the jth user attribute identifier from the user layer definition information.
(ステップS2007)統合手段4324は、ステップS2006で取得したユーザ属性値元情報の中に、演算式等が存在するか否かを判断する。演算式等が存在する場合はステップS2008に行き、存在しない場合はステップS2011に行く。 (Step S2007) The integration means 4324 determines whether or not an arithmetic expression or the like exists in the user attribute value source information acquired in step S2006. If an arithmetic expression or the like exists, it goes to step S2008, and if it does not exist, it goes to step S2011.
(ステップS2008)統合手段4324は、ステップS2006で取得したユーザ属性値元情報の中の1以上のビュー属性識別子を取得する。次に、統合手段4324は、S1817で取得された検索結果のi番目のレコードから、1以上の各属性識別子に対応する属性値を取得する。なお、1以上の各属性識別子には、1以上のビュー属性識別子が含まれる。1以上の各属性識別子に、1以上のユーザ属性識別子が含まれていても良い。 (Step S2008) The integration means 4324 acquires one or more view attribute identifiers in the user attribute value source information acquired in step S2006. Next, the integration means 4324 acquires the attribute value corresponding to one or more attribute identifiers from the i-th record of the search result acquired in S1817. It should be noted that each one or more attribute identifiers includes one or more view attribute identifiers. Each one or more attribute identifiers may include one or more user attribute identifiers.
(ステップS2009)統合手段4324は、ステップS2006で取得したユーザ属性値元情報の中の演算式等を取得する。 (Step S2009) The integration means 4324 acquires an arithmetic expression or the like in the user attribute value source information acquired in step S2006.
(ステップS2010)統合手段4324は、ステップS2009で取得した演算式等に、ステップS2008で取得した1以上の各属性値を代入し、演算式等を実行し、ユーザ属性値を取得する。ステップS2010に行く。 (Step S2010) The integration means 4324 substitutes each one or more attribute values acquired in step S2008 into the arithmetic expression or the like acquired in step S2009, executes the arithmetic expression or the like, and acquires the user attribute value. Go to step S2010.
(ステップS2011)統合手段4324は、検索結果のi番目のレコードからユーザ属性値を取得する。 (Step S2011) The integration means 4324 acquires the user attribute value from the i-th record of the search result.
(ステップS2012)統合手段4324は、カウンタjを1、インクリメントする。ステップS2005に戻る。 (Step S2012) The integration means 4324 increments the counter j by 1. Return to step S2005.
(ステップS2013)統合手段4324は、ステップS2006で取得したユーザ属性値元情報のビュー属性識別子を取得する。次に、統合手段4324は、S1817で取得された検索結果のi番目のレコードから、当該ビュー属性識別子に対応するビュー属性値を取得し、統合データのレコードを構成する。 (Step S2013) The integration means 4324 acquires the view attribute identifier of the user attribute value source information acquired in step S2006. Next, the integration means 4324 acquires the view attribute value corresponding to the view attribute identifier from the i-th record of the search result acquired in S1817, and constitutes a record of the integrated data.
(ステップS2014)統合手段4324は、カウンタiを1、インクリメントする。ステップS2002に戻る。 (Step S2014) The integration means 4324 increments the counter i by 1. Return to step S2002.
(ステップS2015)統合手段4324は、結合方式識別子処理を行い、検索結果を統合する。結合方式識別子処理の例について、図21、図22のフローチャートを用いて説明する。 (Step S2015) The integration means 4324 performs the join method identifier processing and integrates the search results. An example of the combination method identifier processing will be described with reference to the flowcharts of FIGS. 21 and 22.
(ステップS2016)統合手段4324は、カウンタiを1、インクリメントする。ステップS2002に戻る。 (Step S2016) The integration means 4324 increments the counter i by 1. Return to step S2002.
次に、ステップS2012の結合方式識別子処理の例について、図21、図22のフローチャートを用いて説明する。なお、ここでの結合方式識別子処理は、着目するi番目のレコード(S2002のi番目のレコード)に対応する処理である。 Next, an example of the combination method identifier processing in step S2012 will be described with reference to the flowcharts of FIGS. 21 and 22. The join method identifier process here is a process corresponding to the i-th record of interest (the i-th record of S2002).
(ステップS2101)統合手段4324は、変換ルール定義情報に含まれる結合方式識別子が「UNION」であるか否かを判断する。「UNION」である場合はステップS2102に行き、「UNION」でない場合はステップS2113に行く。 (Step S2101) The integration means 4324 determines whether or not the join method identifier included in the conversion rule definition information is “UNION”. If it is "UNION", it goes to step S2102, and if it is not "UNION", it goes to step S2113.
(ステップS2102)統合手段4324は、検索結果から、1以上のキー項目の属性値の集合を取得する。 (Step S2102) The integration means 4324 acquires a set of attribute values of one or more key items from the search result.
(ステップS2103)統合手段4324は、カウンタiに1を代入する。
(Step S2103) The integration means 4324
(ステップS2104)統合手段4324は、i番目の非キー項目が存在するか否かを判断する。i番目の非キー項目が存在する場合はステップS2105に行き、存在しない場合はステップS2108に行く。 (Step S2104) The integration means 4324 determines whether or not the i-th non-key item exists. If the i-th non-key item exists, the process goes to step S2105, and if it does not exist, the process goes to step S2108.
(ステップS2105)統合手段4324は、i番目の非キー項目に対する全属性値を取得する。 (Step S2105) The integration means 4324 acquires all attribute values for the i-th non-key item.
(ステップS2106)統合手段4324は、ステップS2105で取得した全属性値を集約して、統合データに含まれるi番目の非キー項目に対する属性値を取得する。 (Step S2106) The integration means 4324 aggregates all the attribute values acquired in step S2105 and acquires the attribute value for the i-th non-key item included in the integrated data.
(ステップS2107)統合手段4324は、カウンタiを1、インクリメントする。ステップS2104に戻る。 (Step S2107) The integrating means 4324 increments the counter i by 1. Return to step S2104.
(ステップS2108)統合手段4324は、ステップS2102で取得した属性値と、ステップS2106で取得した属性値とを有するレコードであり、統合データを構成するレコードを構成する。上位処理にリターンする。 (Step S2108) The integration means 4324 is a record having the attribute value acquired in step S2102 and the attribute value acquired in step S2106, and constitutes a record constituting the integrated data. Return to higher-level processing.
(ステップS2109)統合手段4324は、変換ルール定義情報に含まれる結合方式識別子が「CHOICE」であるか否かを判断する。「CHOICE」である場合はステップS2110に行き、「CHOICE」でない場合はステップS2118に行く。 (Step S2109) The integration means 4324 determines whether or not the join method identifier included in the conversion rule definition information is “CHOICE”. If it is "CHOICE", it goes to step S2110, and if it is not "CHOICE", it goes to step S2118.
(ステップS2110)統合手段4324は、格納部41から優先順位を取得する。
(Step S2110) The integration means 4324 acquires the priority from the
(ステップS2111)統合手段4324は、ステップS2110で取得した優先順位を用いて、優先される変換ビューを決定し、当該変換ビューの1以上のキー項目の属性値を取得する。 (Step S2111) The integration means 4324 determines the preferred conversion view using the priority order acquired in step S2110, and acquires the attribute values of one or more key items of the conversion view.
(ステップS2112)統合手段4324は、カウンタiに1を代入する。
(Step S2112) The integration means 4324
(ステップS2113)統合手段4324は、i番目の非キー項目が存在するか否かを判断する。i番目の非キー項目が存在する場合はステップS2114に行き、存在しない場合はステップS2117に行く。 (Step S2113) The integration means 4324 determines whether or not the i-th non-key item exists. If the i-th non-key item exists, the process goes to step S2114, and if it does not exist, the process goes to step S2117.
(ステップS2114)統合手段4324は、i番目の非キー項目に対する全属性値を取得する。 (Step S2114) The integration means 4324 acquires all attribute values for the i-th non-key item.
(ステップS2115)統合手段4324は、ステップS2114で取得した全属性値を集約して、統合データに含まれるi番目の非キー項目に対する属性値を取得する。 (Step S2115) The integration means 4324 aggregates all the attribute values acquired in step S2114 and acquires the attribute value for the i-th non-key item included in the integrated data.
(ステップS2116)統合手段4324は、カウンタiを1、インクリメントする。ステップS2113に戻る。 (Step S2116) The integration means 4324 increments the counter i by 1. Return to step S2113.
(ステップS2117)統合手段4324は、ステップS2111で取得した属性値と、ステップS2115で取得した属性値とを有するレコードであり、統合データを構成するレコードを構成する。上位処理にリターンする。 (Step S2117) The integration means 4324 is a record having the attribute value acquired in step S2111 and the attribute value acquired in step S2115, and constitutes a record constituting the integrated data. Return to higher-level processing.
(ステップS2118)統合手段4324は、変換ルール定義情報に含まれる結合方式識別子が「LOOKUP」であるか否かを判断する。「LOOKUP」である場合はステップS2119に行き、「LOOKUP」でない場合は上位処理にリターンする。 (Step S2118) The integration means 4324 determines whether or not the join method identifier included in the conversion rule definition information is “LOOKUP”. If it is "LOOKUP", it goes to step S2119, and if it is not "LOOKUP", it returns to the higher processing.
(ステップS2119)統合手段4324は、格納部41から参照条件を取得する。
(Step S2119) The integration means 4324 acquires a reference condition from the
(ステップS2120)統合手段4324は、参照条件を参照する側の変換ビューを決定する。そして、統合手段4324は、当該変換ビューの1以上のキー項目の属性値を取得する。 (Step S2120) The integration means 4324 determines a conversion view on the side that refers to the reference condition. Then, the integration means 4324 acquires the attribute values of one or more key items of the conversion view.
(ステップS2121)統合手段4324は、参照条件を参照される側の変換ビューを決定する。そして、統合手段4324は、参照条件を参照する側の変換ビューの1以上のキー項目の属性値であり、参照する側の変換ビューの属性値の集合に含まれない属性値を取得する。 (Step S2121) The integration means 4324 determines the conversion view on the side to which the reference condition is referenced. Then, the integration means 4324 acquires attribute values that are attribute values of one or more key items of the conversion view on the reference side and are not included in the set of attribute values of the conversion view on the reference side.
(ステップS2122)統合手段4324は、カウンタiに1を代入する。
(Step S2122) The integration means 4324
(ステップS2123)統合手段4324は、i番目の非キー項目が存在するか否かを判断する。i番目の非キー項目が存在する場合はステップS2124に行き、存在しない場合はステップS2127に行く。 (Step S2123) The integration means 4324 determines whether or not the i-th non-key item exists. If the i-th non-key item exists, the process goes to step S2124, and if it does not exist, the process goes to step S2127.
(ステップS2124)統合手段4324は、i番目の非キー項目に対する全属性値を取得する。 (Step S2124) The integration means 4324 acquires all attribute values for the i-th non-key item.
(ステップS2125)統合手段4324は、ステップS2124で取得した全属性値を集約して、統合データに含まれるi番目の非キー項目に対する属性値を取得する。 (Step S2125) The integration means 4324 aggregates all the attribute values acquired in step S2124 and acquires the attribute value for the i-th non-key item included in the integrated data.
(ステップS2126)統合手段4324は、カウンタiを1、インクリメントする。ステップS2123に戻る。 (Step S2126) The integration means 4324 increments the counter i by 1. Return to step S2123.
(ステップS2127)統合手段4324は、ステップS2120とステップS2121とステップS2125で取得した属性値とを有するレコードであり、統合データを構成するレコードを構成する。上位処理にリターンする。 (Step S2127) The integration means 4324 is a record having the attribute values acquired in step S2120, step S2121, and step S2125, and constitutes a record constituting the integrated data. Return to higher-level processing.
以下、本実施の形態における検索システムBの具体的な動作例について説明する。ここでの動作例は、検索装置4が、2つの各データソース管理装置2に格納されているデータソースから検索結果を取得し、当該検索結果を統合して、統合データを取得する処理の例である。ここでは、2つのデータソース管理装置2は、検索装置4とは異なる装置であり、かつ2つのデータソース管理装置2は、各々、異なる装置である、とする。
Hereinafter, a specific operation example of the search system B in the present embodiment will be described. The operation example here is an example of a process in which the
そして、第一のデータソース管理装置2のデータソース格納部111には、図23の2301に示す販売データベースが格納されている、とする。販売データベースは、販売テーブル(23011)と商品テーブル(23012)とを有する。販売テーブル(23011)は、「商品ID」「顧客ID」「販売単価」「販売数量」を有する1以上のレコードを管理する。商品テーブル(23012)は、「商品ID」「商品名」「商品分類」を有する1以上のレコードを管理する。
Then, it is assumed that the sales database shown in 2301 of FIG. 23 is stored in the data
また、第二のデータソース管理装置2のデータソース格納部111には、図23の2302に示す仕入データベースが格納されている、とする。仕入データベースは、ここでは、仕入テーブル(23021)を有する。仕入テーブル(23021)は、「商品ID」「仕入先」「仕入単価」を有する1以上のレコードを管理する。
Further, it is assumed that the purchase database shown in 2302 of FIG. 23 is stored in the data
また、検索装置4の辞書格納部411には、図24から図30に示す3層の定義情報を有するデータ辞書が格納されている。かかるデータ辞書は、例えば、検索装置4を運用する管理者が入力した情報である。
Further, the
図24は、ソース層定義情報に含まれる販売テーブル(23011)のスキーマを定義する情報である。図24は、ソース識別子「販売データベース」、テーブル識別子「販売テーブル」と1以上のソース属性定義情報とを有する。ソース属性定義情報は、図24の表の「ID」により識別される。ソース属性定義情報は、ここでは、「ソース属性識別子」「データタイプ」「サイズ」を有する。なお、販売データベースは、例えば、リレーショナルデータベースである。 FIG. 24 is information that defines the schema of the sales table (23011) included in the source layer definition information. FIG. 24 has a source identifier “sales database”, a table identifier “sales table”, and one or more source attribute definition information. The source attribute definition information is identified by the "ID" in the table of FIG. 24. Here, the source attribute definition information has a “source attribute identifier”, a “data type”, and a “size”. The sales database is, for example, a relational database.
図25は、ソース層定義情報に含まれる商品テーブル(23012)のスキーマを定義する情報である。図25は、ソース識別子「販売データベース」、テーブル識別子「商品テーブル」と1以上のソース属性定義情報とを有する。ソース属性定義情報は、図25の表の「ID」により識別される。ソース属性定義情報は、ここでは、「ソース属性識別子」「データタイプ」「サイズ」を有する。 FIG. 25 is information that defines the schema of the product table (23012) included in the source layer definition information. FIG. 25 has a source identifier “sales database”, a table identifier “product table”, and one or more source attribute definition information. The source attribute definition information is identified by the "ID" in the table of FIG. Here, the source attribute definition information has a “source attribute identifier”, a “data type”, and a “size”.
図26は、ソース層定義情報に含まれる仕入テーブル(23021)のスキーマを定義する情報である。図26は、ソース識別子「仕入データベース」、テーブル識別子「仕入テーブル」と1以上のソース属性定義情報とを有する。ソース属性定義情報は、図26の表の「ID」により識別される。ソース属性定義情報は、ここでは、「ソース属性識別子」を有する。なお、仕入データベースは、例えば、実施の形態1で説明したファイルである。 FIG. 26 is information that defines the schema of the purchase table (23021) included in the source layer definition information. FIG. 26 has a source identifier “purchase database”, a table identifier “purchase table”, and one or more source attribute definition information. The source attribute definition information is identified by the "ID" in the table of FIG. The source attribute definition information has a "source attribute identifier" here. The purchase database is, for example, the file described in the first embodiment.
図27は、ソース層定義情報に含まれるデータソース固有情報である。図27の2701は、販売データベースのデータソース固有情報である。2702は、仕入データベースのデータソース固有情報である。 FIG. 27 is data source specific information included in the source layer definition information. 2701 in FIG. 27 is data source specific information of the sales database. 2702 is the data source specific information of the purchase database.
図28は、変換ビューの一つである販売ビューの変換ビュー情報である。変換ビュー情報は、変換ルール定義情報に含まれる。この変換ビュー情報は、ビュー識別子「販売ビュー」と1以上のビュー属性定義情報とを有する。ビュー属性定義情報は、図28の表の「ID」により識別される。 FIG. 28 is the conversion view information of the sales view, which is one of the conversion views. The conversion view information is included in the conversion rule definition information. This converted view information has a view identifier "sales view" and one or more view attribute definition information. The view attribute definition information is identified by the "ID" in the table of FIG. 28.
図28の「ID=1」のビュー属性定義情報は、ビュー属性識別子「商品ID」を取得する場合に、ソース識別子「販売テーブル」のソース属性識別子「商品ID」の属性値を取得しても良いし、ソース識別子「商品テーブル」のソース属性識別子「商品ID」の属性値を取得しても良いことを示す。つまり、ソース識別子「販売テーブル」のソース属性識別子「商品ID」と対になる情報と、当該「商品ID」と同じ属性値である、ソース識別子「商品テーブル」のソース属性識別子「商品ID」と対になる情報とが、同じ商品に関する情報であることを示す。 The view attribute definition information of "ID = 1" in FIG. 28 can be obtained even if the attribute value of the source attribute identifier "product ID" of the source identifier "sales table" is acquired when the view attribute identifier "product ID" is acquired. It indicates that the attribute value of the source attribute identifier "product ID" of the source identifier "product table" may be acquired. That is, the information paired with the source attribute identifier "product ID" of the source identifier "sales table" and the source attribute identifier "product ID" of the source identifier "product table" which has the same attribute value as the "product ID". Indicates that the paired information is information about the same product.
図28の「ID=6」のビュー属性定義情報は、ビュー属性値「販売金額」を取得する場合に、演算式等「P1×P2」が示すように、パラメータP1とパラメータP2とを乗算することを意味する。また、図28の「ID=6」において、パラメータP1が、ソース識別子「販売テーブル」のソース属性識別子「販売単価」の属性値であることを示す。また、パラメータP2が、ソース識別子「販売テーブル」のソース属性識別子「販売数量」の属性値であることを示す。 The view attribute definition information of “ID = 6” in FIG. 28 is obtained by multiplying the parameter P1 and the parameter P2 as shown by the calculation formula “P1 × P2” when the view attribute value “sales amount” is acquired. Means that. Further, in "ID = 6" in FIG. 28, it is shown that the parameter P1 is the attribute value of the source attribute identifier "sales unit price" of the source identifier "sales table". Further, it is shown that the parameter P2 is an attribute value of the source attribute identifier "sales quantity" of the source identifier "sales table".
図29は、変換ビューの一つである仕入ビューの変換ビュー情報である。変換ビュー情報は、変換ルール定義情報に含まれる。この変換ビュー情報は、ビュー識別子「仕入ビュー」と1以上のビュー属性定義情報とを有する。ビュー属性定義情報は、図29の表の「ID」により識別される。 FIG. 29 is the conversion view information of the purchase view, which is one of the conversion views. The conversion view information is included in the conversion rule definition information. This transformed view information has a view identifier "purchased view" and one or more view attribute definition information. The view attribute definition information is identified by the "ID" in the table of FIG. 29.
図30は、ユーザ層定義情報に含まれるユーザテーブルのスキーマを定義する情報である。ユーザ層定義情報は、ユーザテーブル識別子「商品売上利益表」と1以上のユーザ属性定義情報とを有する。ユーザ属性定義情報は、図30の表の「ID」により識別される。 FIG. 30 is information that defines the schema of the user table included in the user layer definition information. The user layer definition information has a user table identifier "product sales profit table" and one or more user attribute definition information. The user attribute definition information is identified by the "ID" in the table of FIG.
図30の「ID=1」のユーザ属性定義情報は、ユーザ属性識別子「商品ID」を取得する場合に、ビュー識別子「販売ビュー」のビュー属性識別子「商品ID」の属性値を取得しても良いし、ビュー識別子「仕入ビュー」のビュー属性識別子「商品ID」の属性値を取得しても良いことを示す。つまり、ビュー識別子「販売ビュー」のビュー属性識別子「商品ID」と対になる情報と、当該「商品ID」と同じ属性値である、ビュー識別子「仕入ビュー」のビュー属性識別子「商品ID」と対になる情報とが、同じ商品に関する情報であることを示す。 The user attribute definition information of "ID = 1" in FIG. 30 can be obtained even if the attribute value of the view attribute identifier "product ID" of the view identifier "sales view" is acquired when the user attribute identifier "product ID" is acquired. It indicates that the attribute value of the view attribute identifier "product ID" of the view identifier "purchasing view" may be acquired. That is, the information paired with the view attribute identifier "product ID" of the view identifier "sales view" and the view attribute identifier "product ID" of the view identifier "purchase view" which has the same attribute value as the "product ID". Indicates that the information paired with is information about the same product.
また、図30の「ID=7」のビュー属性定義情報の演算式等「P1×P2」は、パラメータP1とパラメータP2とを乗算し、ユーザ属性識別子「仕入金額」の属性値が取得されることを示す。また、パラメータP1が、ビュー識別子「販売ビュー」のビュー属性識別子「販売数量」の属性値であることを示す。また、パラメータP2が、ビュー識別子「仕入ビュー」のビュー属性識別子「仕入単価」の属性値であることを示す。 Further, in the calculation formula “P1 × P2” of the view attribute definition information of “ID = 7” in FIG. 30, the parameter P1 and the parameter P2 are multiplied to obtain the attribute value of the user attribute identifier “purchase amount”. Show that. Further, it is shown that the parameter P1 is an attribute value of the view attribute identifier "sales quantity" of the view identifier "sales view". Further, it is shown that the parameter P2 is an attribute value of the view attribute identifier “purchase unit price” of the view identifier “purchase view”.
また、図30の「ID=8」のビュー属性定義情報の演算式等「sub(P1,P2)」は、関数「sub」(2つのパラメータを減算した結果を返す関数)に、P1,P2の2つのパラメータの値を代入し、当該関数を実行することにより、ユーザ属性識別子「売上利益」の属性値が取得されることを示す。また、パラメータP1が、ビュー識別子「販売ビュー」のビュー属性識別子「販売金額」の属性値であることを示す。また、パラメータP2が、ユーザテーブル識別子「商品売上利益表」のビュー属性識別子「仕入金額」の属性値であることを示す。 Further, the arithmetic expression "sub (P1, P2)" of the view attribute definition information of "ID = 8" in FIG. 30 is added to the function "sub" (a function that returns the result of subtracting two parameters), P1 and P2. It is shown that the attribute value of the user attribute identifier "sales profit" is acquired by substituting the values of the two parameters of (1) and executing the function. Further, it is shown that the parameter P1 is an attribute value of the view attribute identifier "sales amount" of the view identifier "sales view". Further, it is shown that the parameter P2 is an attribute value of the view attribute identifier "purchase amount" of the user table identifier "commodity sales profit table".
以上の状況において、図31を参照して、検索装置4の動作例について説明する。まず、ユーザが、端末装置3に検索条件
「SELECT 商品ID,商品名,SUM(販売数量),SUM(販売金額),SUM(仕入金額), SUM(売上利益)
In the above situation, an operation example of the
FROM 商品別売上利益 FROM Sales profit by product
WHERE 商品ID=1103 WHERE product ID = 1103
GROUP BY 商品ID,商品名」
を入力した、とする。 次に、端末装置3は、当該検索条件を受け付け、検索装置4に送信する。
GROUP BY Product ID, Product Name "
Is entered. Next, the
次に、検索装置4の条件受付部121は、上記の検索条件(SQL文)を受信する。
次に、ソース決定手段4321は、検索条件に含まれるユーザテーブル識別子「商品別売上利益」を取得する。また、ソース決定手段4321は、検索条件に含まれるユーザ属性識別子「商品ID」「商品名」「販売数量」「販売金額」「仕入金額」「売上利益」を取得する。
Next, the
Next, the source determination means 4321 acquires the user table identifier "sales profit by product" included in the search condition. Further, the source determination means 4321 acquires the user attribute identifier "product ID", "product name", "sales quantity", "sales amount", "purchase amount", and "sales profit" included in the search condition.
次に、ソース決定手段4321は、取得した各ユーザ属性識別子と対になるユーザ属性定義情報を、図30のユーザ層定義情報から取得する。 Next, the source determination means 4321 acquires the user attribute definition information paired with each acquired user attribute identifier from the user layer definition information of FIG. 30.
次に、ソース決定手段4321は、取得した各ユーザ属性定義情報が有するビュー識別子を取得し、当該ビュー識別子に対して、ユニーク処理をし、2つのビュー識別子「販売ビュー」「仕入ビュー」を取得する。 Next, the source determination means 4321 acquires the view identifier of each acquired user attribute definition information, performs unique processing on the view identifier, and obtains two view identifiers "sales view" and "purchase view". get.
次に、ソース決定手段4321は、取得したユーザ属性定義情報の中から、ビュー識別子「販売ビュー」に対応するユーザ属性識別子「商品ID」「商品名」「販売数量」「販売金額」を取得する。次に、ソース決定手段4321は、取得した各ユーザ属性識別子とビュー識別子「販売ビュー」に対応するビュー属性識別子「商品ID」「商品名」「販売数量」「販売金額」を取得する。 Next, the source determination means 4321 acquires the user attribute identifier "product ID", "product name", "sales quantity", and "sales amount" corresponding to the view identifier "sales view" from the acquired user attribute definition information. .. Next, the source determination means 4321 acquires the view attribute identifier "product ID", "product name", "sales quantity", and "sales amount" corresponding to each acquired user attribute identifier and view identifier "sales view".
次に、ソース決定手段4321は、図28の変換ビュー情報を参照して、取得した各ビュー属性識別子と対になるビュー属性値元情報を取得する。
Next, the
次に、命令生成手段4322は、ビュー識別子「販売ビュー」に対応する命令元情報(2701のタグ<命令元情報>と対になる情報)を、図27のデータソース固有情報から取得する。 Next, the instruction generation means 4322 acquires the instruction source information (information paired with the tag <command source information> of 2701) corresponding to the view identifier "sales view" from the data source specific information of FIG. 27.
次に、命令生成手段4322は、受け付けられた検索条件を解析し、当該検索条件の条件部「商品ID=1103」、抽出部「商品ID,商品名,SUM(販売数量),SUM(販売金額),SUM(仕入金額),SUM(売上利益)」、およびその他部の情報「GROUP BY 商品ID,商品名」を取得する。 Next, the command generation means 4322 analyzes the accepted search condition, and the condition unit "product ID = 1103" of the search condition, the extraction unit "product ID, product name, SUM (sales quantity), SUM (sales amount)". ), SUM (purchase amount), SUM (sales profit) ”, and information“ GROUP BY product ID, product name ”of other departments.
次に、命令生成手段4322は、条件部「商品ID=1103」のユーザ属性識別子「商品ID」から、取得しているユーザ属性値元情報を用いて、「販売ビュー.商品ID」を取得する。また、命令生成手段4322は、「販売ビュー.商品ID」から、取得しているビュー属性値元情報を用いて、「販売テーブル.商品ID」を取得する。そして、命令生成手段4322は、検索命令の条件部「商品ID=1103」から、データソースに対して発行する検索命令を構成するための条件部「販売テーブル.商品ID」を取得する。 Next, the instruction generation means 4322 acquires the "sales view. Product ID" from the user attribute identifier "product ID" of the condition unit "product ID = 1103" by using the acquired user attribute value source information. .. Further, the instruction generation means 4322 acquires the "sales table. Product ID" from the "sales view. Product ID" by using the acquired view attribute value source information. Then, the instruction generation means 4322 acquires the condition unit "sales table. Product ID" for configuring the search command to be issued to the data source from the condition unit "product ID = 1103" of the search instruction.
次に、命令生成手段4322は、同様に、抽出部「商品ID,商品名,SUM(販売数量),SUM(販売金額),SUM(仕入金額),SUM(売上利益)」の「商品ID」から、「販売テーブル.商品ID」を取得する。また、命令生成手段4322は、抽出部を構成する「商品名」から「商品テーブル.商品名」を取得する。また、命令生成手段4322は、抽出部を構成する「SUM(販売数量)」から「SUM(販売テーブル.販売数量)」を取得する。また、命令生成手段4322は、抽出部を構成する「SUM(販売金額)」から「SUM(販売テーブル.販売単価×販売テーブル.販売金額)」を取得する。 Next, the command generation means 4322 similarly uses the "product ID" of the extraction unit "product ID, product name, SUM (sales quantity), SUM (sales amount), SUM (purchase amount), SUM (sales profit)". , "Sales table. Product ID" is acquired. Further, the instruction generation means 4322 acquires the "product table. Product name" from the "product name" constituting the extraction unit. Further, the instruction generation means 4322 acquires "SUM (sales table. Sales quantity)" from "SUM (sales quantity)" constituting the extraction unit. Further, the command generation means 4322 acquires "SUM (sales table.sales unit price x sales amount.sales amount)" from "SUM (sales amount)" constituting the extraction unit.
次に、命令生成手段4322は、その他部の情報「GROUP BY 商品ID,商品名」から「GROUP BY 販売テーブル.商品ID, 商品テーブル.商品名」を取得する。 Next, the command generation means 4322 acquires "GROUP BY sales table. Product ID, product table. Product name" from the information "GROUP BY product ID, product name" of the other part.
次に、命令生成手段4322は、命令元情報の「FROM $テーブル識別子1$ INNER JOIN $テーブル識別子2$」に含まれる変数「$テーブル識別子1$」に対応するテーブル識別子「販売テーブル」、変数「$テーブル識別子2$」に対応するテーブル識別子「商品テーブル」を取得する。
Next, the instruction generation means 4322 has a table identifier "sales table" and a variable corresponding to the variable "$
次に、命令生成手段4322は、命令元情報の「ON $テーブル識別子1$ . $テーブル属性識別子1$ = $テーブル識別子2$ . $テーブル属性識別子2$」に含まれる変数「$テーブル属性識別子1$」に対応するテーブル属性名「商品ID」、変数「$テーブル属性識別子2$」に対応するテーブル属性名「商品ID」を取得する。
Next, the instruction generation means 4322 uses the variable "$ table attribute identifier" included in the instruction source information "ON $
次に、命令生成手段4322は、命令元情報
「SELECT $抽出部$
Next, the instruction generation means 4322 uses the instruction source information "SELECT $ extraction unit $.
FROM $テーブル識別子1$
FROM $
INNER JOIN $テーブル識別子2$
INNER JOIN $
ON $テーブル識別子1$ . $テーブル属性識別子$ = $テーブル識別子2$ . $テーブル属性識別子$
ON $
WHERE $条件部$ $その他部$」の各変数を、取得した文字列に置き替え、
検索命令
「SELECT 販売テーブル.商品ID,商品テーブル.商品名,
Replace each variable of "WHERE $ Condition part $ $ Other part $" with the acquired character string.
Search command "SELECT sales table. Product ID, product table. Product name,
SUM(販売テーブル.販売数量), SUM (sales table. Sales quantity),
SUM(販売テーブル.販売単価×販売テーブル.販売金額)
FROM 販売テーブル INNER JOIN 商品テーブル
SUM (Sales table. Sales unit price x Sales table. Sales amount)
FROM sales table INNER JOIN product table
ON 販売テーブル.商品ID=商品テーブル.商品ID;
WHERE 販売テーブル.商品ID=1103
GROUP BY 販売テーブル.商品ID,商品テーブル.商品名」
を構成する。
ON sales table. Product ID = product table. Product ID;
WHERE sales table. Product ID = 1103
GROUP BY sales table. Product ID, product table. Product name"
To configure.
次に、ソース検索手段4323は、図27の2701の接続情報「<JDBC接続URL>jdbc:oracle:thin:@localhost:1521:AAA <ドライバークラス>oracle.jdbc.driver.OracleDriver」を取得する。そして、ソース検索手段4323は、当該接続情報を用いて、SQLデータベースである「販売データベース」にアクセスし、生成された上記の検索命令を用いて、ビュー識別子に対応するデータソース「販売データベース」から、検索結果を取得する。そして、ソース検索手段4323は、検索結果「<商品ID>1103 <商品名>Ipoh Coffee <販売数量>70 <販売金額>14000」を得る。 Next, the source search means 4323 acquires the connection information "<JDBC connection URL> jdbc: oracle: thin: @localhost: 1521: AAA <driver class> oracle.jdbc.driver.OracleDriver" in FIG. 27. Then, the source search means 4323 uses the connection information to access the SQL database "sales database", and uses the generated search command from the data source "sales database" corresponding to the view identifier. , Get search results. Then, the source search means 4323 obtains the search result "<product ID> 1103 <product name> Ipoh Coffee <sales quantity> 70 <sales amount> 14000".
次に、命令生成手段4322は、条件部「商品ID=1103」のユーザ属性識別子「商品ID」から、取得しているユーザ属性値元情報を用いて、「仕入ビュー.商品ID」を取得する。また、命令生成手段4322は、「仕入ビュー.商品ID」から、取得しているビュー属性値元情報を用いて、「仕入テーブル.商品ID」を取得する。そして、命令生成手段4322は、検索命令の条件部「商品ID=1103」から、データソース「仕入データベース」に対して発行する検索命令を構成するための条件部「仕入テーブル.商品ID」を取得する。 Next, the instruction generation means 4322 acquires the "purchase view. Product ID" from the user attribute identifier "product ID" of the condition unit "product ID = 1103" by using the acquired user attribute value source information. do. Further, the instruction generation means 4322 acquires the "purchase table. Product ID" from the "purchase view. Product ID" by using the acquired view attribute value source information. Then, the command generation means 4322 receives a condition unit "purchase table. Product ID" for configuring a search command to be issued to the data source "purchase database" from the condition unit "product ID = 1103" of the search command. To get.
また、命令生成手段4322は、抽出部を構成する「SUM(仕入金額)」から「SUM(販売テーブル.販売数量×仕入テーブル. 仕入単価)」を取得する。次に、命令生成手段4322は、抽出部「SUM(販売テーブル.販売数量×仕入テーブル. 仕入単価)」のうちのデータソース「仕入データベース」に対応する情報「仕入テーブル. 仕入単価」を取得する。 Further, the instruction generation means 4322 acquires "SUM (sales table.sales quantity x purchase table.purchase unit price)" from "SUM (purchase amount)" constituting the extraction unit. Next, the instruction generation means 4322 uses the information "purchase table. Purchase" corresponding to the data source "purchase database" in the extraction unit "SUM (sales table. Sales quantity x purchase table. Purchase unit price)". Get the unit price.
次に、 命令生成手段4322は、命令元情報「ベースURL+ “/” + エンドポイント」と接続情報のベースURL「https://xxx.yyyy-portal.co.jp」(図27の2702)に従って、検索命令「GET https://xxx.yyyy-portal.co.jp/仕入テーブル? 商品ID=1103」を構成する。 Next, the command generation means 4322 follows the command source information "base URL +" / "+ endpoint" and the base URL "https://xxx.yyyy-portal.co.jp" (FIG. 27, 2702) of the connection information. , Constructs the search command "GET https://xxx.yyyy-portal.co.jp/purchase table? Product ID = 1103".
次に、ソース検索手段4323は、図27の2701の接続情報の「<APIキー>XXXXXXXX」と、検索命令「GET https://xxx.yyyy-portal.co.jp/仕入テーブル? 商品ID=1103」とを用いて、仕入データベースの仕入テーブル(23021)を検索し、検索結果「<商品ID>1103 <仕入単価>130」を得る。 Next, the source search means 4323 uses the connection information "<API key> XXXXXXXX" in FIG. 271 and the search command "GET https://xxx.yyyy-portal.co.jp/purchase table? Product ID". = 1103 "is used to search the purchase table (23021) in the purchase database, and the search result" <product ID> 1103 <purchase unit price> 130 "is obtained.
次に、統合手段4324は、検索結果「<商品ID>1103 <商品名>Ipoh Coffee <販売数量>70 <販売金額>14000」と検索結果「<商品ID>1103 <仕入単価>130」の各属性値を用いて、取得した抽出部「商品ID,商品名,SUM(販売数量),SUM(販売金額),SUM(仕入金額),SUM(売上利益)」に照らして、統合データ「<商品ID>1103 <商品名>Ipoh Coffee <販売数量>70 <販売金額>14000 <仕入金額>9100 <売上利益>4900」を得る。 Next, the integration means 4324 has the search result "<product ID> 1103 <product name> Ipoh Coffee <sales quantity> 70 <sales amount> 14000" and the search result "<product ID> 1103 <purchase unit price> 130". Using each attribute value, the integrated data " <Product ID> 1103 <Product name> Ipoh Coffee <Sales quantity> 70 <Sales amount> 14000 <Purchase amount> 9100 <Sales profit> 4900 "is obtained.
なお、<仕入金額>9100は、図30の「ID=7」のユーザ属性値元情報を参照し、「販売ビュー.販売数量×仕入ビュー.仕入単価」の演算式の実行により、取得された属性値である。 For <purchase amount> 9100, refer to the user attribute value source information of “ID = 7” in FIG. 30 and execute the calculation formula of “sales view.sales quantity × purchase view.purchase unit price”. The acquired attribute value.
また、<売上利益>4900は、図30の「ID=8」のユーザ属性値元情報を参照し、「販売ビュー.販売金額×商品売上利益表.仕入金額」をプログラム「sub()」に代入し、実行することにより、取得された属性値である。 Further, <Sales profit> 4900 refers to the user attribute value source information of "ID = 8" in FIG. 30, and sets "Sales view. Sales amount x Product sales profit table. Purchase amount" to the program "sub ()". It is an attribute value obtained by assigning to and executing.
そして、結果出力部441は、取得された統合データを端末装置3に送信する。
Then, the result output unit 441 transmits the acquired integrated data to the
次に、端末装置3は当該統合データを受信し、出力する。なお、かかる統合データは、「<商品ID>1103 <商品名>Ipoh Coffee <販売数量>70 <販売金額>14000 <仕入金額>9100 <売上利益>4900」である。
Next, the
以上、本実施の形態によれば、ソース層定義情報、変換ルール定義情報、ユーザ層定義情報という3層の定義情報により、2以上のデータソースから情報を適切に検索し、当該検索結果を統合できる。 As described above, according to the present embodiment, information is appropriately searched from two or more data sources based on the three-layer definition information of the source layer definition information, the conversion rule definition information, and the user layer definition information, and the search results are integrated. can.
また、本実施の形態によれば、配列インデックスを含むインデクスを使用することにより、情報検索を高速に行える。 Further, according to the present embodiment, information retrieval can be performed at high speed by using an index including an array index.
なお、本実施の形態における検索装置4を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、1以上の属性値を有する1以上のレコードを含む2以上の各データソースを定義する情報であり、データソースの識別子であるソース識別子と、データソースの属性識別子であるソース属性識別子を含む1以上のソース属性定義情報とを有する情報であるソース層定義情報と、検索条件に基づく検索の対象のテーブルであり、1以上の属性値を有する1以上のレコードを含むテーブルであるユーザテーブルを定義する情報であり、当該ユーザテーブルを識別するユーザテーブル識別子と、ユーザテーブルの属性識別子であるユーザ属性識別子を含む1以上のユーザ属性定義情報とを有する情報であるユーザ層定義情報と、前記検索条件に基づいて、前記2以上の各データソースに対して発行する検索命令を生成し、当該検索命令に対応する検索結果を取得し、当該2以上の検索結果を用いて、前記検索条件に対応する統合データを作成するための情報である変換ルール定義情報と、を有するデータ辞書と2以上のデータソースとにアクセス可能なコンピュータを、前記ユーザテーブルに対する検索条件を受け付ける条件受付部と、前記データ辞書を参照して、前記検索条件に対応する2以上のデータソースを決定し、前記変換ルール定義情報を用いて、前記2以上の各データソースごとに、検索命令を生成し、当該検索命令に基づいた検索結果を取得し、前記変換ルール定義情報と前記ユーザ層定義情報とを用いて、前記2以上の各データソースに対応する検索結果を統合し、前記検索条件に対応する統合データを取得する検索部と、前記検索部が取得した前記統合データを出力する結果出力部として機能させるためのプログラムである。
The software that realizes the
また、図32は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の検索装置4等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図32は、このコンピュータシステム300の概観図であり、図33は、システム300のブロック図である。
Further, FIG. 32 shows the appearance of a computer that executes the program described in the present specification to realize the
図32において、コンピュータシステム300は、CD−ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
In FIG. 32, the
図33において、コンピュータ301は、CD−ROMドライブ3012に加えて、MPU3013と、CD−ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
In FIG. 33, in addition to the CD-
コンピュータシステム300に、上述した実施の形態の検索装置4等の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
The program for causing the
プログラムは、コンピュータ301に、上述した実施の形態の検索装置4等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
The program does not necessarily have to include an operating system (OS), a third-party program, or the like that causes the
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。 In the above program, in the step of transmitting information and the step of receiving information, the processing performed by the hardware, for example, the processing performed by the modem or the interface card in the transmission step (only performed by the hardware). Processing) is not included.
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。 Further, the number of computers that execute the above program may be singular or plural. That is, centralized processing may be performed, or distributed processing may be performed.
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。 Further, it goes without saying that in each of the above embodiments, the two or more communication means existing in one device may be physically realized by one medium.
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。 Further, in each of the above embodiments, each process may be realized by centralized processing by a single device, or may be realized by distributed processing by a plurality of devices.
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。 It goes without saying that the present invention is not limited to the above embodiments, and various modifications can be made, and these are also included in the scope of the present invention.
以上のように、本発明にかかる検索装置は、2以上のデータソースから情報を適切に検索し、当該検索結果を統合できるという効果を有し、検索装置等として有用である。 As described above, the search device according to the present invention has the effect of appropriately searching for information from two or more data sources and integrating the search results, and is useful as a search device or the like.
1、4 検索装置
2 データソース管理装置
3 端末装置
11、41 格納部
12 受付部
13、43 処理部
14、44 出力部
31 端末格納部
32 端末受付部
33 端末処理部
34 端末送信部
35 端末受信部
36 端末出力部
111 データソース格納部
112 インデックス格納部
121 条件受付部
131 インデックス生成部
132、432 検索部
133 インデックス更新部
141、441 結果出力部
411 辞書格納部
1121 配列インデックス格納部
1122 配列ラベル・インデックス格納部
1123 レコード・インデックス格納部
1125 ソース・インデックス格納部
1301 データソース
1311 配列インデックス生成部
1312 配列ラベル・インデックス生成部
1313 レコード・インデックス生成部
1315 ソース・インデックス生成部
4321 ソース決定手段
4322 命令生成手段
4323 ソース検索手段
4324 統合手段
1, 4
Claims (12)
検索条件に基づく検索の対象のテーブルであり、1以上の属性値を有する1以上のレコードを含むテーブルであるユーザテーブルを定義する情報であり、当該ユーザテーブルを識別するユーザテーブル識別子と、ユーザテーブルの属性識別子であるユーザ属性識別子を含む1以上のユーザ属性定義情報とを有する情報であるユーザ層定義情報と、
前記検索条件に基づいて、前記2以上の各データソースに対して発行する検索命令を生成し、当該検索命令に対応する検索結果を取得し、当該2以上の検索結果を用いて、前記検索条件に対応する統合データを作成するための情報である変換ルール定義情報と、を有するデータ辞書を参照して、情報を検索する検索装置であり、
前記ユーザテーブルに対する検索条件を受け付ける条件受付部と、
前記データ辞書を参照して、前記検索条件に対応する2以上のデータソースを決定し、前記変換ルール定義情報を用いて、前記2以上の各データソースごとに、検索命令を生成し、当該検索命令に基づいた検索結果を取得し、前記変換ルール定義情報と前記ユーザ層定義情報とを用いて、前記2以上の各データソースに対応する検索結果を統合し、前記検索条件に対応する統合データを取得する検索部と、
前記検索部が取得した前記統合データを出力する結果出力部とを具備する検索装置。 Information that defines each of two or more data sources including one or more records having one or more attribute values, and one or more including a source identifier that is a data source identifier and a source attribute identifier that is a data source attribute identifier. Source layer definition information, which is information that has source attribute definition information of
Information that defines a user table that is a table to be searched based on search conditions and includes one or more records having one or more attribute values. A user table identifier that identifies the user table and a user table. User layer definition information, which is information having one or more user attribute definition information including a user attribute identifier, which is an attribute identifier of
Based on the search conditions, a search command to be issued to each of the two or more data sources is generated, search results corresponding to the search commands are acquired, and the search conditions are used using the two or more search results. It is a search device that searches for information by referring to a data dictionary having conversion rule definition information, which is information for creating integrated data corresponding to.
A condition reception unit that accepts search conditions for the user table,
With reference to the data dictionary, two or more data sources corresponding to the search conditions are determined, and using the conversion rule definition information, a search command is generated for each of the two or more data sources, and the search is performed. The search result based on the instruction is acquired, the search result corresponding to each of the two or more data sources is integrated by using the conversion rule definition information and the user layer definition information, and the integrated data corresponding to the search condition is integrated. With the search unit to get
A search device including a result output unit that outputs the integrated data acquired by the search unit.
前記2以上のデータソースのうちの1以上のデータソースを用いて構成される変換ビューを定義する1以上の変換ビュー情報を有し、
前記変換ビュー情報は、
1以上のビュー属性値を有する1以上のレコードを含み得る変換ビューを定義する情報であり、ビュー属性値に対応するビュー属性識別子と、ビュー属性値の取得方法を特定するビュー属性値元情報とを有する1以上のビュー属性定義情報を有し、
前記ユーザ属性定義情報は、
前記1以上の変換ビューの1以上のビュー属性値を用いたユーザ属性値の取得方法を特定するユーザ属性値元情報を有し、
前記検索部は、
前記検索条件に含まれる1以上のユーザ属性識別子を取得し、前記1以上の各ユーザ属性識別子に対応するユーザ属性値元情報を取得し、当該ユーザ属性値元情報に対応する1以上のビュー属性識別子を取得し、当該1以上の各ビュー属性識別子に対応するソース識別子を前記ビュー属性定義情報から取得するソース決定手段と、
前記検索条件と前記ビュー属性値元情報とを用いて、前記ソース決定手段が取得した2以上の各ソース識別子で識別されるデータソースごとに検索命令を生成する命令生成手段と、
前記2以上の各データソースごとに、前記検索命令に基づいた検索結果を取得するソース検索手段と、
前記検索条件と前記ユーザ層定義情報とを用いて、前記ソース検索手段が取得した前記2以上の各データソースごとの検索結果を統合した統合データを取得する統合手段とを具備する、請求項1記載の検索装置。 The conversion rule definition information is
It has one or more transform view information that defines a transform view configured using one or more data sources out of the two or more data sources.
The conversion view information is
Information that defines a transformed view that can include one or more records with one or more view attribute values, a view attribute identifier corresponding to the view attribute value, and view attribute value source information that specifies how to obtain the view attribute value. Has one or more view attribute definition information with
The user attribute definition information is
It has user attribute value source information that specifies a method for acquiring a user attribute value using one or more view attribute values of the one or more converted views.
The search unit
One or more user attribute identifiers included in the search condition are acquired, user attribute value source information corresponding to each one or more user attribute identifiers is acquired, and one or more view attributes corresponding to the user attribute value source information are acquired. A source determination means for acquiring an identifier and acquiring a source identifier corresponding to each of the one or more view attribute identifiers from the view attribute definition information.
An instruction generation means that generates a search instruction for each data source identified by two or more source identifiers acquired by the source determination means using the search condition and the view attribute value source information.
For each of the two or more data sources, a source search means for acquiring search results based on the search command, and
Claim 1 is provided with an integrated means for acquiring integrated data by integrating the search results for each of the two or more data sources acquired by the source search means by using the search conditions and the user layer definition information. The search device described.
2以上のいずれかのデータソースのソース属性識別子または1以上のいずれかの変換ビューのビュー属性識別子のうちの1以上の属性識別子と、当該1以上の属性識別子に対応する属性値をパラメータとする演算式またはプログラム識別子とを有し、
前記検索部は、
前記ビュー属性値元情報に対応するビュー属性値を取得する場合に、前記ビュー属性値元情報が有する1以上の各属性識別子に対応する属性値をデータソースまたは変換ビューから取得し、当該取得した1以上の属性値を前記演算式または前記プログラム識別子で識別されるプログラムに与えて、当該演算式または当該プログラムを実行し、前記ビュー属性値を取得する、請求項2記載の検索装置。 The view attribute value source information of any one of the above-mentioned one or more view attribute value source information is
The parameter is one or more attribute identifiers of the source attribute identifier of any one or more data sources or the view attribute identifier of one or more transformation views, and the attribute value corresponding to the one or more attribute identifiers. Has an arithmetic expression or program identifier,
The search unit
When acquiring the view attribute value corresponding to the view attribute value source information, the attribute value corresponding to each one or more attribute identifiers of the view attribute value source information is acquired from the data source or the conversion view, and the acquisition is performed. The search device according to claim 2, wherein one or more attribute values are given to the calculation formula or a program identified by the program identifier, the calculation formula or the program is executed, and the view attribute value is acquired.
2以上の変換ビュー情報を有し、かつ当該2以上の変換ビュー情報に基づいて取得された2以上の検索結果を結合する方式を特定する結合方式識別子を有し、
前記統合手段は、
前記結合方式識別子により特定される結合方式に従って、前記2以上の検索結果を結合し、統合データを取得する請求項2または請求項3記載の検索装置。 The conversion rule definition information is
It has two or more conversion view information, and has a combination method identifier that specifies a method for combining two or more search results acquired based on the two or more conversion view information.
The integrated means
The search device according to claim 2 or 3, wherein the two or more search results are combined and integrated data is acquired according to the combination method specified by the combination method identifier.
「UNION」「CHOICE」「LOOKUP」の3以上の結合方式識別子のうちの2以上の結合方式識別子の中の一の結合方式識別子を有し、
前記「UNION」は、前記2以上の検索結果に対して、キー項目でグループ化し、非キー項目の2以上の属性値を集約することにより、一のレコードを構成する併合処理により前記2以上の検索結果を結合することを示す情報であり、
前記「CHOICE」は、優先順位に従い、前記2以上の検索結果の中から1以上の検索結果に含まれるキー項目の属性値を選択し、かつ非キー項目の2以上の属性値を集約して、一のレコードを構成する選択処理により前記2以上の検索結果を結合することを示す情報であり、
前記「LOOKUP」は、参照条件に従い、前記2以上の検索結果のうちの一の検索結果のキー項目の属性値に、当該一の検索結果とは異なる他の検索結果に含まれるキー項目の属性値であり、前記一の検索結果に含まれないキー項目の属性値を付加し、かつ非キー項目の2以上の属性値を集約して、一のレコードを構成する補完処理により前記2以上の検索結果を結合することを示す情報である、請求項4記載の検索装置。 The conversion rule definition information is
It has a join method identifier of one of two or more join method identifiers out of three or more join method identifiers of "UNION", "CHOICE", and "LOOKUP".
The "UNION" is grouped by key items for the two or more search results, and by aggregating two or more attribute values of non-key items, the two or more are merged to form one record. Information that indicates that the search results will be combined.
The "CHOICE" selects the attribute values of the key items included in one or more search results from the two or more search results according to the priority order, and aggregates the two or more attribute values of the non-key items. , Information indicating that the two or more search results are combined by the selection process constituting one record.
The "LOOKUP" is an attribute value of a key item of a search result of one of the two or more search results according to a reference condition, and an attribute of a key item included in another search result different from the one search result. The attribute values of key items that are values and are not included in the search result of one are added, and two or more attribute values of non-key items are aggregated to form one record. The search device according to claim 4, which is information indicating that the search results are combined.
1以上のいずれかの変換ビューのビュー属性識別子または2以上のいずれかのデータソースのソース属性識別子のうちの1以上の属性識別子と、当該1以上の属性識別子に対応する属性値をパラメータとする演算式またはプログラム識別子とを有し、
前記検索部は、
前記ユーザ属性値元情報に対応するユーザ属性値を取得する場合に、前記ユーザ属性値元情報が有する1以上の各属性識別子に対応する属性値を変換ビューまたはデータソースから取得し、当該取得した1以上の属性値を前記演算式または前記プログラム識別子で識別されるプログラムに与えて、当該演算式または当該プログラムを実行し、前記ユーザ属性値を取得する、請求項2から請求項5いずれか一項に記載の検索装置。 The user attribute value source information of any one of the above-mentioned one or more user attribute value source information is
The parameter is one or more attribute identifiers of the view attribute identifier of any one or more transformation views or the source attribute identifier of any two or more data sources, and the attribute value corresponding to the one or more attribute identifiers. Has an arithmetic expression or program identifier,
The search unit
When acquiring the user attribute value corresponding to the user attribute value source information, the attribute value corresponding to each one or more attribute identifiers of the user attribute value source information is acquired from the conversion view or the data source, and the acquisition is performed. Any one of claims 2 to 5 in which one or more attribute values are given to the arithmetic expression or the program identified by the program identifier, the arithmetic expression or the program is executed, and the user attribute value is acquired. The search device described in the section.
データソースに対する検索命令を生成するための命令元情報を有し、
前記2以上の各データソースに対応する命令元情報には、少なくとも2種類以上の異なる命令元情報が存在し、
前記検索部は、
前記2以上の各データソースに対する命令元情報に従って、前記2以上の各データソースから情報を取得するための検索命令を生成し、当該検索命令に基づいた検索結果を取得し、当該2以上の検索結果を統合し、前記統合データを取得する、請求項1から請求項6いずれか一項に記載の検索装置。 The source layer definition information is
It has instruction source information for generating a search instruction for a data source,
At least two or more different types of instruction source information exist in the instruction source information corresponding to each of the two or more data sources.
The search unit
According to the instruction source information for each of the two or more data sources, a search instruction for acquiring information from each of the two or more data sources is generated, search results based on the search instruction are acquired, and the two or more searches are performed. The search device according to any one of claims 1 to 6, wherein the results are integrated and the integrated data is acquired.
前記検索部は、
前記2以上の各データソースに対する命令元情報に従って、SQL文に対応するデータソースに対しては、前記命令元情報に従ったSQL文である検索命令を生成し、検索モジュールに対応するデータソースに対しては、前記命令元情報に従った検索モジュールのインターフェイスである検索命令を生成し、前記2以上の各データソースごとに、検索命令に基づいた検索結果を取得し、当該2以上の検索結果を統合し、前記統合データを取得する、請求項7記載の検索装置。 The two or more different types of instruction source information include information for generating a search instruction for an SQL statement and information for generating a search module.
The search unit
For the data source corresponding to the SQL statement according to the instruction source information for each of the two or more data sources, a search instruction which is an SQL statement according to the instruction source information is generated, and the data source corresponding to the search module is used. On the other hand, a search command which is an interface of the search module according to the command source information is generated, search results based on the search command are acquired for each of the two or more data sources, and the search results of the two or more are obtained. 7. The search device according to claim 7, wherein the integrated data is acquired.
前記2以上の各データソースにアクセスするための接続情報を有し、
前記検索部は、
前記接続情報を用いて、当該接続情報に対応するデータソースにアクセスし、前記検索命令に基づいた検索結果を当該データソースから取得し、当該2以上の検索結果を統合し、前記統合データを取得する、請求項1から請求項8いずれか一項に記載の検索装置。 The source layer definition information is
It has connection information for accessing each of the above two or more data sources, and has connection information.
The search unit
Using the connection information, access the data source corresponding to the connection information, acquire the search result based on the search command from the data source, integrate the two or more search results, and acquire the integrated data. The search device according to any one of claims 1 to 8.
前記検索部は、
前記検索条件が有する属性識別子に対応する属性位置情報を、前記配列インデックスから取得し、当該属性位置情報を用いて、前記検索条件が有する前記属性識別子に対応する属性値を前記データソースから取得し、当該属性値を有する統合データを構成する、請求項1から請求項9いずれか一項に記載の検索装置。 Attribute for at least one data source among the two or more data sources, for each one or more records of the two or more records that the data source has, and for each one or more attributes of each record. Contains an array index with attribute position information that identifies where the value resides.
The search unit
The attribute position information corresponding to the attribute identifier of the search condition is acquired from the array index, and the attribute value corresponding to the attribute identifier of the search condition is acquired from the data source using the attribute position information. The search device according to any one of claims 1 to 9, which constitutes integrated data having the attribute value.
前記条件受付部が、前記ユーザテーブルに対する検索条件を受け付ける条件受付ステップと、
前記検索部が、前記データ辞書を参照して、前記検索条件に対応する2以上のデータソースを決定し、前記変換ルール定義情報を用いて、前記2以上の各データソースごとに、検索命令を生成し、当該検索命令に基づいた検索結果を取得し、前記変換ルール定義情報と前記ユーザ層定義情報とを用いて、前記2以上の各データソースに対応する検索結果を統合し、前記検索条件に対応する統合データを取得する検索ステップと、
前記結果出力部が、前記検索ステップで取得された前記統合データを出力する結果出力ステップとを具備する検索方法。 Information that defines each of two or more data sources including one or more records having one or more attribute values, and one or more including a source identifier that is an identifier of a data source and a source attribute identifier that is an attribute identifier of a data source. Defines a user table that is a table to be searched based on search conditions and includes one or more records having one or more attribute values and source layer definition information that is information having source attribute definition information of. The user layer definition information that is information and has one or more user attribute definition information including a user table identifier that identifies the user table and a user attribute identifier that is an attribute identifier of the user table, and the search condition. Based on this, a search command to be issued for each of the two or more data sources is generated, a search result corresponding to the search command is acquired, and the search result corresponding to the search condition is used for integration corresponding to the search condition. It is a search method realized by a data dictionary having conversion rule definition information which is information for creating data, a condition reception unit, a search unit, and a result output unit.
A condition reception step in which the condition reception unit accepts search conditions for the user table, and
The search unit refers to the data dictionary to determine two or more data sources corresponding to the search conditions, and uses the conversion rule definition information to issue a search command for each of the two or more data sources. Generate, acquire the search result based on the search command, integrate the search results corresponding to each of the two or more data sources by using the conversion rule definition information and the user layer definition information, and the search condition. Search steps to get the corresponding integrated data and
A search method in which the result output unit includes a result output step for outputting the integrated data acquired in the search step.
前記ユーザテーブルに対する検索条件を受け付ける条件受付部と、
前記データ辞書を参照して、前記検索条件に対応する2以上のデータソースを決定し、前記変換ルール定義情報を用いて、前記2以上の各データソースごとに、検索命令を生成し、当該検索命令に基づいた検索結果を取得し、前記変換ルール定義情報と前記ユーザ層定義情報とを用いて、前記2以上の各データソースに対応する検索結果を統合し、前記検索条件に対応する統合データを取得する検索部と、
前記検索部が取得した前記統合データを出力する結果出力部として機能させるためのプログラム。 Information that defines each of two or more data sources including one or more records having one or more attribute values, and one or more including a source identifier that is an identifier of a data source and a source attribute identifier that is an attribute identifier of a data source. Defines a user table that is a table to be searched based on search conditions and includes one or more records having one or more attribute values and source layer definition information that is information having source attribute definition information of. The user layer definition information that is information and has one or more user attribute definition information including a user table identifier that identifies the user table and a user attribute identifier that is an attribute identifier of the user table, and the search condition. Based on this, a search command to be issued for each of the two or more data sources is generated, a search result corresponding to the search command is acquired, and the search result corresponding to the search condition is used for integration corresponding to the search condition. A computer that has access to a data dictionary with conversion rule definition information, which is information for creating data, and two or more data sources.
A condition reception unit that accepts search conditions for the user table,
With reference to the data dictionary, two or more data sources corresponding to the search conditions are determined, and using the conversion rule definition information, a search command is generated for each of the two or more data sources, and the search is performed. The search result based on the instruction is acquired, the search result corresponding to each of the two or more data sources is integrated by using the conversion rule definition information and the user layer definition information, and the integrated data corresponding to the search condition is integrated. With the search unit to get
A program for functioning as a result output unit that outputs the integrated data acquired by the search unit.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021108326A JP6974665B1 (en) | 2021-06-30 | 2021-06-30 | Search device, search method, and program |
US17/777,219 US20230281197A1 (en) | 2021-06-30 | 2021-08-27 | Search apparatus, search method, and storage medium |
CN202180005754.4A CN115803730A (en) | 2021-06-30 | 2021-08-27 | Search device, search method, and recording medium |
PCT/JP2021/031457 WO2023276168A1 (en) | 2021-06-30 | 2021-08-27 | Search device, search method, and recording medium |
EP21893108.7A EP4137962A4 (en) | 2021-06-30 | 2021-08-27 | Search device, search method, and recording medium |
JP2021150902A JP2023007302A (en) | 2021-06-30 | 2021-09-16 | Retrieval device, retrieval method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021108326A JP6974665B1 (en) | 2021-06-30 | 2021-06-30 | Search device, search method, and program |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021150902A Division JP2023007302A (en) | 2021-06-30 | 2021-09-16 | Retrieval device, retrieval method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6974665B1 true JP6974665B1 (en) | 2021-12-01 |
JP2023005984A JP2023005984A (en) | 2023-01-18 |
Family
ID=78766785
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021108326A Active JP6974665B1 (en) | 2021-06-30 | 2021-06-30 | Search device, search method, and program |
JP2021150902A Pending JP2023007302A (en) | 2021-06-30 | 2021-09-16 | Retrieval device, retrieval method and program |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021150902A Pending JP2023007302A (en) | 2021-06-30 | 2021-09-16 | Retrieval device, retrieval method and program |
Country Status (1)
Country | Link |
---|---|
JP (2) | JP6974665B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7538979B1 (en) | 2024-05-30 | 2024-08-22 | フリー株式会社 | Information relay device, information relay method, and information relay program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222434A (en) * | 1999-02-04 | 2000-08-11 | Hitachi Ltd | Combination retrieval method |
JP2006092409A (en) * | 2004-09-27 | 2006-04-06 | Hitachi Information Systems Ltd | Composite database retrieval system, composite database retrieval method, and program therefor |
-
2021
- 2021-06-30 JP JP2021108326A patent/JP6974665B1/en active Active
- 2021-09-16 JP JP2021150902A patent/JP2023007302A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222434A (en) * | 1999-02-04 | 2000-08-11 | Hitachi Ltd | Combination retrieval method |
JP2006092409A (en) * | 2004-09-27 | 2006-04-06 | Hitachi Information Systems Ltd | Composite database retrieval system, composite database retrieval method, and program therefor |
Also Published As
Publication number | Publication date |
---|---|
JP2023007302A (en) | 2023-01-18 |
JP2023005984A (en) | 2023-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10410122B2 (en) | Deriving semantic relationships based on empirical organization of content by users | |
US8935272B2 (en) | Curated answers community automatically populated through user query monitoring | |
US20200257665A1 (en) | Similarity-based search engine | |
US8818992B2 (en) | Method, system, and apparatus for arranging content search results | |
US20150100568A1 (en) | Automatic definition of entity collections | |
US20150100605A1 (en) | Determining collection membership in a data graph | |
US20210397670A1 (en) | User-directed suggestions | |
JP6974665B1 (en) | Search device, search method, and program | |
CN103488672A (en) | Creating optimal comparison criterion within associative memories | |
US20040078361A1 (en) | System and method for analyzing patent families | |
KR101243056B1 (en) | System and Method for searching of entity identification result | |
Scifo | Graph Data Science with Neo4j: Learn how to use Neo4j 5 with Graph Data Science library 2.0 and its Python driver for your project | |
Daga et al. | Sequential linked data: The state of affairs | |
JP6104042B2 (en) | Search system and method using name as search key | |
JP4287464B2 (en) | System infrastructure configuration development support system and support method | |
RU2393536C2 (en) | Method of unified semantic processing of information, which provides for, within limits of single formal model, presentation, control of semantic accuracy, search and identification of objects description | |
JP6970867B1 (en) | Search device, search method, and program | |
WO2023276168A1 (en) | Search device, search method, and recording medium | |
US20210109984A1 (en) | Suggesting documents based on significant words and document metadata | |
CN116783587A (en) | Data storage for list-based data searching | |
JP6974666B1 (en) | Search device, search method, and program | |
WO2013153725A1 (en) | Data search device, data search method, and program for data search | |
JP5914186B2 (en) | Information processing apparatus and information processing method | |
US20230281197A1 (en) | Search apparatus, search method, and storage medium | |
Gottardi et al. | Semantic Search to Foster Scientific Findability: A Systematic Literature Review |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210827 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210827 |
|
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: 20210914 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210917 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6974665 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |