Nothing Special   »   [go: up one dir, main page]

JP6974666B1 - Search device, search method, and program - Google Patents

Search device, search method, and program Download PDF

Info

Publication number
JP6974666B1
JP6974666B1 JP2021128808A JP2021128808A JP6974666B1 JP 6974666 B1 JP6974666 B1 JP 6974666B1 JP 2021128808 A JP2021128808 A JP 2021128808A JP 2021128808 A JP2021128808 A JP 2021128808A JP 6974666 B1 JP6974666 B1 JP 6974666B1
Authority
JP
Japan
Prior art keywords
record
index
search
attribute
key item
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
Application number
JP2021128808A
Other languages
Japanese (ja)
Other versions
JP2023023355A (en
Inventor
譲二 佐伯
卓也 佐伯
慎也 佐伯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Informex Inc
Original Assignee
Informex Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Informex Inc filed Critical Informex Inc
Priority to JP2021128808A priority Critical patent/JP6974666B1/en
Priority to CN202180005754.4A priority patent/CN115803730A/en
Priority to PCT/JP2021/031457 priority patent/WO2023276168A1/en
Priority to EP21893108.7A priority patent/EP4137962A4/en
Priority to US17/777,219 priority patent/US20230281197A1/en
Priority to JP2021150903A priority patent/JP2023024224A/en
Application granted granted Critical
Publication of JP6974666B1 publication Critical patent/JP6974666B1/en
Publication of JP2023023355A publication Critical patent/JP2023023355A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】従来、バリエーションのある各検索条件に対して、高速に情報検索を行うことが困難であった。【解決手段】異なるキー項目の組み合わせに対応する2以上のレコード・インデックスが格納されるレコード・インデックス格納部4113と、キー項目値を有する検索条件を受け付ける条件受付部121と、2以上のレコード・インデックスから、検索条件が有するキー項目値に対応するキー項目を含む1以上のキー項目の組み合わせに対応する一のレコード・インデックスから、検索条件が有するキー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードの中の属性値をデータソースから取得する検索部432と、検索部432が取得した属性値を含む検索結果を出力する結果出力部441とを具備する検索装置4により、バリエーションのある各検索条件に対して、情報検索を高速に行える。【選択図】図17PROBLEM TO BE SOLVED: To search information at high speed for each search condition having variations. A record index storage unit 4113 that stores two or more record indexes corresponding to a combination of different key items, a condition reception unit 121 that accepts a search condition having a key item value, and two or more records. From the index, the record position information paired with the key item value of the search condition is acquired from one record index corresponding to the combination of one or more key items including the key item corresponding to the key item value of the search condition. Then, the search unit 432 that acquires the attribute value in the record corresponding to the position specified by the record position information from the data source, and the result output unit 441 that outputs the search result including the attribute value acquired by the search unit 432. With the search device 4 provided with the above, information retrieval can be performed at high speed for each search condition having variations. [Selection diagram] FIG. 17

Description

本発明は、情報を検索する検索装置等に関するものである。 The present invention relates to a search device or the like for retrieving information.

従来、インデックスを用いて、高速な検索を実現することを目的とした検索システムがあった(例えば、特許文献1参照)。 Conventionally, there has been a search system for the purpose of realizing a high-speed search using an index (see, for example, Patent Document 1).

特開2006−99427号公報Japanese Unexamined Patent Publication No. 2006-9427

しかしながら、従来技術においては、バリエーションのある各検索条件に対して、高速に情報検索を行うことが困難であった。 However, in the prior art, it has been difficult to perform information retrieval at high speed for each search condition having variations.

本第一の発明の検索装置は、2以上の各キー項目に対応するキー項目値と1以上の各属性識別子に対応する属性値とを有する2以上のレコードを含むデータソースのレコードに対応するインデックスであり、1以上のキー項目の組み合わせに対応する1以上のキー項目値と1以上のキー項目値を含むレコードの位置を特定するレコード位置情報の組の集合である2以上のレコード・インデックスであり、各々、異なるキー項目の組み合わせに対応する2以上のレコード・インデックスが格納されるレコード・インデックス格納部と、キー項目値を有する検索条件を受け付ける条件受付部と、2以上のレコード・インデックスから、検索条件が有するキー項目値に対応するキー項目を含む1以上のキー項目の組み合わせに対応する一のレコード・インデックスを選択し、選択したレコード・インデックスから、検索条件が有するキー項目値と対になるレコード位置情報を取得し、レコード位置情報が特定する位置に対応するレコードの中の属性値をデータソースから取得する検索部と、検索部が取得した属性値を含む検索結果を出力する結果出力部とを具備する検索装置である。 The search device of the first invention corresponds to a record of a data source including two or more records having a key item value corresponding to two or more key items and an attribute value corresponding to one or more attribute identifiers. An index, two or more record indexes that are a set of record position information that identifies the position of a record that contains one or more key item values and one or more key item values that correspond to a combination of one or more key items. A record index storage unit that stores two or more record indexes corresponding to different combinations of key items, a condition reception unit that accepts search conditions having key item values, and two or more record indexes. Select one record index corresponding to one or more key item combinations including the key item corresponding to the key item value of the search condition, and from the selected record index, the key item value of the search condition and The search unit that acquires the paired record position information and acquires the attribute value in the record corresponding to the position specified by the record position information from the data source, and outputs the search result including the attribute value acquired by the search unit. It is a search device provided with a result output unit.

かかる構成により、バリエーションのある各検索条件に対して、情報検索を高速に行える。 With such a configuration, information retrieval can be performed at high speed for each search condition having variations.

また、本第二の発明の検索装置は、第一の発明に対して、2以上のレコードのうちの1以上の各レコードごと、および各レコードの1以上の各属性ごとに、属性値が存在する位置を特定する属性位置情報を有する配列インデックスが格納される配列インデックス格納部をさらに具備し、検索条件は、属性識別子をさらに有し、検索部は、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得し、属性位置情報を用いて、検索条件が有する属性識別子に対応する属性値を、データソースから取得する、検索装置である。 Further, in the search device of the second invention, an attribute value exists for each one or more records of two or more records and for each one or more attributes of each record with respect to the first invention. Further includes an array index storage unit for storing an array index having attribute position information for specifying a position to be performed, the search condition further has an attribute identifier, and the search unit has an attribute corresponding to the attribute identifier possessed by the search condition. It is a search device that acquires position information from an array index and uses attribute position information to acquire an attribute value corresponding to an attribute identifier of a search condition from a data source.

かかる構成により、バリエーションのある各検索条件に対して、情報検索をより高速に行える。 With such a configuration, information retrieval can be performed at higher speed for each search condition having variations.

また、本第三の発明の検索装置は、第一または第二の発明に対して、2以上の各レコード・インデックスにおいて、1以上のキー項目値とレコード位置情報の2以上の組は、1以上のキー項目値の組み合わせをキーとしてソートされており、検索部は、2以上のレコード・インデックスから、レコード・インデックスの先頭のキー項目が、検索条件が有するキー項目値に対応するキー項目と一致する場合には、レコード・インデックスを選択し、選択したレコード・インデックスから、検索条件が有するキー項目値と対になるレコード位置情報を取得し、レコード位置情報が特定する位置に対応するレコードの中の属性値をデータソースから取得する、検索装置である。 Further, in the search device of the third invention, with respect to the first or second invention, in each of two or more record indexes, two or more sets of one or more key item values and record position information are one. The combination of the above key item values is sorted as a key, and the search unit selects the key item at the beginning of the record index from the two or more record indexes as the key item corresponding to the key item value of the search condition. If there is a match, select the record index, obtain the record position information that is paired with the key item value of the search condition from the selected record index, and record the record corresponding to the position specified by the record position information. It is a search device that acquires the attribute value inside from the data source.

かかる構成により、バリエーションのある各検索条件に対して、情報検索を高速に行える。 With such a configuration, information retrieval can be performed at high speed for each search condition having variations.

また、本第四の発明の検索装置は、第三の発明に対して、検索部は、レコード・インデックスの先頭のキー項目が検索条件が有するキー項目値に対応するキー項目と一致する2以上のレコード・インデックスが存在する場合、2以上のレコード・インデックスの次のキー項目が検索条件が有するキー項目と一致するかどうかを判定して、レコード・インデックスの先頭から最も多くのキー項目が検索条件が有するキー項目に含まれる一のレコード・インデックスを選択し、選択したレコード・インデックスから、検索条件が有するキー項目値と対になるレコード位置情報を取得し、レコード位置情報が特定する位置に対応するレコードの中の属性値をデータソースから取得する、検索装置である。 Further, in the search device of the fourth invention, with respect to the third invention, the search unit has two or more key items in which the first key item of the record index matches the key item corresponding to the key item value of the search condition. If the record index of is present, the next key item of two or more record indexes is determined to match the key item of the search condition, and the most key items from the beginning of the record index are searched. Select one record index included in the key item of the condition, acquire the record position information that is paired with the key item value of the search condition from the selected record index, and place it at the position specified by the record position information. It is a search device that acquires the attribute value in the corresponding record from the data source.

かかる構成により、バリエーションのある各検索条件に対して、情報検索を高速に行える。 With such a configuration, information retrieval can be performed at high speed for each search condition having variations.

また、本第五の発明の検索装置は、第一から第四いずれか1つの発明に対して、データソースを参照し、データソースの2以上の各レコードのキー項目値とレコード位置情報との組である2以上のレコード・インデックスであり、各々、異なる1以上のキー項目の組み合わせに対応する2以上のレコード・インデックスを生成し、レコード・インデックス格納部に蓄積するレコード・インデックス生成部をさらに具備する検索装置である。 Further, the search device of the fifth invention refers to the data source for any one of the first to fourth inventions, and the key item value and the record position information of each of two or more records of the data source. A set of two or more record indexes, each of which generates two or more record indexes corresponding to different combinations of one or more key items, and further adds a record index generator to be stored in the record index storage. It is a search device equipped.

かかる構成により、バリエーションのある各検索条件に対して、情報検索を高速に行うためのインデックスを生成できる。 With such a configuration, it is possible to generate an index for high-speed information retrieval for each search condition having variations.

また、本第六の発明の検索装置は、第五の発明に対して、レコード・インデックス生成部は、選択条件を満たす1以上のキー項目の組み合わせを、2組以上、決定し、2組以上の各組の1以上のキー項目の組み合わせに対応する2以上の各レコードのキー項目値とレコード位置情報との組であるレコード・インデックスを生成し、レコード・インデックス格納部に蓄積する、検索装置である。 Further, in the search device of the sixth invention, for the fifth invention, the record index generation unit determines two or more sets of combinations of one or more key items satisfying the selection condition, and two or more sets. A search device that generates a record index that is a set of key item values and record position information of two or more records corresponding to a combination of one or more key items in each set of, and stores them in the record index storage unit. Is.

かかる構成により、バリエーションのある各検索条件に対して、情報検索を高速に行うための適切なインデックスを生成できる。 With such a configuration, it is possible to generate an appropriate index for high-speed information retrieval for each search condition having variations.

また、本第七の発明の検索装置は、第六の発明に対して、選択条件は、データソースの2以上の各レコードに含まれる属性値の分散が閾値以上または閾値より大きい属性値に対応するキー項目を含む1以上のキー項目の組み合わせであること、または過去の1以上の検索条件において閾値以上または閾値より多い頻度で含まれている属性値に対応するキー項目を含む1以上のキー項目の組み合わせであることである、検索装置である。 Further, the search device of the seventh invention corresponds to the sixth invention that the selection condition corresponds to the attribute value in which the dispersion of the attribute values contained in each of the two or more records of the data source is equal to or more than the threshold value or larger than the threshold value. One or more keys that are a combination of one or more key items that include the key items to be used, or that include key items that correspond to attribute values that are included at or above the threshold value or at a frequency higher than the threshold value in one or more search conditions in the past. It is a search device that is a combination of items.

かかる構成により、バリエーションのある各検索条件に対して、情報検索を高速に行うための適切なインデックスを生成できる。 With such a configuration, it is possible to generate an appropriate index for high-speed information retrieval for each search condition having variations.

本発明による検索装置によれば、バリエーションのある各検索条件に対して、情報検索を高速に行える。 According to the search device according to the present invention, information retrieval can be performed at high speed for each search condition having variations.

実施の形態1における検索システムAの概念図Conceptual diagram of the search system A in the first embodiment 同検索システムAのブロック図Block diagram of the search system A 同検索システムAを構成する検索装置1のブロック図Block diagram of the search device 1 constituting the search system A 同検索装置1の動作例について説明するフローチャートA flowchart illustrating an operation example of the search device 1. 同インデックス生成処理の例について説明するフローチャートA flowchart illustrating an example of the index generation process. 同ソース・インデックス生成処理の例について説明するフローチャートFlowchart explaining an example of the source index generation process 同配列ラベル・インデックス生成処理の例について説明するフローチャートA flowchart illustrating an example of the same array label index generation process. 同配列インデックス生成処理の例について説明するフローチャートA flowchart illustrating an example of the same array index generation process. 同レコード・インデックス生成処理の例について説明するフローチャートA flowchart illustrating an example of the record index generation process. 同2次インデックス生成処理の例について説明するフローチャートA flowchart illustrating an example of the secondary index generation process. 同検索処理の例について説明するフローチャートA flowchart illustrating an example of the search process. 同データソースの例を示す図Diagram showing an example of the same data source 同インデックスの生成処理例、検索処理例を説明する図A diagram illustrating an example of index generation processing and an example of search processing. 同検索処理例を説明する図The figure explaining the search processing example 実施の形態2における検索システムBの概念図Conceptual diagram of the search system B in the second embodiment 同検索システムBのブロック図Block diagram of the search system B 同検索装置4のブロック図Block diagram of the search device 4 同検索装置4の動作例について説明するフローチャートA flowchart illustrating an operation example of the search device 4. 同インデックス生成処理の例について説明するフローチャートA flowchart illustrating an example of the index generation process. 同レコード・インデックス生成処理の例について説明するフローチャートA flowchart illustrating an example of the record index generation process. 同キー項目集合決定処理の例について説明するフローチャートFlow chart explaining an example of the same key item set determination process 同検索条件利用処理の例について説明するフローチャートFlowchart explaining an example of the same search condition usage process 同分散利用処理の例について説明するフローチャートFlow chart explaining an example of the distributed use processing 同検索処理の第一の例について説明するフローチャートA flowchart illustrating the first example of the search process. 同検索処理の第二の例について説明するフローチャートA flowchart illustrating a second example of the search process. 同レコード・インデックス決定処理の例について説明するフローチャートA flowchart illustrating an example of the record index determination process. 同データソースの例を示す図Diagram showing an example of the same data source 同検索処理例を説明する図The figure explaining the search processing example 上記実施の形態におけるコンピュータシステムの概観図Overview of the computer system in the above embodiment 同コンピュータシステムのブロック図Block diagram of the computer system

以下、検索装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。 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 search device 1, 1 or 2 or more data source management devices 2, or 1 or 2 or more terminal devices 3.

検索装置1は、データソースから情報を検索する装置である。データソース管理装置2は、1または2以上のデータソースが格納されている装置である。端末装置3は、情報を検索するユーザが使用する端末である。 The search device 1 is a device for searching information from a data source. The data source management device 2 is a device in which one or more data sources are stored. The terminal device 3 is a terminal used by a user who searches for information.

検索装置1、データソース管理装置2は、例えば、いわゆるサーバであり、例えば、クラウドサーバ、ASPサーバ等である。なお、検索装置1、データソース管理装置2の種類は問わない。また、検索装置1は、スタンドアロンの装置でも良い。かかる場合、検索システムAは、データソース管理装置2や端末装置3を有さなくても良い。また、かかる場合、データソースは、検索装置1に格納されている。 The search device 1 and the data source management device 2 are, for example, so-called servers, for example, a cloud server, an ASP server, and the like. The type of the search device 1 and the data source management device 2 does not matter. Further, the search device 1 may be a stand-alone device. In such a case, the search system A does not have to have the data source management device 2 and the terminal device 3. In such a case, the data source is stored in the search device 1.

図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 search device 1 constituting the search system A.

検索装置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 search device 1 includes a storage unit 11, a reception unit 12, a processing unit 13, and an output unit 14. The storage unit 11 includes a data source storage unit 111 and an index storage unit 112. The index storage unit 112 includes an array index storage unit 1121, an array label index storage unit 1122, a record index storage unit 1123, a secondary index storage unit 1124, and a source index storage unit 1125. The reception unit 12 includes a condition reception unit 121. The processing unit 13 includes an index generation unit 131, a search unit 132, and an index update unit 133. The index generation unit 131 includes an array index generation unit 1311, an array label index generation unit 1312, a record index generation unit 1313, a secondary index generation unit 1314, and a source index generation unit 1315. The output unit 14 includes a result output unit 141.

データソース管理装置2は、データソース格納部111を備える。 The data source management device 2 includes a data source storage unit 111.

端末装置3は、端末格納部31、端末受付部32、端末処理部33、端末送信部34、端末受信部35、および端末出力部36を備える。 The terminal device 3 includes a terminal storage unit 31, a terminal reception unit 32, a terminal processing unit 33, a terminal transmission unit 34, a terminal reception unit 35, and a terminal output unit 36.

検索装置1を構成する格納部11には、各種の情報が格納される。各種の情報は、例えば、後述するデータソース、後述する1以上の種類のインデックスである。 Various types of information are stored in the storage unit 11 that constitutes the search device 1. The various types of information are, for example, a data source described later and one or more types of indexes described later.

データソース格納部111には、1または2以上のデータソースが格納される。なお、検索装置1は、データソース格納部111が存在しなくても良い。かかる場合、検索対象のデータソースは、データソース管理装置2に格納されている。 One or two or more data sources are stored in the data source storage unit 111. The search device 1 does not have to have the data source storage unit 111. In such a case, the data source to be searched is stored in the data source management device 2.

データソースは、検索対象のデータの集合である。データは、情報と言っても良い。データソースは、通常、一つのファイルである。ただし、データソースは、例えば、一つのデータベース、データベース内の一つの表などでも良い。データソースは、通常、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 index storage unit 112 stores one or two or more types of indexes. An index is information (usually an index) that is referenced to retrieve desired information from a data source. The index is, 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種類以上の各インデックスは、例えば、ファイルである。ただし、インデックスは、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 index storage unit 1121. The array index storage unit 1121 usually stores an array index for each data source. That is, the array index usually corresponds to a source identifier that identifies the data source. If there is only one data source to be searched, the array index does not need to correspond to the source identifier.

配列インデックスは、レコード内の属性値の位置を特定するための情報であるである。 配列インデックスは、データソースが有するレコードごとの情報である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 index storage unit 1122 stores the array label index. The array label index storage unit 1122 usually stores an array label index for each data source. That is, the array label index usually corresponds to the source identifier. If there is only one data source to be searched, the array label index does not need to correspond to the source identifier.

配列ラベル・インデックスは、データソースのレコードにおける属性の順番を特定するための情報である。配列ラベル・インデックスは、データソースが有するレコードごとの情報である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 index storage unit 1123. The record index storage unit 1123 normally stores a record index for each data source. That is, the record index usually corresponds to the source identifier. If there is only one data source to be searched, the record index does not need to correspond to the source identifier.

レコード・インデックスは、データソースのレコードに対応するインデックスである。レコード・インデックスは、データソースのレコードの位置を特定するための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 index storage unit 1124. The secondary index storage unit 1124 usually stores a secondary index for each data source. That is, the secondary index usually corresponds to the source identifier. When there is only one data source to be searched, the secondary index does not need to correspond to the source identifier.

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 reception unit 12 receives various instructions and information. The various instructions and information are, for example, search conditions, data sources, and some information constituting the data source, which will be described later.

ここで、受け付けとは、通常、端末装置3からの受信であるが、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念であっても良い。 Here, the reception is usually reception from the terminal device 3, but reception of information input from an input device such as a keyboard, mouse, or touch panel, and reading from a recording medium such as an optical disk, a magnetic disk, or a semiconductor memory. It may be a concept including acceptance of the provided information.

条件受付部121は、検索条件を受け付ける。検索条件は、例えば、1または2以上の属性識別子を含む。検索条件は、例えば、1または2以上のキー項目値を含む。検索条件は、例えば、1以上の属性識別子および1以上のキー項目値を含む。 The condition reception unit 121 accepts search conditions. The search condition includes, for example, one or more attribute identifiers. The search condition includes, for example, one or more key item values. The search condition includes, for example, one or more attribute identifiers and one or more key item values.

処理部13は、各種の処理を行う。各種の処理は、例えば、インデックス生成部131、検索部132、インデックス更新部133が行う処理である。 The processing unit 13 performs various processes. The various processes are, for example, processes performed by the index generation unit 131, the search unit 132, and the index update unit 133.

処理部13は、受付部12がデータソースを受け付けた場合に、当該データソースをデータソース格納部111に蓄積する。その際、処理部13は、図示しない時計から最終更新時情報を取得し、当該最終更新時情報を当該データソースに対応付ける。 When the receiving unit 12 receives the data source, the processing unit 13 stores the data source in the data source storage unit 111. At that time, the processing unit 13 acquires the last update information from a clock (not shown) and associates the last update information with the data source.

処理部13は、受付部12がデータソースを構成する一部の情報を受け付けた場合、当該一部の情報を用いて、データソースを更新する。その際、処理部13は、図示しない時計から最終更新時情報を取得し、当該最終更新時情報を当該データソースに対応付ける。 When the receiving unit 12 receives a part of the information constituting the data source, the processing unit 13 updates the data source by using the part of the information. At that time, the processing unit 13 acquires the last update information from a clock (not shown) and associates the last update information with the data source.

インデックス生成部131は、1または2以上の各データソースからインデックスを生成する。 The index generator 131 generates an index from each of one or more data sources.

配列インデックス生成部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 index storage unit 1121.

配列インデックス生成部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 index storage unit 1121. However, the array index generation unit 1311 acquires an array index record having attribute position information of all each attribute value for each record in the data source, and obtains an array index having one or more array index records. It may be configured and stored in the array index storage unit 1121.

配列インデックスレコードは、レコードにおけるすべての属性値のうちの一部の属性値の属性位置情報のみを有する情報であることは好適である。なお、かかる一部の属性値の選択方法は問わない。一部の属性値は、例えば、所定の値ごと(例えば、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 index storage unit 1121.

配列インデックス生成部1311は、例えば、取得した属性位置情報を、レコード識別子またはキー項目値、および属性値識別子に対応付くように、配列インデックス格納部1121に蓄積する。 The array index generation unit 1311 stores, for example, the acquired attribute position information in the array index storage unit 1121 so as to correspond to the record identifier or the key item value and the attribute value identifier.

配列インデックス生成部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 index generation unit 1312 generates an array label index for each one or more data sources and stores it in the array label index storage unit 1122.

配列ラベル・インデックス生成部1312は、例えば、データソースから、2以上の各属性ごとに、属性値識別子と属性順番情報とを取得し、当該属性値識別子と属性順番情報との組である配列ラベル・インデックスレコードを取得し、当該2以上の配列ラベル・インデックスレコードを有する配列ラベル・インデックスを構成し、当該配列ラベル・インデックスを配列ラベル・インデックス格納部1122に蓄積する。 The array label index generation unit 1312 acquires, for example, an attribute value identifier and attribute order information for each of two or more attributes from a data source, and the array label is a set of the attribute value identifier and the attribute order information. -Acquires an index record, constitutes an array label index having two or more array label index records, and stores the array label index in the array label index storage unit 1122.

なお、配列ラベル・インデックス生成部1312は、属性値識別子キーとして配列ラベル・インデックスレコードをソートし、配列ラベル・インデックスを構成することは好適である。 It is preferable that the array label index generation unit 1312 sorts the array label index records as the attribute value identifier key to form the array label index.

また、配列インデックスレコードが、すべての属性値の属性位置情報を有する場合、配列ラベル・インデックスは不要である。 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 index generation unit 1313 refers to the data source and acquires a record index record having a key item value and record position information of each of two or more records of the data source for each record. Then, the record index generation unit 1313 generates a record index having a set of record index records for each record, and stores the record index in the record index storage unit 1123.

レコード・インデックス生成部1313は、1以上の各レコード・インデックスレコードに、レコード・インデックス内におけるレコード・インデックスレコードの位置を特定するレコード・インデックスレコード位置情報を取得し、当該レコード・インデックスレコード位置情報を有するレコード・インデックスレコードを構成することは好適である。 The record index generation unit 1313 acquires the record index record position information that specifies the position of the record index record in the record index for each one or more record index records, and obtains the record index record position information. It is preferable to construct a record index record having a record.

なお、レコード・インデックス生成部1313は、キー項目値をキーとして該レコード・インデックスレコードをソートし、レコード・インデックスを構成することは好適である。 It is preferable that the record index generation unit 1313 sorts the record index records using the key item value as a key to form a record index.

2次インデックス生成部1314は、データソースごとに、データソースが有する2以上のレコードのうちの一部である1以上の各レコードごとに、レコード・インデックスレコード位置情報とレコードのキー項目値との組である2次インデックスレコードを取得し、当該1以上の2次インデックスレコードを有する2次インデックスを構成し、2次インデックス格納部1124に蓄積する。 The secondary index generation unit 1314 determines the record index record position information and the key item value of the record for each one or more records that are a part of the two or more records possessed by the data source for each data source. A set of secondary index records is acquired, a secondary index having one or more secondary index records is configured, and the secondary index records are stored in the secondary index storage unit 1124.

また、配列インデックスの属性値位置情報がデータソース内における位置を特定する情報である場合、レコード・インデックスは無くても良い。 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 index generation unit 1314 refers to, for example, the record index corresponding to the data source for each data source, is a part of the records possessed by the record index, and is a record index possessed by each of two or more records. A secondary index record, which is a set of record position information and a key item value, is acquired, a secondary index having two or more secondary index records is generated, and the secondary index is stored in the secondary index storage unit 1124.

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 index generation unit 1315 acquires a source index record for each of two or more data sources, generates a source index having two or more source index records, and stores the source index in the source index storage unit 1125. .. The source index record is, for example, a set of a source identifier, a minimum key item value, and a maximum key item value. A source index record is, for example, a set of a source identifier, a minimum attribute identifier, and a maximum attribute identifier. 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.

なお、データソースが一つである場合、ソース・インデックス生成部1315は、不要である。 If there is only one data source, the source index generation unit 1315 is unnecessary.

検索部132は、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得し、当該属性位置情報を用いて、検索条件が有する属性識別子に対応する属性値を、キー項目値と2以上の属性値とを有する1または2以上のレコードを含むデータソースから取得する。 The search unit 132 acquires the attribute position information corresponding to the attribute identifier of the search condition from the array index, and uses the attribute position information to set the attribute value corresponding to the attribute identifier of the search condition as the key item value. Obtained from a data source containing one or more records with two or more attribute values.

検索部132は、例えば、条件受付部121が受け付けた検索条件が有する属性識別子で識別される属性値の前に配置されている属性値を識別する属性識別子に対応する第一の属性位置情報と、検索条件が有する属性識別子で識別される属性値の後に配置されている属性値を識別する属性識別子に対応する第二の属性位置情報とを、配列インデックスから取得する。次に、検索部132は、当該第一の属性位置情報が特定する位置と、当該第二の属性位置情報が特定する位置の間に存在する属性値であり、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。 The search unit 132 has, for example, the first attribute position information corresponding to the attribute identifier that identifies the attribute value arranged before the attribute value identified by the attribute identifier of the search condition received by the condition reception unit 121. , The second attribute position information corresponding to the attribute identifier that identifies the attribute value arranged after the attribute value identified by the attribute identifier of the search condition is acquired from the array index. Next, the search unit 132 is an attribute value existing between the position specified by the first attribute position information and the position specified by the second attribute position information, and corresponds to the attribute identifier of the search condition. Get the attribute value to be used from the data source.

検索部132は、例えば、条件受付部121が受け付けた検索条件が有する属性識別子に対応する属性順番情報を配列ラベル・インデックスから取得する。次に、検索部132は、当該属性順番情報を用いて、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得する。次に、検索部132は、当該属性位置情報を用いて、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。 The search unit 132 acquires, for example, the attribute order information corresponding to the attribute identifier of the search condition received by the condition reception unit 121 from the array label index. Next, the search unit 132 acquires the attribute position information corresponding to the attribute identifier of the search condition from the array index by using the attribute order information. Next, the search unit 132 acquires the attribute value corresponding to the attribute identifier of the search condition from the data source by using the attribute position information.

検索部132は、例えば、条件受付部121が受け付けた検索条件が有する属性識別子に対応する属性順番情報を配列ラベル・インデックスから取得する。検索部132は、当該属性順番情報が示す順番の前に配置されている属性値を識別する属性識別子に対応する第一の属性位置情報と、当該属性順番情報が示す順番の後に配置されている属性値を識別する属性識別子に対応する第二の属性位置情報とを、配列インデックスから取得する。次に、検索部132は、当該第一の属性位置情報が特定する位置と、当該第二の属性位置情報が特定する位置の間に存在する属性値であり、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。 The search unit 132 acquires, for example, the attribute order information corresponding to the attribute identifier of the search condition received by the condition reception unit 121 from the array label index. The search unit 132 is arranged after the first attribute position information corresponding to the attribute identifier that identifies the attribute value arranged before the order indicated by the attribute order information and the order indicated by the attribute order information. The second attribute position information corresponding to the attribute identifier that identifies the attribute value is acquired from the array index. Next, the search unit 132 is an attribute value existing between the position specified by the first attribute position information and the position specified by the second attribute position information, and corresponds to the attribute identifier of the search condition. Get the attribute value to be used from the data source.

検索部132は、例えば、検索条件が有するキー項目値と対になるレコード位置情報をレコード・インデックスから取得する。次に、検索部132は、当該レコード位置情報が特定する位置に対応するレコードを決定し、当該レコードの中の属性値であり、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。なお、検索条件において属性識別子が示されない場合、検索条件が有する属性識別子は、すべての属性識別子である、と考えても良い。 The search unit 132 acquires, for example, the record position information paired with the key item value of the search condition from the record index. Next, the search unit 132 determines the record corresponding to the position specified by the record position information, and obtains the attribute value in the record and the attribute value corresponding to the attribute identifier of the search condition from the data source. get. If the attribute identifier is not shown in the search condition, it may be considered that the attribute identifier possessed by the search condition is all the attribute identifiers.

検索部132は、例えば、検索条件が有するキー項目値を挟む2つのキー項目値を2次インデックスから取得する。次に、検索部132は、取得した2つの各キー項目値と対になる第一のレコード・インデックスレコード位置情報と第二のレコード・インデックスレコード位置情報とを、2次インデックスから取得する。次に、検索部132は、当該第一のレコード・インデックスレコード位置情報と当該第二のレコード・インデックスレコード位置情報との間のレコード・インデックスレコードを検索し、検索条件が有するキー項目値を含むレコード・インデックスレコードを決定し、当該レコード・インデックスレコードの中のレコード位置情報を取得する。次に、検索部132は、当該レコード位置情報が特定する位置に対応するレコードの中の属性値であり、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。なお、検索部132は、検索条件が有する属性識別子に対応する属性値の属性位置情報を、配列インデックスを用いて取得し、当該属性位置情報が特定する位置の属性値をデータソースから取得することは好適である。 The search unit 132 acquires, for example, two key item values sandwiching the key item value of the search condition from the secondary index. Next, the search unit 132 acquires the first record index record position information and the second record index record position information paired with the acquired two key item values from the secondary index. Next, the search unit 132 searches for a record index record between the first record index record position information and the second record index record position information, and includes the key item value of the search condition. The record index record is determined, and the record position information in the record index record is acquired. Next, the search unit 132 acquires the attribute value corresponding to the attribute identifier of the search condition, which is the attribute value in the record corresponding to the position specified by the record position information, from the data source. The search unit 132 acquires the attribute position information of the attribute value corresponding to the attribute identifier of the search condition by using the array index, and acquires the attribute value of the position specified by the attribute position information from the data source. Is suitable.

また、レコード・インデックスにおいて、キー項目値がソートされている場合、検索部132は、二分探索により、検索条件が有するキー項目値を含むレコード・インデックスレコードを決定することは好適であるが、シーケンシャルサーチでも良い。 Further, when the key item values are sorted in the record index, it is preferable that the search unit 132 determines the record index record including the key item value of the search condition by binary search, but sequentially. You can also search.

検索部132は、例えば、検索条件が有するキー項目値と一致する、またはキー項目値を間に挟む最小キー項目値と最大キー項目値と対になるソース識別子を、ソース・インデックスから取得する。次に、検索部132は、当該ソース識別子により識別されるデータソースから、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得する。次に、検索部132は、当該属性位置情報を用いて、レコードの中の属性値であり、検索条件が有する属性識別子に対応する属性値を取得する。 The search unit 132 acquires, for example, a source identifier that matches the key item value of the search condition or is paired with the minimum key item value and the maximum key item value with the key item value sandwiched between them from the source index. Next, the search unit 132 acquires the attribute position information corresponding to the attribute identifier of the search condition from the array index from the data source identified by the source identifier. Next, the search unit 132 acquires the attribute value corresponding to the attribute identifier of the search condition, which is the attribute value in the record, by using the attribute position information.

検索部132は、例えば、検索条件が有する属性識別子と一致する、または属性識別子を間に挟む最小属性識別子と最大属性識別子と対になるソース識別子を、ソース・インデックスから取得する。検索部132は、当該ソース識別子により識別されるデータソースに対応する配列インデックスから、検索条件が有する属性識別子に対応する属性位置情報を取得する。検索部132は、当該属性位置情報を用いて、当該ソース識別子により識別されるデータソースの中のレコードの中の属性値であり、検索条件が有する属性識別子に対応する属性値を取得する。 The search unit 132 acquires, for example, a source identifier that matches the attribute identifier of the search condition or that is paired with the minimum attribute identifier and the maximum attribute identifier with the attribute identifier sandwiched between them from the source index. The search unit 132 acquires the attribute position information corresponding to the attribute identifier of the search condition from the array index corresponding to the data source identified by the source identifier. The search unit 132 uses the attribute position information to acquire the attribute value in the record in the data source identified by the source identifier and the attribute value corresponding to the attribute identifier of the search condition.

検索部132は、例えば、検索条件が有するキー項目値と検索条件が有する属性識別子とに対応するソース識別子を、ソース・インデックスから取得する。検索部132は、当該ソース識別子により識別されるデータソースに対応する2次インデックスから、検索条件が有するキー項目値を挟む2つのキー項目値を2次インデックスから取得する。次に、検索部132は、取得した2つの各キー項目値と対になる第一のレコード・インデックスレコード位置情報と第二のレコード・インデックスレコード位置情報とを、2次インデックスから取得する。次に、検索部132は、当該第一のレコード・インデックスレコード位置情報と当該第二のレコード・インデックスレコード位置情報との間のレコード・インデックスレコードを検索し、検索条件が有するキー項目値を含むレコード・インデックスレコードを決定し、当該レコード・インデックスレコードの中のレコード位置情報を取得する。また、検索部132は、検索条件が有する属性識別子に対応する属性順番情報を配列ラベル・インデックスから取得する。次に、検索部132は、当該属性順番情報を用いて、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得する。次に、検索部132は、取得したレコード位置情報により特定されるレコードの中の属性値であり、当該属性位置情報が特定する属性値をデータソースから取得する。 The search unit 132 acquires, for example, a source identifier corresponding to the key item value of the search condition and the attribute identifier of the search condition from the source index. The search unit 132 acquires two key item values sandwiching the key item value of the search condition from the secondary index corresponding to the data source identified by the source identifier. Next, the search unit 132 acquires the first record index record position information and the second record index record position information paired with the acquired two key item values from the secondary index. Next, the search unit 132 searches for a record index record between the first record index record position information and the second record index record position information, and includes the key item value of the search condition. The record index record is determined, and the record position information in the record index record is acquired. Further, the search unit 132 acquires the attribute order information corresponding to the attribute identifier of the search condition from the array label index. Next, the search unit 132 acquires the attribute position information corresponding to the attribute identifier of the search condition from the array index by using the attribute order information. Next, the search unit 132 acquires the attribute value in the record specified by the acquired record position information from the data source.

インデックス更新部133は、予め決められた条件を満たす場合に、データソースから取得した最終更新時情報が示す最終更新時が、1以上の各種類のインデックスに対応する生成時情報が示す生成時より後か否かを判断し、後である場合に、インデックス生成部131を動作させて、1以上の各種類のインデックスを構成する。また、インデックス更新部133は、通常、構成した1以上の各種類のインデックスを、インデックス格納部112の古いインデックスに上書きする。なお、1以上の各種類のインデックスは、配列インデックス、配列ラベル・インデックス、レコード・インデックス、2次インデックス、ソース・インデックスのうちの1種類以上である。また、予め決められた条件は、例えば、ユーザからの指示を受け付けたこと、予め決められた時刻になったこと、データソースが更新されたことである。 When the index update unit 133 satisfies a predetermined condition, the last update time indicated by the last update time information acquired from the data source is the generation time indicated by the generation time information corresponding to one or more types of indexes. It is determined whether or not it is later, and if it is later, the index generation unit 131 is operated to form one or more types of indexes. Further, the index update unit 133 usually overwrites each of the configured indexes of one or more types with the old index of the index storage unit 112. Each type of index of 1 or more is one or more of an array index, an array label index, a record index, a secondary index, and a source index. Further, the predetermined conditions are, for example, that an instruction from the user has been received, that the time has reached a predetermined time, and that the data source has been updated.

出力部14は、各種の情報を取得する。各種の情報は、例えば、後述する検索結果である。なお、ここでの出力とは、通常、端末装置3への送信であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。 The output unit 14 acquires various types of information. Various types of information are, for example, search results described later. The output here is usually transmission to the terminal device 3, but display on a display, projection using a projector, printing by a printer, storage on a recording medium, other processing devices and other devices. The concept may include delivery of the processing result to a program or the like.

結果出力部141は、検索部132が取得した属性値を含む検索結果を出力する。検索結果は、通常、属性値を有する。 The result output unit 141 outputs the search result including the attribute value acquired by the search unit 132. Search results usually have attribute values.

データソース管理装置2は、1以上のデータソースを管理する。データソース管理装置2は、データソース格納部111を具備する。 The data source management device 2 manages one or more data sources. The data source management device 2 includes a data source storage unit 111.

端末装置3を構成する端末格納部31には、各種の情報が格納される。各種の情報は、例えば、検索条件、データソースである。 Various types of information are stored in the terminal storage unit 31 that constitutes the terminal device 3. Various types of information are, for example, search conditions and data sources.

端末受付部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 terminal processing unit 33 performs various processes. The various processes are, for example, a process of converting an instruction or information received by the terminal reception unit 32 into an instruction or information of a data structure to be transmitted. The various processes are, for example, a process of converting the information received by the terminal receiving unit 35 into the information of the data structure to be output.

端末送信部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 search device 1. Various information and instructions are, for example, search conditions and data sources.

端末受信部35は、各種の情報を受信する。端末受信部35は、各種の情報を検索装置1から受信する。各種の情報は、例えば、検索結果である。 The terminal receiving unit 35 receives various types of information. The terminal receiving unit 35 receives various information from the search device 1. The various information is, for example, a search result.

端末出力部36は、各種の情報を出力する。各種の情報は、例えば、検索結果である。 The terminal output unit 36 outputs various information. The various information is, for example, a search result.

格納部11、データソース格納部111、インデックス格納部112、配列インデックス格納部1121、配列ラベル・インデックス格納部1122、レコード・インデックス格納部1123、2次インデックス格納部1124、ソース・インデックス格納部1125、および端末格納部31は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。 Storage unit 11, data source storage unit 111, index storage unit 112, array index storage unit 1121, array label index storage unit 1122, record index storage unit 1123, secondary index storage unit 1124, source index storage unit 1125, A non-volatile recording medium is suitable for the terminal storage unit 31, but a volatile recording medium can also be used.

格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。 The process of storing information in the storage unit 11 or the like does not matter. For example, the information may be stored in the storage unit 11 or the like via the recording medium, or the information transmitted via the communication line or the like may be stored in the storage unit 11 or the like. Alternatively, the information input via the input device may be stored in the storage unit 11 or the like.

受付部12、条件受付部121、および端末受信部35は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。 The reception unit 12, the condition reception unit 121, and the terminal reception unit 35 are usually realized by wireless or wired communication means, but may be realized by means for receiving broadcasts.

処理部13、インデックス生成部131、検索部132、インデックス更新部133、配列インデックス生成部1311、配列ラベル・インデックス生成部1312、レコード・インデックス生成部1313、2次インデックス生成部1314、ソース・インデックス生成部1315、および端末処理部33は、通常、プロセッサやメモリ等から実現され得る。処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わない。 Processing unit 13, index generation unit 131, search unit 132, index update unit 133, array index generation unit 1311, array label index generation unit 1312, record index generation unit 1313, secondary index generation unit 1314, source index generation. The unit 1315 and the terminal processing unit 33 can usually be realized from a processor, a memory, or the like. The processing procedure of the processing unit 13 and the like is usually realized by software, and the software is recorded in a recording medium such as ROM. However, it may be realized by hardware (dedicated circuit). The processor is a CPU, MPU, GPU, or the like, and the type thereof does not matter.

出力部14、結果出力部141、および端末送信部34は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。 The output unit 14, the result output unit 141, and the terminal transmission unit 34 are usually realized by wireless or wired communication means, but may be realized by broadcasting means.

端末受付部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 terminal output unit 36 may or may not include an output device such as a display or a speaker. The terminal output unit 36 can be realized by the driver software of the output device, the driver software of the output device, the output device, or the like.

次に、検索システムAの動作例について説明する。まず、検索装置1の動作例について、図4のフローチャートを用いて説明する。 Next, an operation example of the search system A will be described. First, an operation example of the search device 1 will be described with reference to the flowchart of FIG.

(ステップS401)インデックス生成部131は、インデックスを生成するタイミングであるか否かを判断する。インデックスを生成するタイミングであればステップS402に行き、インデックスを生成するタイミングでなければステップS406に行く。 (Step S401) The index generation unit 131 determines whether or not it is time to generate an index. If it is the timing to generate an index, it goes to step S402, and if it is not the timing to generate an index, it goes to step S406.

(ステップS402)インデックス生成部131は、カウンタiに1を代入する。 (Step S402) The index generation unit 131 substitutes 1 for the counter i.

(ステップS403)インデックス生成部131は、インデックスを生成する対象のi番目のデータソースが存在するか否かを判断する。i番目のデータソースが存在する場合はステップS404に行き、i番目のデータソースが存在しない場合はステップS401に戻る。 (Step S403) The index generation unit 131 determines whether or not the i-th data source for which the index is generated exists. If the i-th data source exists, the process goes to step S404, and if the i-th data source does not exist, the process returns to step S401.

(ステップS404)インデックス生成部131は、i番目のデータソースに対応するインデックスを生成する。インデックス生成処理の例について、図5のフローチャートを用いて説明する。 (Step S404) The index generation unit 131 generates an index corresponding to the i-th data source. An example of the index generation process will be described with reference to the flowchart of FIG.

(ステップS405)インデックス生成部131は、カウンタiを1、インクリメントする。ステップS403に戻る。 (Step S405) The index generation unit 131 increments the counter i by 1. Return to step S403.

(ステップS406)インデックス更新部133は、インデックスを更新するタイミングであるか否かを判断する。インデックスを更新するタイミングであればステップS407に行き、インデックスを更新するタイミングでなければステップS414に行く。 (Step S406) The index update unit 133 determines whether or not it is time to update the index. If it is the timing to update the index, the process goes to step S407, and if it is not the timing to update the index, the process goes to step S414.

(ステップS407)インデックス更新部133は、カウンタiに1を代入する。 (Step S407) The index update unit 133 substitutes 1 for the counter i.

(ステップS408)インデックス更新部133は、i番目のデータソースが存在するか否かを判断する。i番目のデータソースが存在する場合はステップS409に行き、i番目のデータソースが存在しない場合はステップS401に戻る。 (Step S408) The index update unit 133 determines whether or not the i-th data source exists. If the i-th data source exists, the process goes to step S409, and if the i-th data source does not exist, the process returns to step S401.

(ステップS409)インデックス更新部133は、i番目のデータソースの属性値である最終更新時情報を取得する。 (Step S409) The index update unit 133 acquires the last update information which is the attribute value of the i-th data source.

(ステップS410)インデックス更新部133は、i番目のデータソースに対応するインデクス(例えば、配列インデックス)の生成時情報を配列インデックス格納部1121から取得する。 (Step S410) The index update unit 133 acquires information at the time of generation of an index (for example, an array index) corresponding to the i-th data source from the array index storage unit 1121.

(ステップS411)インデックス更新部133は、ステップS409で取得した最終更新時情報が示す時が、ステップS410で取得した生成時情報が示す時より新しいか否かを判断する。新しい場合はステップS412に行き、新しくない場合はステップS413に行く。 (Step S411) The index update unit 133 determines whether or not the time indicated by the last update information acquired in step S409 is newer than the time indicated by the generation information acquired in step S410. If it is new, it goes to step S412, and if it is not new, it goes to step S413.

(ステップS412)インデックス更新部133は、インデックス生成部131に動作の指示をする。その結果、インデックス生成部131は、インデックスを生成し、i番目のデータソースに対応付けて、インデックスを蓄積する。かかる処理により、i番目のデータソースに対応するインデックスが更新される。なお、インデックス生成処理の例は、図5のフローチャートである。 (Step S412) The index update unit 133 instructs the index generation unit 131 to operate. As a result, the index generation unit 131 generates an index, associates it with the i-th data source, and accumulates the index. By such processing, the index corresponding to the i-th data source is updated. An example of the index generation process is the flowchart of FIG.

(ステップS413)カウンタiを1、インクリメントする。ステップS408に戻る。 (Step S413) The counter i is incremented by 1. Return to step S408.

(ステップS414)条件受付部121は、検索条件を受け付けたか否かを判断する。検索条件を受け付けた場合はステップS415に行き、検索条件を受け付けなかった場合はステップS401に戻る。 (Step S414) The condition reception unit 121 determines whether or not the search condition has been accepted. If the search condition is accepted, the process goes to step S415, and if the search condition is not accepted, the process returns to step S401.

(ステップS415)検索部132は、検索条件を用いて検索を行う。かかる検索処理の例について、図11フローチャートを用いて説明する。 (Step S415) The search unit 132 performs a search using the search conditions. An example of such a search process will be described with reference to the flowchart of FIG.

(ステップS416)結果出力部141は、ステップS415で取得された検索結果を出力する。ステップS401に戻る。 (Step S416) The result output unit 141 outputs the search result acquired in step S415. Return to step S401.

なお、図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 index generation unit 1315 generates a source index. An example of such a source index generation process will be described with reference to the flowchart of FIG.

(ステップS502)配列ラベル・インデックス生成部1312は、配列ラベル・インデックスを生成する。かかる配列ラベル・インデックス生成処理の例について、図7フローチャートを用いて説明する。 (Step S502) The array label index generation unit 1312 generates an array label index. An example of such an array label index generation process will be described with reference to the flowchart of FIG. 7.

(ステップ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 index generation unit 1313 generates a record index. An example of such a record index generation process will be described with reference to the flowchart of FIG.

(ステップS505)2次インデックス生成部1314は、2次インデックスを生成する。かかる2次インデックス生成処理の例について、図10フローチャートを用いて説明する。 (Step S505) The secondary index generation unit 1314 generates a secondary index. An example of such a secondary index generation process will be described with reference to the flowchart of FIG.

なお、図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 index generation unit 1315 determines whether or not different records exist in each of the two or more data sources. If there are different records, the process goes to step S602, and if there are no different records, the process goes to step S604.

(ステップS602)ソース・インデックス生成部1315は、インデックスの生成の対象のデータソースを参照し、当該データソースの最小キー項目値を取得する。 (Step S602) The source index generation unit 1315 refers to the data source for which the index is generated, and acquires the minimum key item value of the data source.

(ステップS603)ソース・インデックス生成部1315は、インデックスの生成の対象のデータソースを参照し、当該データソースの最大キー項目値を取得する。 (Step S603) The source index generation unit 1315 refers to the data source for which the index is generated, and acquires the maximum key item value of the data source.

(ステップS604)ソース・インデックス生成部1315は、2以上の各データソースに、異なる属性の属性値が存在するか否かを判断する。異なる属性の属性値が存在する場合はステップS605に行き、異なる属性の属性値が存在しない場合はステップS607に行く。 (Step S604) The source index generation unit 1315 determines whether or not attribute values of different attributes exist in each of the two or more data sources. If the attribute values of different attributes exist, the process goes to step S605, and if the attribute values of different attributes do not exist, the process goes to step S607.

(ステップS605)ソース・インデックス生成部1315は、インデックスの生成の対象のデータソースを参照し、当該データソースの最小属性識別子取得する。 (Step S605) The source index generation unit 1315 refers to the data source for which the index is generated, and acquires the minimum attribute identifier of the data source.

(ステップS606)ソース・インデックス生成部1315は、インデックスの生成の対象のデータソースを参照し、当該データソースの最大属性識別子取得する。 (Step S606) The source index generation unit 1315 refers to the data source for which the index is generated, and acquires the maximum attribute identifier of the data source.

(ステップS607)ソース・インデックス生成部1315は、インデックスの生成の対象のデータソースのソース識別子を取得する。 (Step S607) The source index generation unit 1315 acquires the source identifier of the data source for which the index is generated.

(ステップS608)ソース・インデックス生成部1315は、ソース・インデックスレコードを構成する。ソース・インデックスレコードは、例えば、最小キー項目値と最大キー項目値とを有する。ソース・インデックスレコードは、例えば、最小属性識別子と最大属性識別子とを有する。ソース・インデックスレコードは、例えば、最小キー項目値と最大キー項目値と最小属性識別子と最大属性識別子とを有する。ソース・インデックスレコードは、ソース識別子に対応している。なお、ソース識別子に対応していることは、ソース識別子を有することでも良いことは言うまでもない。 (Step S608) The source index generation unit 1315 constitutes a source index record. The source index record has, for example, a minimum key item value and a maximum key item value. The source index record has, for example, a minimum attribute identifier and a maximum attribute identifier. The source index record has, for example, a minimum key item value, a maximum key item value, a minimum attribute identifier, and a maximum attribute identifier. The source index record corresponds to the source identifier. Needless to say, corresponding to the source identifier may mean having the source identifier.

(ステップS609)ソース・インデックス生成部1315は、ステップS608で構成したソース・インデックスレコードをソース・インデックス格納部1125に追記する。上位処理にリターンする。 (Step S609) The source index generation unit 1315 adds the source index record configured in step S608 to the source index storage unit 1125. Return to higher-level processing.

次に、ステップ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 index generation unit 1312 assigns 1 to the counter i.

(ステップS702)配列ラベル・インデックス生成部1312は、インデックスの生成の対象のデータソースのi番目の属性の属性識別子を取得する。 (Step S702) The array label index generation unit 1312 acquires the attribute identifier of the i-th attribute of the data source for which the index is generated.

なお、配列ラベル・インデックス生成部1312は、例えば、インデックスの生成の対象のデータソースの中の1行目のレコードのi番目の属性の属性識別子を取得する。配列ラベル・インデックス生成部1312は、例えば、格納部11に格納されているデータソーススキーマ情報からi番目の属性の属性識別子を取得しても良い。なお、データソーススキーマ情報とは、データソースの構造を特定する情報であり、例えば、2以上の属性識別子を有する。 The array label index generation unit 1312 acquires, for example, the attribute identifier of the i-th attribute of the record in the first row in the data source for which the index is generated. The array label index generation unit 1312 may acquire the attribute identifier of the i-th attribute from the data source schema information stored in the storage unit 11, for example. The data source schema information is information that specifies the structure of the data source, and has, for example, two or more attribute identifiers.

(ステップS703)配列ラベル・インデックス生成部1312は、ステップS702でi番目の属性の属性識別子を取得できたか否かを判断する。取得できた場合はステップS704に行き、取得できなかった場合は上位処理にリターンする。 (Step S703) The array label index generation unit 1312 determines whether or not the attribute identifier of the i-th attribute could be acquired in step S702. If it can be acquired, it goes to step S704, and if it cannot be acquired, it returns to the higher-level processing.

(ステップS704)配列ラベル・インデックス生成部1312は、ステップS702で取得したi番目の属性の属性識別子と、i(属性順番情報)とを有する配列ラベル・インデックスレコードを構成する。なお、配列ラベル・インデックスレコードは、配列ラベル・インデックスを構成する情報である。 (Step S704) The array label index generation unit 1312 constitutes an array label index record having the attribute identifier of the i-th attribute acquired in step S702 and i (attribute order information). The array label index record is information that constitutes the array label index.

(ステップS705)配列ラベル・インデックス生成部1312は、ステップS704で構成した配列ラベル・インデックスレコードを、インデックスの生成の対象のデータソースに対応付けて、配列ラベル・インデックス格納部1122に追記する。 (Step S705) The array label index generation unit 1312 adds the array label index record configured in step S704 to the array label index storage unit 1122 in association with the data source for which the index is generated.

(ステップS706)配列ラベル・インデックス生成部1312は、カウンタiを1、インクリメントする。ステップS702に戻る。 (Step S706) The array label index generation unit 1312 increments the counter i by 1. Return to step S702.

なお、図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 substitutes 1 for the counter i.

(ステップ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 index storage unit 1121.

(ステップ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 index generation unit 1313 assigns 1 to the counter i.

(ステップS902)レコード・インデックス生成部1313は、インデックスの生成の対象のデータソースの中に、i番目のレコードが存在するか否かを判断する。i番目のレコードが存在する場合はステップS903に行き、i番目のレコードが存在しない場合は上位処理にリターンする。 (Step S902) The record index generation unit 1313 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 S903, and if the i-th record does not exist, the process returns to higher processing.

(ステップS903)レコード・インデックス生成部1313は、インデックスの生成の対象のデータソースを参照し、i番目のレコードのレコード位置情報を取得する。 (Step S903) The record index generation unit 1313 refers to the data source for which the index is generated, and acquires the record position information of the i-th record.

(ステップS904)レコード・インデックス生成部1313は、インデックスの生成の対象のデータソースを参照し、i番目のレコードのキー項目値を取得する。 (Step S904) The record index generation unit 1313 refers to the data source for which the index is generated, and acquires the key item value of the i-th record.

(ステップS905)レコード・インデックス生成部1313は、i番目のレコード・インデックスレコードの、レコード・インデックス内における位置情報であるレコード・インデックスレコード位置情報を取得する。 (Step S905) The record index generation unit 1313 acquires the record index record position information which is the position information in the record index of the i-th record index record.

(ステップS906)レコード・インデックス生成部1313は、ステップS903で取得したレコード位置情報、ステップS904で取得したキー項目値、およびステップS905で取得したレコード・インデックスレコード位置情報を有するi番目のレコード・インデックスレコードを構成する。 (Step S906) The record index generation unit 1313 has the record position information acquired in step S903, the key item value acquired in step S904, and the record index record position information acquired in step S905. Make up a record.

(ステップS907)レコード・インデックス生成部1313は、ステップS906で構成したレコード・インデックスレコードを、レコード・インデックス格納部1123に追記する。 (Step S907) The record index generation unit 1313 adds the record index record configured in step S906 to the record index storage unit 1123.

(ステップS908)レコード・インデックス生成部1313は、カウンタiを1、インクリメントする。ステップ902に戻る。 (Step S908) The record index generation unit 1313 increments the counter i by 1. Return to step 902.

なお、図9のフローチャートにおいて、レコード・インデックス生成部1313は、キー項目値をキーとして、レコード・インデックスレコードをソートすることは好適である。かかる場合、レコード・インデックス生成部1313は、レコード・インデックスレコードごとに、ソートされた状態のレコード・インデックスレコード位置情報を取得することは言うまでもない。 In the flowchart of FIG. 9, it is preferable that the record index generation unit 1313 sorts the record index records using the key item value as a key. In such a case, it goes without saying that the record index generation unit 1313 acquires the record index record position information in the sorted state for each record index 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 index generation unit 1314 substitutes 1 for the counter i.

(ステップS1002)2次インデックス生成部1314は、レコード・インデックスの中に、i番目のレコード・インデックスレコードが存在するか否かを判断する。i番目のレコード・インデックスレコードが存在する場合はステップS1003に行き、存在しない場合は上位処理にリターンする。 (Step S1002) The secondary index generation unit 1314 determines whether or not the i-th record index record exists in the record index. If the i-th record / index record exists, the process goes to step S1003, and if it does not exist, the process returns to higher processing.

(ステップS1003)2次インデックス生成部1314は、i番目のレコード・インデックスレコードを、2次インデックスに使用するか否かを判断する。2次インデックスに使用する場合はステップS1004に行き、2次インデックスに使用しない場合はステップS1006に行く。 (Step S1003) The secondary index generation unit 1314 determines whether or not to use the i-th record index record for the secondary index. If it is used for the secondary index, it goes to step S1004, and if it is not used for the secondary index, it goes to step S1006.

なお、2次インデックス生成部1314は、すべてのレコード・インデックスレコードのうちの一部のレコード・インデックスレコードを使用する。2次インデックス生成部1314は、例えば、すべてのレコード・インデックスレコードの番号をN(Nは2以上の自然数)で割った場合の余りの値がM(Mは整数,0<=M<N−1)の番号に対応するレコード・インデックスレコードを使用する、と判断する。また、2次インデックス生成部1314は、例えば、予め決められている一部のレコード・インデックスレコードを使用する、と判断する。 The secondary index generation unit 1314 uses some record index records among all the record index records. In the secondary index generation unit 1314, for example, when the numbers of all records and index records are divided by N (N is a natural number of 2 or more), the remainder value is M (M is an integer, 0 <= M <N−). It is determined that the record index record corresponding to the number in 1) is used. Further, the secondary index generation unit 1314 determines that, for example, some predetermined record index records are used.

(ステップS1004)2次インデックス生成部1314は、i番目のレコード・インデックスレコードから、キー項目値とレコード・インデックスレコード位置情報とを取得し、当該情報を有する2次インデックスレコードを構成する。 (Step S1004) The secondary index generation unit 1314 acquires the key item value and the record index record position information from the i-th record index record, and constitutes a secondary index record having the information.

(ステップS1005)2次インデックス生成部1314は、ステップS1004で構成した2次インデックスレコードを2次インデックス格納部1124に追記する。 (Step S1005) The secondary index generation unit 1314 adds the secondary index record configured in step S1004 to the secondary index storage unit 1124.

(ステップS1006)2次インデックス生成部1314は、カウンタiを1、インクリメントする。ステップ1002に戻る。 (Step S1006) The secondary index generation unit 1314 increments the counter i by 1. Return to step 1002.

なお、図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 search unit 132 acquires one or more attribute identifiers and one or more key item values corresponding to the accepted search conditions. In addition, one or more attribute identifiers specify an attribute value to be acquired as a search result. The key item value of 1 or more specifies the record for which information is acquired as a search result. That is, the search unit 132 is the attribute value in the record of one or more key item values acquired here, and acquires the attribute value identified by each of the one or more attribute identifiers acquired here.

(ステップS1102)検索部132は、ソース・インデックスを参照し、ステップS1101で取得した1以上の属性識別子と1以上のキー項目値に対応する1以上のソース識別子を取得する。ここで、検索部132は、取得した1以上の各ソース識別子に、当該ソース識別子で識別されるデータソースに含まれる属性値の1以上の属性識別子と、当該ソース識別子で識別されるデータソースに含まれるレコードの1以上のキー項目値とを対応付ける。 (Step S1102) The search unit 132 refers to the source index and acquires one or more attribute identifiers acquired in step S1101 and one or more source identifiers corresponding to one or more key item values. Here, the search unit 132 uses the acquired one or more source identifiers as one or more attribute identifiers of the attribute values included in the data source identified by the source identifiers and the data source identified by the source identifiers. Corresponds to one or more key item values of the included record.

(ステップS1103)検索部132は、カウンタiに1を代入する。 (Step S1103) The search unit 132 substitutes 1 for the counter i.

(ステップS1104)検索部132は、ステップS1102で取得した1以上のソース識別子の中に、i番目のソース識別子が存在するか否かを判断する。i番目のソース識別子が存在する場合はステップS1105に行き、存在しない場合はステップS1118に行く。 (Step S1104) The search unit 132 determines whether or not the i-th source identifier exists among the one or more source identifiers acquired in step S1102. If the i-th source identifier exists, the process goes to step S1105, and if it does not exist, the process goes to step S1118.

(ステップS1105)検索部132は、カウンタjに1を代入する。 (Step S1105) The search unit 132 substitutes 1 for the counter j.

(ステップS1106)検索部132は、ステップS1102でi番目のソース識別子に対応付けられた1以上のキー項目値の中に、j番目のキー項目値が存在するか否かを判断する。j番目のキー項目値が存在する場合はステップS1107に行き、存在しない場合はステップS1117に行く。 (Step S1106) The search unit 132 determines whether or not the j-th key item value exists among the one or more key item values associated with the i-th source identifier in step S1102. If the j-th key item value exists, the process goes to step S1107, and if it does not exist, the process goes to step S1117.

(ステップS1107)検索部132は、i番目のソース識別子に対応する2次インデックスを参照し、j番目のキー項目値に対応する第一のレコード・インデックスレコード位置情報と第二のレコード・インデックスレコード位置情報とを取得する。なお、第一のレコード・インデックスレコード位置情報は、j番目のキー項目値より小さなキー項目値のうちの最大のキー項目値と対になるレコード・インデックスレコード位置情報である。第二のレコード・インデックスレコード位置情報が、j番目のキー項目値より大きなキー項目値のうちの最小のキー項目値と対になるレコード・インデックスレコード位置情報である。また、ここで、検索部132は、j番目のキー項目値と対になる一つのレコード・インデックスレコード位置情報を2次インデックスから取得する場合もあり得る。 (Step S1107) The search unit 132 refers to the secondary index corresponding to the i-th source identifier, and the first record index record position information and the second record index record corresponding to the j-th key item value. Get location information. The first record index record position information is the record index record position information paired with the largest key item value among the key item values smaller than the jth key item value. The second record index record position information is the record index record position information paired with the smallest key item value among the key item values larger than the jth key item value. Further, here, the search unit 132 may acquire one record / index record position information paired with the j-th key item value from the secondary index.

(ステップ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 search unit 132 uses the first record index record position information and the second record index record position information. The record index record between the record index record position information and the record index record of (for example, binary search or sequential search) is searched, and the jth key item value is detected. Next, the search unit 132 acquires the record position information paired with the j-th key item value from the record index.

また、ステップS1107で一つのレコード・インデックスレコード位置情報を取得した場合、検索部132は、当該レコード・インデックスレコード位置情報と対になるレコード位置情報を、レコード・インデックスから取得する。 Further, when one record index record position information is acquired in step S1107, the search unit 132 acquires the record position information paired with the record index record position information from the record index.

(ステップS1109)検索部132は、カウンタkに1を代入する。 (Step S1109) The search unit 132 substitutes 1 for the counter k.

(ステップS1110)検索部132は、i番目のソース識別子に対応するk番目の属性識別子が存在するか否かを判断する。k番目の属性識別子が存在する場合はステップS1111に行き、存在しない場合はステップS1116に行く。 (Step S1110) The search unit 132 determines whether or not the k-th attribute identifier corresponding to the i-th source identifier exists. If the k-th attribute identifier exists, the process goes to step S1111. If the k-th attribute identifier does not exist, the process goes to step S1116.

(ステップS1111)検索部132は、i番目のソース識別子に対応する配列ラベル・インデックスを参照し、k番目の属性識別子と対になる属性順番情報を、当該配列ラベル・インデックスから取得する。 (Step S1111) The search unit 132 refers to the array label index corresponding to the i-th source identifier, and acquires the attribute order information paired with the k-th attribute identifier from the array label index.

(ステップS1112)検索部132は、i番目のソース識別子に対応する配列インデックスを参照し、当該配列インデックス内に、ステップS1111で取得した属性順番情報と一致する属性順番情報が存在するか否かを判断する。属性順番情報と一致する属性順番情報が存在する場合は、検索部132は、当該属性順番情報と対になり、かつj番目のキー項目値と対になる属性位置情報を当該配列インデックスから取得する。 (Step S1112) The search unit 132 refers to the array index corresponding to the i-th source identifier, and determines whether or not the attribute order information matching the attribute order information acquired in step S1111 exists in the array index. to decide. When the attribute order information that matches the attribute order information exists, the search unit 132 acquires the attribute position information that is paired with the attribute order information and is paired with the jth key item value from the array index. ..

属性順番情報と一致する属性順番情報が存在しない場合は、検索部132は、当該属性順番情報を挟む2つの属性順番情報を取得する。つまり、検索部132は、当該属性順番情報より小さい値の属性順番情報であり、当該属性順番情報との差が最も小さい第一の属性順番情報を取得する。また、検索部132は、当該属性順番情報より大きい値の属性順番情報であり、当該属性順番情報との差が最も小さい第二の属性順番情報を取得する。なお、第一の属性順番情報と第二の属性順番情報とは、当該属性順番情報を挟む情報である。次に、検索部132は、第一の属性順番情報と対になり、かつj番目のキー項目値と対になる属性位置情報を当該配列インデックスから取得する。また、検索部132は、第二の属性順番情報と対になり、かつj番目のキー項目値と対になる属性位置情報を当該配列インデックスから取得する。 If there is no attribute order information that matches the attribute order information, the search unit 132 acquires two attribute order information sandwiching the attribute order information. That is, the search unit 132 acquires the first attribute order information having a value smaller than the attribute order information and having the smallest difference from the attribute order information. Further, the search unit 132 acquires the second attribute order information having a value larger than the attribute order information and having the smallest difference from the attribute order information. The first attribute order information and the second attribute order information are information sandwiching the attribute order information. Next, the search unit 132 acquires the attribute position information that is paired with the first attribute order information and is paired with the jth key item value from the array index. Further, the search unit 132 acquires the attribute position information that is paired with the second attribute order information and is paired with the jth key item value from the array index.

(ステップS1113)ステップS1112で一つの属性位置情報を取得した場合は、検索部132は、ステップS1108で取得したj番目のキー項目値と対になるレコード位置情報が示す位置のレコードの中から、ステップS1112で取得した一つの属性位置情報が示す位置の属性値を、i番目のソース識別子で識別されるデータソースから取得する。 (Step S1113) When one attribute position information is acquired in step S1112, the search unit 132 selects the record at the position indicated by the record position information paired with the jth key item value acquired in step S1108. The attribute value of the position indicated by one attribute position information acquired in step S1112 is acquired from the data source identified by the i-th source identifier.

また、ステップS1112で2つの属性位置情報を取得した場合は、検索部132は、ステップS1108で取得したj番目のキー項目値と対になるレコード位置情報が示す位置のレコードの中から、2つの各属性位置情報が特定する位置の属性値を、例えば、シーケンシャルサーチにより検査し、k番目の属性識別子と対になる属性順番情報の順番に存在する属性値を、i番目のソース識別子で識別されるデータソースから取得する。 Further, when the two attribute position information is acquired in step S1112, the search unit 132 uses the two records at the positions indicated by the record position information paired with the j-th key item value acquired in step S1108. The attribute value of the position specified by each attribute position information is inspected by, for example, sequential search, and the attribute value existing in the order of the attribute order information paired with the kth attribute identifier is identified by the i-th source identifier. Obtained from a data source.

(ステップS1114)検索部132は、j番目のキー項目値とk番目の属性識別子とに対応付けて、ステップS1113で取得した属性値を、図示しないバッファに一時蓄積する。 (Step S1114) The search unit 132 temporarily stores the attribute value acquired in step S1113 in a buffer (not shown) in association with the j-th key item value and the k-th attribute identifier.

(ステップS1115)検索部132は、カウンタkを1、インクリメントする。ステップ1110に戻る。 (Step S1115) The search unit 132 increments the counter k by 1. Return to step 1110.

(ステップS1116)検索部132は、カウンタjを1、インクリメントする。ステップ1106に戻る。 (Step S1116) The search unit 132 increments the counter j by 1. Return to step 1106.

(ステップS1117)検索部132は、カウンタiを1、インクリメントする。ステップ1104に戻る。 (Step S1117) The search unit 132 increments the counter i by 1. Return to step 1104.

(ステップS1118)検索部132は、図示しないバッファに一時蓄積された1以上の属性値を含む検索結果を構成する。上位処理にリターンする。なお、検索結果の構成方法は問わない。検索結果に含まれる属性値に対応する属性識別子は、属性値に対応付くことが明示される態様で、検索結果に含まれることは好適である。また、検索結果は、j番目のキー項目値を含むことは好適である。 (Step S1118) The search unit 132 constitutes a search result including one or more attribute values temporarily stored in a buffer (not shown). Return to higher-level processing. The method of constructing the search results does not matter. It is preferable that the attribute identifier corresponding to the attribute value included in the search result is included in the search result in a manner in which it is clearly indicated that the attribute value corresponds to the attribute value. Further, it is preferable that the search result includes the j-th key item value.

次に、データソース管理装置2の動作例について説明する。データソース管理装置2は、検索装置1からのアクセスに応じて、データソース格納部111のデータソースを読み出し、検索装置1に送信する。なお、かかる場合、データソース管理装置2は、データソースの一部のみを読み出し、送信しても良い。 Next, an operation example of the data source management device 2 will be described. The data source management device 2 reads out the data source of the data source storage unit 111 and transmits it to the search device 1 in response to the access from the search device 1. In such a case, the data source management device 2 may read and transmit only a part of the data source.

次に、端末装置3の動作例について説明する。端末装置3の端末受付部32は、検索条件を受け付ける。次に、端末処理部33は、送信する検索条件を構成する。次に、端末送信部34は、当該検索条件を検索装置1に送信する。そして、検索条件の送信に応じて、端末受信部35は、検索結果を受信する。次に、端末処理部33は、受信された検索結果を用いて、出力する検索結果を構成する。次に、端末出力部36は、当該検索結果を出力する。 Next, an operation example of the terminal device 3 will be described. The terminal reception unit 32 of the terminal device 3 accepts search conditions. Next, the terminal processing unit 33 configures the search condition to be transmitted. Next, the terminal transmission unit 34 transmits the search condition to the search device 1. Then, in response to the transmission of the search condition, the terminal receiving unit 35 receives the search result. Next, the terminal processing unit 33 configures the search result to be output by using the received search result. Next, the terminal output unit 36 outputs the search result.

以下、本実施の形態における検索システム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 source storage unit 111 of the search device 1 or the data source storage unit 111 of the data source management device 2. It is assumed that it has been done. It is assumed that each of the three data sources is one file here.

そして、図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 index generation unit 131 of the search device 1 will be described with reference to FIG. Here, it is assumed that the key item is "PID".
(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 index generation unit 1315 accesses the file "data source 1301" and acquires the source identifier (here, the file name) "file1" of the data source 1301. Further, the source index generation unit 1315 opens the data source 1301. Next, the source index generation unit 1315 acquires the minimum key item value "029" which is the minimum PID and the maximum key item value "451" which is the maximum PID among the PIDs of the data source 1301. When the PIDs are sorted in the data source 1301, the source index generation unit 1315 acquires the first PID and the last PID. If the PIDs are not sorted, the source index generator 1315 sequentially inspects the PIDs and obtains the minimum key item value and the maximum key item value from the data source 1301.

また、ソース・インデックス生成部1315は、データソース1301のラベル・レコードの属性値識別子の中の最小属性識別子「TestA」と最大属性識別子「TestE」とを取得する。なお、データソース1301において、属性識別子がソートされている場合は、ソース・インデックス生成部1315は、ラベル・レコードから、最初の属性識別子と最後の属性識別子とを取得する。属性識別子がソートされていない場合は、ソース・インデックス生成部1315は、シーケンシャルに属性識別子を検査し、最小属性識別子と最大属性識別子とをラベル・レコードから取得する。 Further, the source index generation unit 1315 acquires the minimum attribute identifier "TestA" and the maximum attribute identifier "TestE" among the attribute value identifiers of the label record of the data source 1301. When the attribute identifiers are sorted in the data source 1301, the source index generation unit 1315 acquires the first attribute identifier and the last attribute identifier from the label record. If the attribute identifiers are not sorted, the source index generator 1315 sequentially inspects the attribute identifiers and obtains the minimum attribute identifier and the maximum attribute identifier from the label record.

次に、ソース・インデックス生成部1315は、取得したソース識別子、最小キー項目値、最大キー項目値、最小属性識別子、および最大属性識別子から、ソース・インデックスレコード「file1,029,451,TestA,TestE」を構成し、ソース・インデックス格納部1125に蓄積する。 Next, the source index generation unit 1315 obtains the source index record “file1,029,451, TestA, TestE” from the acquired source identifier, minimum key item value, maximum key item value, minimum attribute identifier, and maximum attribute identifier. , And accumulates in the source index storage unit 1125.

ソース・インデックス生成部1315は、他のデータソース(ファイル「file2」「file3」等)に対しても、同様に、ソース・インデックスレコードを構成し、ソース・インデックス格納部1125に蓄積する。 Similarly, the source index generation unit 1315 constitutes a source index record for other data sources (files “file2”, “file3”, etc.) and stores them in the source index storage unit 1125.

以上の処理により、図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 index generation unit 1312 accesses the file "data source 1301" and acquires the source identifier (file name) "file1" of the data source 1301. Further, the source index generation unit 1315 opens the data source 1301.

次に、配列ラベル・インデックス生成部1312は、データソース1301のラベル・インデックス内に配置されている順に、属性識別子をその順番である属性順番情報と共に取得する。そして、属性識別子ごとに、属性識別子と属性順番情報との組である配列ラベル・インデックスレコードを構成する。 Next, the array label index generation unit 1312 acquires the attribute identifiers in the order in which they are arranged in the label index of the data source 1301 together with the attribute order information in that order. Then, for each attribute identifier, an array label index record which is a set of the attribute identifier and the attribute order information is configured.

次に、配列ラベル・インデックス生成部1312は、属性識別子をキーとして配列ラベル・インデックスレコードを、例えば、昇順にソートする。そして、配列ラベル・インデックス生成部1312は、ソートされた配列ラベル・インデックスレコードを、配列ラベル・インデックス格納部1122に蓄積する。 Next, the array label index generation unit 1312 sorts the array label index records using the attribute identifier as a key, for example, in ascending order. Then, the array label index generation unit 1312 stores the sorted array label index records in the array label index storage unit 1122.

配列ラベル・インデックス生成部1312は、他のデータソース(ファイル「file2」「file3」等)に対しても、同様に、配列ラベル・インデックスを構成し、配列ラベル・インデックス格納部1122に蓄積する。 The array label index generation unit 1312 similarly forms an array label index for other data sources (files “file2”, “file3”, etc.) and stores them in the array label index storage unit 1122.

以上の処理により、図13の1303の配列ラベル・インデックスが配列ラベル・インデックス格納部1122に蓄積される。
(3)配列インデックス生成処理
By the above processing, the array label index of 1303 in FIG. 13 is accumulated in the array label index storage unit 1122.
(3) Array index generation process

配列インデックス生成部1311は、ファイル「データソース1301」にアクセスし、データソース1301のソース識別子(ファイル名)「file1」を取得する。また、ソース・インデックス生成部1315は、データソース1301をオープンする。 The array index generation unit 1311 accesses the file "data source 1301" and acquires the source identifier (file name) "file1" of the data source 1301. Further, the source index generation unit 1315 opens the data source 1301.

配列インデックス生成部1311は、例えば、1番目、4番目、7番目といった具合に、所定数(ここでは、3つ)飛ばしで、データソース1301の属性順番情報を取得する。また、配列インデックス生成部1311は、例えば、レコードごとに、第二デリミタを検出しながら、取得した各属性順番情報の順番の属性値まで、ファイルポインタを進め、例えば、その順番の属性値のレコード内でのオフセットである属性位置情報を取得する。次に、配列インデックス生成部1311は、データソース1301のレコードごとに、レコードのPIDに対応付けて、属性順番情報が示す順番に、取得した属性位置情報を連結し、配列インデックスレコードを構成する。 The array index generation unit 1311 acquires the attribute order information of the data source 1301 by skipping a predetermined number (here, three), for example, the first, fourth, seventh, and so on. Further, the array index generation unit 1311 advances the file pointer to the attribute value in the order of each acquired attribute order information while detecting the second delimiter for each record, for example, the record of the attribute value in that order. Gets the attribute position information that is the offset within. Next, the array index generation unit 1311 concatenates the acquired attribute position information in the order indicated by the attribute order information in association with the PID of the record for each record of the data source 1301 to form an array index record.

次に、配列インデックス生成部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 index storage unit 1121.

また、配列インデックス生成部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 index storage unit 1121.

以上の処理により、図13の1304の配列インデックスが配列インデックス格納部1121に蓄積される。
(4)レコード・インデックス生成処理
By the above processing, the array index of 1304 in FIG. 13 is accumulated in the array index storage unit 1121.
(4) Record index generation process

レコード・インデックス生成部1313は、ファイル「データソース1301」にアクセスし、データソース1301のソース識別子(ファイル名)「file1」を取得する。また、ソース・インデックス生成部1315は、データソース1301をオープンする。 The record index generation unit 1313 accesses the file “data source 1301” and acquires the source identifier (file name) “file1” of the data source 1301. Further, the source index generation unit 1315 opens the data source 1301.

レコード・インデックス生成部1313は、データソース1301におけるレコードごとに、キー項目値と、データソース1301内におけるレコードのオフセットであるレコード位置情報とを、データソース1301から取得し、レコード・インデックスレコードを構成する。 The record index generation unit 1313 acquires the key item value and the record position information which is the offset of the record in the data source 1301 from the data source 1301 for each record in the data source 1301 and constitutes the record index record. do.

そして、レコード・インデックス生成部1313は、キー項目値をキーとして、例えば、昇順に、キー項目値とレコード位置情報との組をソートする。次に、レコード・インデックス生成部1313は、レコード・インデックスにおける各レコード・インデックスレコードの位置情報(Pos.)を取得する。かかる位置情報(Pos.)は、レコード・インデックスレコード位置情報である。 Then, the record index generation unit 1313 sorts the set of the key item value and the record position information in ascending order, for example, using the key item value as a key. Next, the record index generation unit 1313 acquires the position information (Pos.) Of each record index record in the record index. Such position information (Pos.) Is record index record position information.

なお、ここで、レコード・インデックスレコード位置情報(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 index generation unit 1313 stores the record index record for each record in the data source 1301 in the record index storage unit 1123.

また、レコード・インデックス生成部1313は、他のデータソース(ファイル「file2」「file3」等)に対しても、同様に、レコード・インデックスを構成し、レコード・インデックス格納部1123に蓄積する。 Further, the record index generation unit 1313 similarly forms a record index for other data sources (files “file2”, “file3”, etc.) and stores the record index in the record index storage unit 1123.

以上の処理により、図13の1305のレコード・インデックスがレコード・インデックス格納部1123に蓄積される。
(5)2次インデックス生成処理
By the above processing, the record index of 1305 of FIG. 13 is accumulated in the record index storage unit 1123.
(5) Secondary index generation process

2次インデックス生成部1314は、レコード・インデックス格納部1123のレコード・インデックスを読み出す。 The secondary index generation unit 1314 reads the record index of the record index storage unit 1123.

次に、2次インデックス生成部1314は、例えば、1番目、4番目、7番目といった具合に、所定数(ここでは、3つ)飛ばしで、レコード・インデックスレコードに含まれるキー項目値(ここでは、PID)とレコード・インデックスレコード位置情報(Pos.)との組である2次インデックスレコードを取得する。 Next, the secondary index generation unit 1314 skips a predetermined number (here, three), for example, the first, fourth, seventh, and so on, and the key item value (here, here) included in the record index record. , PID) and the record index record position information (Pos.) To acquire the secondary index record which is a set.

次に、2次インデックス生成部1314は、取得した2次インデックスレコードを2次インデックス格納部1124に追記する。なお、2次インデックスにおいて、PIDをキーとして、2次インデックスレコードはソートされている。 Next, the secondary index generation unit 1314 adds the acquired secondary index record to the secondary index storage unit 1124. In the secondary index, the secondary index records are sorted using the PID as a key.

また、2次インデックス生成部1314は、他のデータソース(ファイル「file2」「file3」等)に対しても、同様に、2次インデックスを構成し、2次インデックス格納部1124に蓄積する。 Further, the secondary index generation unit 1314 similarly forms a secondary index for other data sources (files “file2”, “file3”, etc.) and stores them in the secondary index storage unit 1124.

以上の処理により、図13の1306の2次インデックスが2次インデックス格納部1124に蓄積される。 By the above processing, the secondary index of 1306 in FIG. 13 is accumulated in the secondary index storage unit 1124.

(具体例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 source storage unit 111 of the data source management device 2 or the data source storage unit 111 of the search device 1.

かかる場合、ユーザは、端末装置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 terminal device 3. It is assumed that "Test" of "PID, Age, Test, TestValue" is an attribute value identifier, and "TestValue" is an attribute value.

すると、端末装置3の端末受付部32は、かかる検索条件を受け付ける。次に、端末処理部33は、送信する検索条件を構成する。次に、端末送信部34は、当該検索条件を検索装置1に送信する。 Then, the terminal reception unit 32 of the terminal device 3 accepts such a search condition. Next, the terminal processing unit 33 configures the search condition to be transmitted. Next, the terminal transmission unit 34 transmits the search condition to the search device 1.

次に、検索装置1の条件受付部121は、検索条件「Select PID,Age,Test,TestValue from データソース where PID=155 AND Test=TestC」を受信する。 Next, the condition receiving unit 121 of the search device 1 receives the search condition "Select PID, Age, Test, TestValue from data source where PID = 155 AND Test = TestC".

次に、検索装置1の検索部132は、以下のように「PID=155 AND Test=TestC」に合致するレコードの中の「PID」、「Age」、属性識別子「TestC」、およびTestCの属性値を取得する。 Next, the search unit 132 of the search device 1 has the attributes of "PID", "Age", the attribute identifier "TestC", and the TestC in the record matching "PID = 155 AND Test = TestC" as follows. Get the value.

つまり、まず、検索部132は、検索条件に含まれる「PID=155」を取得する。また、検索部132は、検索条件に含まれる属性値識別子「TestC」を取得する(図14の1406)。 That is, first, the search unit 132 acquires "PID = 155" included in the search condition. Further, the search unit 132 acquires the attribute value identifier "TestC" included in the search condition (1406 in FIG. 14).

次に、検索部132は、ソース・インデックス(1402)を参照し、取得した「PID=155」を、Min(最小キー項目値)とMax(最大キー項目値)の間に挟む、ソース・インデックスレコードを検知し、当該ソース・インデックスレコードが有するソース識別子「File1」を取得する。 Next, the search unit 132 refers to the source index (1402) and sandwiches the acquired "PID = 155" between Min (minimum key item value) and Max (maximum key item value). The record is detected and the source identifier "File1" possessed by the source index record is acquired.

また、検索部132は、ソース識別子「File1」に対応する2次インデックス(1403)を参照し、「PID=155」を間に挟むPID「029」と「236」とを検知し、当該PID「029」と「236」と対になるレコード・インデックスレコード位置情報(1)と(151)とを、2次インデックス(1403)から取得する。 Further, the search unit 132 refers to the secondary index (1403) corresponding to the source identifier "File1", detects the PIDs "029" and "236" having "PID = 155" in between, and detects the PID "029" and "236". The record index record position information (1) and (151) paired with "029" and "236" are acquired from the secondary index (1403).

次に、検索部132は、ソース識別子「File1」に対応するレコード・インデックス(1404)を参照し、レコード・インデックスレコード位置情報(1)と(151)の間を、例えば、「PID=155」をキーとして二分探索し、「PID=155」を含むレコード・インデックスレコードを検出する。そして、検索部132は、当該レコード・インデックスレコードから、「PID=155」と対になるレコード位置情報(241)を取得する。なお、検索部132は、二分探索ではなく、シーケンシャルサーチして、「PID=155」を含むレコード・インデックスレコードを検出しても良い。 Next, the search unit 132 refers to the record index (1404) corresponding to the source identifier “File1”, and sets between the record index record position information (1) and (151), for example, “PID = 155”. Is used as a key for a binary search, and a record index record containing "PID = 155" is detected. Then, the search unit 132 acquires the record position information (241) paired with "PID = 155" from the record index record. The search unit 132 may detect a record index record including "PID = 155" by performing a sequential search instead of a binary search.

次に、検索部132は、取得したレコード位置情報(241)と、レコード・インデックスレコード位置情報(101)とを、図示しないバッファに一時蓄積する。 Next, the search unit 132 temporarily stores the acquired record position information (241) and the record index record position information (101) in a buffer (not shown).

次に、検索部132は、ソース識別子「File1」に対応する配列ラベル・インデックス(1405)を参照し、検索条件に含まれる属性識別子「TestC」をキーとして、当該配列ラベル・インデックスを二分探索し、属性識別子「TestC」を検知し、当該属性識別子「TestC」と対になる属性順番情報(3)を取得する。なお、ここで、検索部132は、二分探索ではなく、シーケンシャルサーチして、属性順番情報(3)を取得しても良い。 Next, the search unit 132 refers to the array label index (1405) corresponding to the source identifier "File1", and uses the attribute identifier "TestC" included in the search condition as a key to perform a binary search for the array label index. , Detects the attribute identifier "TestC" and acquires the attribute order information (3) paired with the attribute identifier "TestC". Here, the search unit 132 may acquire the attribute order information (3) by performing a sequential search instead of a binary search.

次に、検索部132は、ソース識別子「File1」に対応する配列インデックスを参照し、配列インデックスの中の、属性順番情報(3)を間に挟む、第一の属性順番情報(1)と第二の属性順番情報(4)とを取得する。 Next, the search unit 132 refers to the array index corresponding to the source identifier "File1", and sandwiches the attribute order information (3) in the array index with the first attribute order information (1) and the first. Acquire the second attribute order information (4).

次に、検索部132は、図示しないバッファのレコード・インデックスレコード位置情報(101)に対応し、第一の属性順番情報(1)に対応する属性値位置情報(54)をレコード・インデックスから取得し、図示しないバッファに一時蓄積する。また、検索部132は、当該レコード・インデックスレコード位置情報(101)に対応し、第二の属性順番情報(4)に対応する属性値位置情報(84)をレコード・インデックスから取得し、図示しないバッファに一時蓄積する。 Next, the search unit 132 acquires the attribute value position information (54) corresponding to the first attribute order information (1) from the record index corresponding to the record index record position information (101) of the buffer (not shown). However, it is temporarily stored in a buffer (not shown). Further, the search unit 132 acquires the attribute value position information (84) corresponding to the record index record position information (101) and the second attribute order information (4) from the record index, and is not shown. Temporarily accumulate in the buffer.

次に、検索部132は、ソース識別子「File1」で識別されるデータソースにアクセスし、当該ファイルをオープンする。 Next, the search unit 132 accesses the data source identified by the source identifier "File1" and opens the file.

次に、検索部132は、図示しないバッファから、レコード位置情報(241)と属性値位置情報(54)と属性値位置情報(84)とを取得し、当該レコード位置情報(241)が特定する位置のレコードの中の、属性値位置情報(54)と属性値位置情報(84)との間の属性値であり、属性順番情報(3)に対応する属性値「0.381」を、当該ファイルから取得する。また、検索部132は、レコード位置情報(241)が特定する位置のレコードの中の、Age「62」を当該ファイルから取得する。 Next, the search unit 132 acquires the record position information (241), the attribute value position information (54), and the attribute value position information (84) from a buffer (not shown), and the record position information (241) specifies the record position information (241). The attribute value "0.381", which is an attribute value between the attribute value position information (54) and the attribute value position information (84) in the position record and corresponds to the attribute order information (3), is the relevant. Get from the file. Further, the search unit 132 acquires Age "62" from the file in the record at the position specified by the record position information (241).

そして、検索部132は、PID「155」、Age「62」、属性値識別子「TestC」、属性値「0.381」を有する検索結果を構成する。 Then, the search unit 132 constitutes a search result having a PID "155", an Age "62", an attribute value identifier "TestC", and an attribute value "0.381".

次に、結果出力部141は、構成された検索結果を、端末装置3に送信する。なお、かかる検索結果は、例えば、図14の1407である。 Next, the result output unit 141 transmits the configured search result to the terminal device 3. The search result is, for example, 1407 in FIG.

次に、端末装置3の端末受信部35は、検索結果を受信する。次に、端末処理部33は、受信された検索結果を用いて、出力する検索結果を構成する。次に、端末出力部36は、当該検索結果を出力する。 Next, the terminal receiving unit 35 of the terminal device 3 receives the search result. Next, the terminal processing unit 33 configures the search result to be output by using the received search result. Next, the terminal output unit 36 outputs the search result.

(具体例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 source storage unit 111 of the data source management device 2 or the data source storage unit 111 of the search device 1.

かかる場合、ユーザは、端末装置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 terminal device 3.

すると、端末装置3の端末受付部32は、かかる検索条件を受け付ける。次に、端末処理部33は、送信する検索条件を構成する。次に、端末送信部34は、当該検索条件を検索装置1に送信する。 Then, the terminal reception unit 32 of the terminal device 3 accepts such a search condition. Next, the terminal processing unit 33 configures the search condition to be transmitted. Next, the terminal transmission unit 34 transmits the search condition to the search device 1.

次に、検索装置1の条件受付部121は、検索条件「Select PID,Age,Test,TestValue from データソース where PID=155 AND Test=TestC」を受信する。 Next, the condition receiving unit 121 of the search device 1 receives the search condition "Select PID, Age, Test, TestValue from data source where PID = 155 AND Test = TestC".

次に、検索装置1の検索部132は、以下のように「PID=155 AND Test=TestC」に合致するレコードの中の「PID」、「Age」、属性識別子「TestC」、およびTestCの属性値を取得する。 Next, the search unit 132 of the search device 1 has the attributes of "PID", "Age", the attribute identifier "TestC", and the TestC in the record matching "PID = 155 AND Test = TestC" as follows. Get the value.

つまり、まず、検索部132は、検索条件に含まれる「PID=155」を取得する。また、検索部132は、検索条件に含まれる属性値識別子「TestC」を取得する。 That is, first, the search unit 132 acquires "PID = 155" included in the search condition. Further, the search unit 132 acquires the attribute value identifier "TestC" included in the search condition.

次に、検索部132は、ソース・インデックス(1302)を参照し、取得した「PID=155」および「TestC」に対応するソース識別子「File1」を取得する。 Next, the search unit 132 refers to the source index (1302) and acquires the source identifier “File1” corresponding to the acquired “PID = 155” and “TestC”.

その後、検索部132は、具体例2で説明した処理と同様の処理により、検索結果を得る。 After that, the search unit 132 obtains a search result by the same process as that described in the second embodiment.

次に、結果出力部141は、構成された検索結果を、端末装置3に送信する。なお、かかる検索結果は、例えば、図13の1307である。 Next, the result output unit 141 transmits the configured search result to the terminal device 3. The search result is, for example, 1307 in FIG.

次に、検索条件の送信に応じて、端末受信部35は、検索結果を受信する。次に、端末処理部33は、受信された検索結果を用いて、出力する検索結果を構成する。次に、端末出力部36は、当該検索結果を出力する。 Next, in response to the transmission of the search condition, the terminal receiving unit 35 receives the search result. Next, the terminal processing unit 33 configures the search result to be output by using the received search result. Next, the terminal output unit 36 outputs the search result.

以上、本実施の形態によれば、大きいデータサイズのデータソースから、所望の属性値を高速に検索できる。 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 search device 1 in the present embodiment is the following program. That is, this program has a data source storage unit that stores a data source containing two or more records having a key item value and two or more attribute values, and one or more records out of two or more records. And for each one or more attributes of each record, a search condition that includes an attribute identifier for a computer that can access the array index storage unit that stores the array index that has the attribute position information that identifies the position where the attribute value exists. And the attribute position information corresponding to the attribute identifier of the search condition are acquired from the array index, and the attribute value corresponding to the attribute identifier of the search condition is used by using the attribute position information. Is a program for functioning as a search unit acquired from the data source and a result output unit that outputs a search result including the attribute value acquired by the search unit.

(実施の形態2)
本実施の形態において、複数のレコード・インデックスを用いて、データソースに対して情報検索を行う検索装置を具備する検索システムについて説明する。
(Embodiment 2)
In the present embodiment, a search system including a search device for searching information on a data source using a plurality of record indexes will be described.

また、本実施の形態において、レコード・インデックスを含む2種類以上のインデックスを用いて、データソースに対して情報検索を行う検索装置を具備する検索システムについて説明する。なお、2種類以上のインデックスは、レコード・インデックスに加えて、例えば、配列インデックス、配列ラベル・インデックス、2次インデックス、ソース・インデックスのうちの1種類以上である。 Further, in the present embodiment, a search system including a search device for searching information on a data source using two or more types of indexes including a record index will be described. In addition to the record index, the two or more types of indexes are, for example, one or more of an array index, an array label index, a secondary index, and a source index.

さらに、本実施の形態において、複数のレコード・インデックスを生成する検索装置を具備する検索システムについて説明する。 Further, in the present embodiment, a search system including a search device that generates a plurality of record indexes 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 search device 4, one or more data source management devices 2, and one or more terminal devices 3.

検索装置4は、データソースから情報を検索する装置である。検索装置4は、例えば、いわゆるサーバであり、例えば、クラウドサーバ、ASPサーバ等である。なお、検索装置4の種類は問わない。検索装置4は、外部の装置であるデータソース管理装置2に格納されているデータソースから情報を検索しても良いし、検索装置4内部のデータソースから情報を検索しても良い。なお、1または2以上の各データソース管理装置2は、通常、検索装置4とは異なる装置である。 The search device 4 is a device for searching information from a data source. The search device 4 is, for example, a so-called server, for example, a cloud server, an ASP server, or the like. The type of the search device 4 does not matter. The search device 4 may search for information from a data source stored in a data source management device 2 which is an external device, or may search for information from a data source inside the search device 4. In addition, each data source management device 2 of 1 or 2 or more is usually a device different from the search device 4.

さらに、検索装置4と1以上のデータソース管理装置2とは、インターネットやLAN等のネットワークにより、通信可能である。また、検索装置4と端末装置3とは、インターネットやLAN等のネットワークにより、通信可能である。 Further, the search device 4 and the data source management device 2 of 1 or more can communicate with each other via a network such as the Internet or a LAN. Further, the search device 4 and the terminal device 3 can communicate with each other via a network such as the Internet or a LAN.

図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 search device 4.

検索装置4は、格納部41、受付部12、処理部43、および出力部44を備える。格納部41は、インデックス格納部411を備える。格納部41は、データソース格納部111を備えても良い。インデックス格納部411は、配列インデックス格納部1121、配列ラベル・インデックス格納部1122、レコード・インデックス格納部4113、2次インデックス格納部1124、およびソース・インデックス格納部1125を備える。受付部12は、条件受付部121を備える。処理部43は、インデックス生成部431、検索部432、およびインデックス更新部433を備える。インデックス生成部431は、配列インデックス生成部1311、配列ラベル・インデックス生成部1312、レコード・インデックス生成部4313、2次インデックス生成部1314、およびソース・インデックス生成部1315を備える。検索部432は、ソース決定手段4321、レコード・インデックス決定手段4322、検索手段4323を備える。出力部44は、および結果出力部441を備える。 The search device 4 includes a storage unit 41, a reception unit 12, a processing unit 43, and an output unit 44. The storage unit 41 includes an index storage unit 411. The storage unit 41 may include a data source storage unit 111. The index storage unit 411 includes an array index storage unit 1121, an array label index storage unit 1122, a record index storage unit 4113, a secondary index storage unit 1124, and a source index storage unit 1125. The reception unit 12 includes a condition reception unit 121. The processing unit 43 includes an index generation unit 431, a search unit 432, and an index update unit 433. The index generation unit 431 includes an array index generation unit 1311, an array label index generation unit 1312, a record index generation unit 4313, a secondary index generation unit 1314, and a source index generation unit 1315. The search unit 432 includes a source determination unit 4321, a record index determination unit 4322, and a search unit 4323. The output unit 44 includes and a result output unit 441.

なお、検索装置4は、複数のレコード・インデックスを生成したり、複数のレコード・インデックスを用いて情報を検索したりできる以外、検索装置1と同様の機能を有することは好適である。 It is preferable that the search device 4 has the same function as the search device 1 except that it can generate a plurality of record indexes and search for information using a plurality of record indexes.

データソース管理装置2は、データソース格納部111を備える。 The data source management device 2 includes a data source storage unit 111.

端末装置3は、端末格納部31、端末受付部32、端末処理部33、端末送信部34、端末受信部35、および端末出力部36を備える。 The terminal device 3 includes a terminal storage unit 31, a terminal reception unit 32, a terminal processing unit 33, a terminal transmission unit 34, a terminal reception unit 35, and a terminal output unit 36.

検索装置4を構成する格納部41には、各種の情報が格納される。各種の情報は、例えば、上述した1以上の種類のインデックス、データソース、1以上の検索条件である。 Various types of information are stored in the storage unit 41 that constitutes the search device 4. The various information is, for example, one or more types of indexes, data sources, and one or more search conditions described above.

なお、1以上の検索条件は、データソースに対応付いている。1以上の検索条件は、ユーザが、情報の検索のために入力した検索条件である。 Note that one or more search conditions correspond to the data source. The one or more search conditions are search conditions entered by the user for searching for information.

インデックス格納部411には、上述した1以上の種類のインデックスが格納される。なお、インデックス格納部411には、2以上のレコード・インデックスが格納される。また、インデックス格納部411の各インデックスは、2次インデックス、BTREE、転置インデックス等のインデックス構造を有していても良い。 The index storage unit 411 stores one or more types of indexes described above. Two or more record indexes are stored in the index storage unit 411. Further, each index of the index storage unit 411 may have an index structure such as a secondary index, a BTREE, or an inverted index.

配列インデックス格納部1121には、配列インデックスが格納される。配列インデックスは、2以上の各レコード・インデックスごとに存在していても良い。つまり、配列インデックス格納部1121には、2以上の配列インデックスが格納されていても良い。ただし、配列インデックス格納部1121には、一つの配列インデックスのみが格納されていることは好適である。かかる一つの配列インデックスは、2以上のいずれのレコード・インデックスにも対応する情報である。 The array index is stored in the array index storage unit 1121. The array index may be present for each of the two or more record indexes. That is, two or more array indexes may be stored in the array index storage unit 1121. However, it is preferable that only one array index is stored in the array index storage unit 1121. Such one array index is information corresponding to any of two or more record indexes.

レコード・インデックス格納部4113には、2以上のレコード・インデックスが格納される。レコード・インデックス格納部1123には、通常、データソースごとに、1または2以上のレコード・インデックスが格納される。一のデータソースに対応するレコード・インデックスが2以上、存在する場合、かかる2以上の各レコード・インデックスは、各々、異なるキー項目の組み合わせに対応するレコード・インデックスである。 Two or more record indexes are stored in the record index storage unit 4113. The record index storage unit 1123 usually stores one or more record indexes for each data source. If there are two or more record indexes corresponding to one data source, each of the two or more record indexes is a record index corresponding to a different key item combination.

2以上の各レコード・インデックスは、1以上のレコード・インデックスレコードを有する。レコード・インデックスレコードは、1以上のキー項目値とレコード位置情報の組の集合である。
2以上のレコード・インデックスが一つの配列インデックスに対応する場合には、レコード・インデックスレコードは、1以上のキー項目値と配列インデックスのレコードの位置情報の組の集合とし、配列インデックスの各レコードがデータソースのレコードに対応するようにレコード位置情報と持つように構成しても良い。かかる場合も、レコード・インデックスレコードには、データソースのレコード位置情報が対応付いているので、レコード・インデックスレコードがレコード位置情報を有する、と考えても良い。
また、レコード・インデックスレコードは、データソースのレコードに対応する。かかるレコード・インデックスレコードが有する1以上のキー項目値は、1以上のキー項目の組み合わせに対応する。1以上のキー項目の組み合わせとは、一つのキー項目、または2以上のキー項目の組み合わせである。
Each of the two or more record indexes has one or more record index records. A record index record is a set of one or more key item values and record position information.
If two or more record indexes correspond to one array index, the record index record is a set of one or more key field values and the position information of the records in the array index, and each record in the array index is It may be configured to have the record position information so as to correspond to the record of the data source. Even in such a case, since the record index record is associated with the record position information of the data source, it may be considered that the record index record has the record position information.
Also, record index records correspond to records in the data source. One or more key item values possessed by such a record index record correspond to a combination of one or more key items. A combination of one or more key items is one key item or a combination of two or more key items.

レコード・インデックスの中のレコード・インデックスレコードは、1以上のキー項目をキーとして、昇順または降順にソートされていることは好適である。また、レコード・インデックスの中のレコード・インデックスレコードは、対応するデータソースが有する全レコードの数だけ存在することは好適である。さらに、レコード・インデックスが2以上のキー項目に対応する場合、当該2以上のキー項目は順序性を有する。 It is preferable that the record index records in the record index are sorted in ascending or descending order with one or more key items as keys. Also, it is preferable that there are as many record index records in the record index as there are all records in the corresponding data source. Further, if the record index corresponds to two or more key items, the two or more key items are ordered.

レコード・インデックス格納部4113には、2以上の各レコード・インデックスに対応するレコード・インデックスのスキーマ情報が格納されていることは好適である。かかるレコード・インデックスのスキーマ情報は、通常、レコード・インデックスが有する1以上の各キー項目値に対応するキー項目識別子(属性識別子)を有する。 It is preferable that the record index storage unit 4113 stores the schema information of the record index corresponding to each of two or more record indexes. The schema information of such a record index usually has a key item identifier (attribute identifier) corresponding to each one or more key item values possessed by the record index.

レコード・インデックス格納部4113における各レコード・インデックスは、2次インデックス、BTREE、転置インデックス等のインデックス構造を有していても良い。 Each record index in the record index storage unit 4113 may have an index structure such as a secondary index, a BTREE, and an inverted index.

処理部43は、各種の処理を行う。各種の処理は、例えば、インデックス生成部431、検索部432、インデックス更新部433が行う処理である。 The processing unit 43 performs various processes. The various processes are, for example, processes performed by the index generation unit 431, the search unit 432, and the index update unit 433.

インデックス生成部431は、1または2以上の各データソースからインデックスを生成する。インデックス生成部431が生成するインデックスは、2以上のレコード・インデックスを含む。インデックス生成部431が生成するインデックスは、配列インデックス、配列ラベル・インデックス、2次インデックス、ソース・インデックスを含むことは好適である。 The index generator 431 generates an index from each of one or more data sources. The index generated by the index generator 431 includes two or more record indexes. It is preferable that the index generated by the index generation unit 431 includes an array index, an array label index, a secondary index, and a source index.

レコード・インデックス生成部4313は、データソースごとに、1または2以上のレコード・インデックスを生成する。レコード・インデックス生成部4313が、一のデータソースに対して、1つのレコード・インデックスを生成する場合の処理は、レコード・インデックス生成部1313の処理と同じであるので、ここでの説明は省略する。 The record index generator 4313 generates one or more record indexes for each data source. The processing when the record index generation unit 4313 generates one record index for one data source is the same as the processing of the record index generation unit 1313, and thus the description thereof is omitted here. ..

ここでは、レコード・インデックス生成部4313が、1以上の各データソースに対して、2以上のレコード・インデックスを生成する場合について説明する。 Here, a case where the record index generation unit 4313 generates two or more record indexes for each one or more data sources will be described.

レコード・インデックス生成部4313は、データソースを参照し、2以上のレコード・インデックスを生成し、レコード・インデックス格納部4113に蓄積する。かかる2以上のレコード・インデックスは、各々、異なる1以上のキー項目の組み合わせに対応する2以上のレコード・インデックスである。 The record index generation unit 4313 refers to the data source, generates two or more record indexes, and stores them in the record index storage unit 4113. Such two or more record indexes are two or more record indexes corresponding to different combinations of one or more key items.

さらに具体的には、レコード・インデックス生成部4313は、1以上のキー項目の組み合わせを特定する2以上の組の情報を取得する。次に、レコード・インデックス生成部4313は、2以上の各組に対して、データソースのレコードごとに、各組に対応する1以上の各キー項目に対応するキー項目値(属性値)と、レコード位置情報とを有するレコード・インデックスレコードを取得する。そして、レコード・インデックス生成部4313は、2以上の各組に対して、1以上のキー項目をキーとして、レコード・インデックスレコードをソートし、ソートされたレコード・インデックスレコードの集合であるレコード・インデックスを構成し、レコード・インデックス格納部4113に蓄積する。 More specifically, the record index generation unit 4313 acquires information of two or more sets that specify a combination of one or more key items. Next, the record index generation unit 4313 sets the key item value (attribute value) corresponding to one or more key items corresponding to each set for each record of the data source for each set of two or more. Acquires a record index record having record position information. Then, the record index generation unit 4313 sorts the record index records using one or more key items as keys for each set of two or more, and the record index which is a set of the sorted record index records. Is configured and stored in the record index storage unit 4113.

つまり、例えば、レコード・インデックス生成部4313は、選択条件を満たす1以上のキー項目の組み合わせを、2組以上、決定し、当該2組以上の各組の1以上のキー項目の組み合わせに対応する2以上の各レコードのキー項目値とレコード位置情報との組であるレコード・インデックスを生成し、レコード・インデックス格納部4113に蓄積する。なお、選択条件は、自動的にキー項目の組を決定するための条件である。選択条件の具体例については、後述する。 That is, for example, the record index generation unit 4313 determines two or more sets of one or more key item combinations satisfying the selection condition, and corresponds to one or more key item combinations of each of the two or more sets. A record index, which is a set of a key item value of each of two or more records and record position information, is generated and stored in the record index storage unit 4113. The selection condition is a condition for automatically determining the set of key items. Specific examples of the selection conditions will be described later.

なお、レコード・インデックス生成部4313が、上記の1以上のキー項目の組み合わせの情報を取得する方法として、(1)ユーザ指定による方法、(2)自動取得による方法がある。また、(2)自動取得による方法において、例えば、(2−1)検索条件を利用する方法、(2−2)分散を利用する方法等がある。以下、各々の方法について説明する。
(1)ユーザ指定による方法
As a method for the record index generation unit 4313 to acquire information on the combination of one or more of the above key items, there are (1) a method specified by a user and (2) a method by automatic acquisition. Further, in the method by (2) automatic acquisition, for example, there are a method of using (2-1) a search condition, a method of using (2-2) dispersion, and the like. Hereinafter, each method will be described.
(1) User-specified method

レコード・インデックス生成部4313は、ユーザにより指定された1以上のキー項目識別子の組み合わせを、2組以上、取得する。なお、2以上の組の情報は、ユーザが入力したインデックス生成指示に含まれている。2以上の各組の情報は、1つのキー項目識別子、または2以上のキー項目識別子の集合である。
(2)自動取得による方法
The record index generation unit 4313 acquires two or more sets of one or more key item identifier combinations specified by the user. It should be noted that two or more sets of information are included in the index generation instruction input by the user. Each set of two or more pieces of information is one key item identifier or a set of two or more key item identifiers.
(2) Method by automatic acquisition

レコード・インデックス生成部4313は、選択条件を満たす2以上の組の情報を取得する。
(2−1)検索条件を利用する方法
The record index generation unit 4313 acquires two or more sets of information satisfying the selection condition.
(2-1) How to use search conditions

レコード・インデックス生成部4313は、例えば、過去の1以上の検索条件において、出現頻度が選択条件を満たす属性識別子を、キー項目識別子として取得する。なお、出現頻度は、過去の1以上の検索条件における出現回数でも良いし、出現割合でも良い。選択条件は、例えば、出現頻度が閾値以上または閾値より大きいことである。 The record index generation unit 4313 acquires, for example, an attribute identifier whose appearance frequency satisfies the selection condition in the past one or more search conditions as a key item identifier. The frequency of appearance may be the number of appearances in one or more search conditions in the past, or the appearance ratio. The selection condition is, for example, that the frequency of appearance is equal to or greater than the threshold value or greater than the threshold value.

レコード・インデックス生成部4313は、例えば、過去の1以上の検索条件において、共起頻度が選択条件を満たす2以上の属性識別子の組を、キー項目識別子の組として取得する。共起頻度は、過去の1以上の検索条件において共起する回数でも良いし、共起する割合でも良い。選択条件は、例えば、共起頻度が閾値以上または閾値より大きいことである。
(2−2)分散を利用する方法
The record index generation unit 4313 acquires, for example, a set of two or more attribute identifiers whose co-occurrence frequency satisfies the selection condition as a set of key item identifiers in the past one or more search conditions. The co-occurrence frequency may be the number of co-occurrence in one or more search conditions in the past, or the co-occurrence rate. The selection condition is, for example, that the co-occurrence frequency is equal to or greater than the threshold value or greater than the threshold value.
(2-2) Method using dispersion

レコード・インデックス生成部4313は、例えば、インデックスの生成対象のデータソースの2以上の各レコードに含まれる属性値の分散が選択条件を満たす2以上の各属性の属性識別子を、キー項目識別子として取得する。選択条件は、分散が閾値以上または閾値より大きい属性値であることである。 The record index generation unit 4313 acquires, for example, the attribute identifier of each of the two or more attributes whose distribution of the attribute values included in each of the two or more records of the data source for which the index is generated satisfies the selection condition as the key item identifier. do. The selection condition is that the variance is an attribute value above or above the threshold.

レコード・インデックス生成部4313は、例えば、インデックスの生成対象のデータソースの2以上の各レコードに含まれる属性値の分散が選択条件を満たす2以上の各属性の属性識別子のうち、N(Nは1以上の自然数)個以下の組み合わせを、1以上のキー項目識別子の組み合わせとして取得する。 The record index generation unit 4313 is, for example, N (N is A combination of 1 or more natural numbers) or less is acquired as a combination of 1 or more key item identifiers.

検索部432は、条件受付部121が受け付けた検索条件を用いて、2以上のレコード・インデックスから、一のレコード・インデックスを選択し、当該選択したレコード・インデックスから、検索条件が有するキー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードの中の属性値をデータソースから取得する。なお、取得される属性値は、例えば、検索条件で指定された属性識別子に対応する属性値、またはレコード内のすべての属性値である。また、キー項目値も属性値である、と考えても良い。 The search unit 432 selects one record index from two or more record indexes using the search condition accepted by the condition reception unit 121, and the key item value of the search condition from the selected record index. The record position information paired with is acquired, and the attribute value in the record corresponding to the position specified by the record position information is acquired from the data source. The acquired attribute value is, for example, the attribute value corresponding to the attribute identifier specified in the search condition, or all the attribute values in the record. You may also think that the key item value is also an attribute value.

なお、検索部432が検索条件を用いて検索する方法は以下である。つまり、検索部432は、検索条件が有するキー項目値に対応するキー項目を含む1以上のキー項目の組み合わせに対応する一のレコード・インデックスを選択する。なお、一のレコード・インデックスを選択する処理の詳細は、レコード・インデックス決定手段4322の処理として、後述する。 The method by which the search unit 432 searches using the search conditions is as follows. That is, the search unit 432 selects one record index corresponding to one or more key item combinations including the key item corresponding to the key item value of the search condition. The details of the process of selecting one record index will be described later as the process of the record index determining means 4322.

検索部432は、例えば、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得し、当該属性位置情報を用いて、検索条件が有する属性識別子に対応する属性値を、データソースから取得する。 For example, the search unit 432 acquires the attribute position information corresponding to the attribute identifier of the search condition from the array index, and uses the attribute position information to obtain the attribute value corresponding to the attribute identifier of the search condition as a data source. Get from.

検索部432は、例えば、2以上のレコード・インデックスから、条件受付部121が受け付けた検索条件が有するキー項目値に対応するキー項目を含む1以上のキー項目の組み合わせに対応する一のレコード・インデックスを選択し、当該選択したレコード・インデックスから、検索条件が有するキー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードを決定する。次に、検索部432は、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得し、当該属性位置情報を用いて、検索条件が有する属性識別子に対応する属性値を、決定したレコードから取得する。 The search unit 432 is, for example, one record corresponding to a combination of one or more key items including a key item corresponding to the key item value of the search condition received by the condition reception unit 121 from two or more record indexes. An index is selected, the record position information paired with the key item value of the search condition is acquired from the selected record index, and the record corresponding to the position specified by the record position information is determined. Next, the search unit 432 acquires the attribute position information corresponding to the attribute identifier of the search condition from the array index, and uses the attribute position information to determine the attribute value corresponding to the attribute identifier of the search condition. Get from the recorded record.

検索部432は、例えば、2以上のレコード・インデックスから、レコード・インデックスの先頭のキー項目が、検索条件が有するキー項目値に対応するキー項目と一致する場合には、当該レコード・インデックスを選択し、当該選択したレコード・インデックスから、検索条件が有するキー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードの中の属性値をデータソースから取得する。 For example, from two or more record indexes, the search unit 432 selects the record index when the key item at the beginning of the record index matches the key item corresponding to the key item value of the search condition. Then, from the selected record index, the record position information that is paired with the key item value of the search condition is acquired, and the attribute value in the record corresponding to the position specified by the record position information is acquired from the data source. do.

検索部432は、レコード・インデックスの先頭のキー項目が検索条件が有するキー項目値に対応するキー項目と一致する2以上のレコード・インデックスが存在する場合、当該2以上のレコード・インデックスの次のキー項目が検索条件が有するキー項目と一致するかどうかを判定して、レコード・インデックスの先頭から最も多くのキー項目が検索条件が有するキー項目に含まれる一のレコード・インデックスを選択し、当該選択したレコード・インデックスから、検索条件が有するキー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードの中の属性値をデータソースから取得する。 When the search unit 432 has two or more record indexes whose first key item of the record index matches the key item corresponding to the key item value of the search condition, the search unit 432 is next to the two or more record indexes. It is determined whether the key item matches the key item of the search condition, and the record index with the most key items included in the key item of the search condition is selected from the beginning of the record index. From the selected record index, the record position information paired with the key item value of the search condition is acquired, and the attribute value in the record corresponding to the position specified by the record position information is acquired from the data source.

ソース決定手段4321は、検索条件が有するキー項目値と一致する、またはキー項目値を間に挟む最小キー項目値と最大キー項目値と対になるソース識別子を、ソース・インデックスから取得する。 The source determination means 4321 acquires from the source index a source identifier that matches the key item value of the search condition or is paired with the minimum key item value and the maximum key item value having the key item value in between.

レコード・インデックス決定手段4322は、2以上のレコード・インデックスから、検索処理のために使用する一のレコード・インデックスを決定する。レコード・インデックス決定手段4322は、例えば、ソース決定手段4321が取得したソース識別子と対になる2以上のレコード・インデックスから、一のレコード・インデックスを決定する。 The record index determining means 4322 determines one record index to be used for the search process from two or more record indexes. The record index determining means 4322 determines one record index from, for example, two or more record indexes paired with the source identifier acquired by the source determining means 4321.

レコード・インデックス決定手段4322は、例えば、2以上のレコード・インデックスから、条件受付部121が受け付けた検索条件が有するキー項目を含む1以上のキー項目の組み合わせに対応する一のレコード・インデックスを選択する。なお、検索条件が有するキー項目とは、検索条件が有するキー項目値に対応するキー項目と考えても良い。また、検索条件が有するキー項目とは、検索条件が有するキー項目識別子と考えても良い。 The record index determining means 4322 selects, for example, one record index corresponding to a combination of one or more key items including the key item of the search condition accepted by the condition receiving unit 121 from two or more record indexes. do. The key item possessed by the search condition may be considered as a key item corresponding to the key item value possessed by the search condition. Further, the key item possessed by the search condition may be considered as the key item identifier possessed by the search condition.

レコード・インデックス決定手段4322は、例えば、一のレコード・インデックスの先頭のキー項目が、検索条件が有するキー項目と一致する場合には、当該レコード・インデックスを、2以上のレコード・インデックスから選択する。レコード・インデックス決定手段4322は、例えば、レコード・インデックスの先頭のキー項目が、検索条件が有するキー項目と一致する2以上のレコード・インデックスが存在する場合、当該2以上のレコード・インデックスの次のキー項目が、検索条件が有するキー項目と一致するかどうかを判定して、レコード・インデックスの先頭から最も多くのキー項目が、検索条件が有するキー項目に含まれる一のレコード・インデックスを、2以上のレコード・インデックスから選択する。 For example, when the first key item of one record index matches the key item of the search condition, the record index determining means 4322 selects the record index from two or more record indexes. .. The record index determining means 4322 is, for example, when there are two or more record indexes in which the first key item of the record index matches the key item of the search condition, the record index determining means 4322 is next to the two or more record indexes. It is determined whether the key item matches the key item of the search condition, and the most key item from the beginning of the record index is one record index included in the key item of the search condition. Select from the above record indexes.

検索手段4323は、レコード・インデックス決定手段4322が選択したレコード・インデックスから、検索条件が有するキー項目値と対になるレコード位置情報を取得する。次に、検索手段4323は、当該レコード位置情報が特定する位置に対応するレコードの中の1以上の属性値をデータソースから取得する。なお、かかる1以上の属性値は、検索条件に含まれる属性識別子に対応する属性値でも良いし、レコード位置情報が特定する位置のレコードのすべての属性値等でも良い。 The search means 4323 acquires the record position information paired with the key item value of the search condition from the record index selected by the record index determination means 4322. Next, the search means 4323 acquires one or more attribute values in the record corresponding to the position specified by the record position information from the data source. It should be noted that the one or more attribute values may be attribute values corresponding to the attribute identifier included in the search condition, or may be all attribute values of the record at the position specified by the record position information.

なお、検索手段4323がレコード・インデックスから検索条件が有するキー項目値と対になるレコード位置情報を取得する場合、検索手段4323は、例えば、当該レコード・インデックスを二分検索してレコード位置情報を取得しても良い。また、検索手段4323は、例えば、インデックス構造を有するレコード・インデックスから、当該インデックス構造を利用したレコード位置情報の検索を行っても良い。 When the search means 4323 acquires the record position information paired with the key item value of the search condition from the record index, the search means 4323 searches the record index in half and acquires the record position information, for example. You may. Further, the search means 4323 may search the record position information using the index structure from the record index having the index structure, for example.

検索手段4323は、レコード・インデックス決定手段4322が選択したレコード・インデックスから、検索条件が有するキー項目値と対になるレコード位置情報を取得する。次に、検索手段4323は、例えば、検索条件が有する属性識別子に対応する属性位置情報を、配列インデックスから取得する。そして、検索手段4323は、例えば、当該レコード位置情報が特定する位置のレコードの中の属性値であり、当該属性位置情報が特定する位置の属性値を取得する。
なお、検索手段4323は、レコード・インデックス決定手段4322が選択したレコード・インデックスから、配列インデックスのレコードの位置情報を取得し、当該配列インデックスのレコードの位置情報が示すレコードからデータソースのレコード位置情報を取得し、当該レコード位置情報が特定する位置のレコードの中の属性値であり、検索条件が有する属性識別子に対応する属性位置情報が特定する位置の属性値を取得する構成としても良い。
The search means 4323 acquires the record position information paired with the key item value of the search condition from the record index selected by the record index determination means 4322. Next, the search means 4323 acquires, for example, the attribute position information corresponding to the attribute identifier of the search condition from the array index. Then, the search means 4323 is, for example, an attribute value in the record at the position specified by the record position information, and acquires the attribute value at the position specified by the attribute position information.
The search means 4323 acquires the position information of the record of the array index from the record index selected by the record index determining means 4322, and the record position information of the data source from the record indicated by the position information of the record of the array index. Is an attribute value in the record of the position specified by the record position information, and the attribute value of the position specified by the attribute position information corresponding to the attribute identifier of the search condition may be acquired.

なお、レコード・インデックス決定手段4322がレコード・インデックスを選択しなかった場合、検索手段4323は、通常、検索対象のデータソースをシーケンシャルサーチし、検索条件に対応する1以上の属性値を取得する。 When the record index determining means 4322 does not select the record index, the search means 4323 normally searches the data source to be searched sequentially and acquires one or more attribute values corresponding to the search conditions.

また、いずれのレコード・インデックスの先頭のキー項目が検索条件に含まれず、2番目以降のキー項目が検索条件に含まれている場合には、検索手段4323は、当該レコード・インデックス全体を走査することにより、検索条件に合致するレコード位置情報を取得することは好適である。かかる場合でも、データソースの全体をシーケンシャルサーチするよりは、通常、高速検索が可能である。 Further, if the first key item of any record index is not included in the search condition and the second and subsequent key items are included in the search condition, the search means 4323 scans the entire record index. Therefore, it is preferable to acquire the record position information that matches the search condition. Even in such a case, a high-speed search is usually possible rather than a sequential search of the entire data source.

インデックス更新部433は、予め決められた条件を満たす場合に、データソースから取得した最終更新時情報が示す最終更新時が、1以上の各種類のインデックスに対応する生成時情報が示す生成時より後か否かを判断し、後である場合に、インデックス生成部431を動作させて、1以上の各種類のインデックスを構成する。また、インデックス更新部433は、通常、構成した1以上の各種類のインデックスを、インデックス格納部411の古いインデックスに上書きする。なお、1以上の各種類のインデックスは、配列インデックス、配列ラベル・インデックス、レコード・インデックス、2次インデックス、ソース・インデックスのうちの1種類以上である。また、予め決められた条件は、例えば、ユーザからの指示を受け付けたこと、予め決められた時刻になったこと、データソースが更新されたことである。 When the index update unit 433 satisfies a predetermined condition, the last update time indicated by the last update time information acquired from the data source is the generation time indicated by the generation time information corresponding to one or more types of indexes. It is determined whether or not it is later, and if it is later, the index generation unit 431 is operated to form one or more types of indexes. Further, the index update unit 433 usually overwrites each of the configured indexes of one or more types with the old index of the index storage unit 411. Each type of index of 1 or more is one or more of an array index, an array label index, a record index, a secondary index, and a source index. Further, the predetermined conditions are, for example, that an instruction from the user has been received, that the time has reached a predetermined time, and that the data source has been updated.

インデックス更新部433は、例えば、一のデータソースが予め決められた条件を満たす場合に、当該データソースの2以上のレコード・インデックスを更新する。 The index update unit 433 updates two or more record indexes of the data source, for example, when one data source satisfies a predetermined condition.

出力部44は、各種の情報を出力する。各種の情報は、例えば、後述する検索結果である。なお、ここでの出力とは、通常、端末装置3への送信であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。 The output unit 44 outputs various information. Various types of information are, for example, search results described later. The output here is usually transmission to the terminal device 3, but display on a display, projection using a projector, printing by a printer, storage on a recording medium, other processing devices and other devices. The concept may include delivery of the processing result to a program or the like.

結果出力部441は、検索部432が取得した1以上の属性値を含む検索結果を出力する。 The result output unit 441 outputs a search result including one or more attribute values acquired by the search unit 432.

格納部41、インデックス格納部411、およびレコード・インデックス格納部4113は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。 The storage unit 41, the index storage unit 411, and the record index storage unit 4113 are preferably non-volatile recording media, but can also be realized by a volatile recording medium.

格納部41等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部41等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部41等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。 The process of storing information in the storage unit 41 or the like does not matter. For example, the information may be stored in the storage unit 41 or the like via the recording medium, or the information transmitted via the communication line or the like may be stored in the storage unit 41 or the like. Alternatively, the information input via the input device may be stored in the storage unit 11 or the like.

処理部43、インデックス生成部431、検索部432、インデックス更新部433、レコード・インデックス生成部4313、ソース決定手段4321、レコード・インデックス決定手段4322、および検索手段4323は、通常、プロセッサやメモリ等から実現され得る。処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わない。 The processing unit 43, the index generation unit 431, the search unit 432, the index update unit 433, the record index generation unit 4313, the source determination unit 4321, the record index determination unit 4322, and the search unit 4323 usually come from a processor, memory, or the like. It can be realized. The processing procedure of the processing unit 13 and the like is usually realized by software, and the software is recorded in a recording medium such as ROM. However, it may be realized by hardware (dedicated circuit). The processor is a CPU, MPU, GPU, or the like, and the type thereof does not matter.

出力部44、および結果出力部441は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。 The output unit 44 and the result output unit 441 are usually realized by wireless or wired communication means, but may be realized by broadcasting means.

次に、検索システムBの動作例について説明する。まず、検索装置4の動作例について、図18のフローチャートを用いて説明する。図18のフローチャートにおいて、図4のフローチャートと同一のステップについて、説明を省略する。 Next, an operation example of the search system B will be described. First, an operation example of the search device 4 will be described with reference to the flowchart of FIG. In the flowchart of FIG. 18, the same steps as the flowchart of FIG. 4 will be omitted.

(ステップS1801)インデックス生成部431は、i番目のデータソースに対応するインデックスを生成する。インデックス生成処理の例について、図19のフローチャートを用いて説明する。 (Step S1801) The index generation unit 431 generates an index corresponding to the i-th data source. An example of the index generation process will be described with reference to the flowchart of FIG.

(ステップS1802)インデックス更新部433は、インデックス生成部431に動作の指示をする。その結果、インデックス生成部431は、インデックスを生成し、i番目のデータソースに対応付けて、インデックスを蓄積する。かかる処理により、i番目のデータソースに対応するインデックスが更新される。なお、インデックス生成処理の例は、図19のフローチャートである。 (Step S1802) The index update unit 433 instructs the index generation unit 431 to operate. As a result, the index generation unit 431 generates an index, associates it with the i-th data source, and accumulates the index. By such processing, the index corresponding to the i-th data source is updated. An example of the index generation process is the flowchart of FIG.

(ステップS1803)検索部432は、検索条件を用いて検索を行う。かかる検索処理の例について、図24および図25のフローチャートを用いて説明する。 (Step S1803) The search unit 432 performs a search using the search conditions. An example of such a search process will be described with reference to the flowcharts of FIGS. 24 and 25.

なお、図18のフローチャートにおいて、ステップS414で受け付けられた検索条件を、検索対象のデータソースに対応付けて、格納部41に蓄積することは好適である。 In the flowchart of FIG. 18, it is preferable that the search conditions accepted in step S414 are associated with the data source to be searched and stored in the storage unit 41.

また、図18のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。 Further, in the flowchart of FIG. 18, the processing is terminated by the power off or the interrupt of the processing termination.

次に、ステップS1801、ステップS1802のインデックス生成処理の例について、図19のフローチャートを用いて説明する。なお、図19のフローチャートにおいて、図5のフローチャートと同一のステップについて、説明を省略する。 Next, an example of the index generation processing in steps S1801 and S1802 will be described with reference to the flowchart of FIG. In the flowchart of FIG. 19, the same steps as the flowchart of FIG. 5 will be omitted.

(ステップS1901)レコード・インデックス生成部4313は、1または2以上のレコード・インデックスを生成する。かかるレコード・インデックス生成処理の例について、図20のフローチャートを用いて説明する。 (Step S1901) The record index generation unit 4313 generates one or more record indexes. An example of such a record index generation process will be described with reference to the flowchart of FIG.

次に、ステップS1901のレコード・インデックス生成処理の例について、図20のフローチャートを用いて説明する。なお、図20のフローチャートにおいて、図4のフローチャートと同一のステップについて、説明を省略する。 Next, an example of the record index generation process in step S1901 will be described with reference to the flowchart of FIG. In the flowchart of FIG. 20, the same steps as the flowchart of FIG. 4 will be omitted.

(ステップS2001)レコード・インデックス生成部4313は、生成するレコード・インデックスに対応する1以上のキー項目集合を決定する。かかるキー項目集合決定処理の例について、図21のフローチャートを用いて説明する。なお、キー項目集合は、1または2以上のキー項目である。キー項目集合を決定する処理は、通常、1または2以上のキー項目識別子を取得する処理である。 (Step S2001) The record index generation unit 4313 determines one or more key item sets corresponding to the record index to be generated. An example of such a key item set determination process will be described with reference to the flowchart of FIG. The key item set is one or more key items. The process of determining a key item set is usually a process of acquiring one or more key item identifiers.

(ステップS2002)レコード・インデックス生成部4313は、カウンタiに1を代入する。 (Step S2002) The record index generation unit 4313 substitutes 1 for the counter i.

(ステップS2003)レコード・インデックス生成部4313は、ステップS2001で取得したキー項目集合の中で、i番目のキー項目集合が存在するか否かを判断する。i番目のキー項目集合が存在する場合はステップS2004に行き、存在しない場合は上位処理にリターンする。 (Step S2003) The record index generation unit 4313 determines whether or not the i-th key item set exists in the key item set acquired in step S2001. If the i-th key item set exists, the process proceeds to step S2004, and if it does not exist, the process returns to higher-level processing.

(ステップS2004)レコード・インデックス生成部4313は、カウンタjに1を代入する。 (Step S2004) The record index generation unit 4313 substitutes 1 for the counter j.

(ステップS2005)レコード・インデックス生成部4313は、対象のデータソースの中に、j番目のレコードが存在するか否かを判断する。j番目のレコードが存在する場合はステップS2006に行き、存在しない場合はステップS2012に行く。 (Step S2005) The record index generation unit 4313 determines whether or not the jth record exists in the target data source. If the jth record exists, it goes to step S2006, and if it does not exist, it goes to step S2012.

(ステップS2006)レコード・インデックス生成部4313は、j番目のレコードのレコード位置情報を取得する。 (Step S2006) The record index generation unit 4313 acquires the record position information of the jth record.

(ステップS2007)レコード・インデックス生成部4313は、j番目のレコードの1以上のキー項目値であり、i番目のキー項目集合が有する1以上の各キー項目の値(属性値)であるキー項目値を取得する。 (Step S2007) The record index generation unit 4313 is a key item which is one or more key item values of the j-th record and is a value (attribute value) of one or more key items of the i-th key item set. Get the value.

(ステップS2008)レコード・インデックス生成部4313は、j番目のレコード・インデックスレコードの位置情報を取得する。 (Step S2008) The record index generation unit 4313 acquires the position information of the jth record index record.

(ステップS2009)レコード・インデックス生成部4313は、レコード位置情報、1以上のキー項目値、レコード・インデックスレコードの位置情報を有するj番目のレコード・インデックスレコードを構成する。 (Step S2009) The record index generation unit 4313 constitutes the j-th record index record having record position information, one or more key item values, and record index record position information.

(ステップS2010)レコード・インデックス生成部4313は、ステップS2009で構成したj番目のレコード・インデックスレコードを、i番目のレコード・インデックスに追記する。 (Step S2010) The record index generation unit 4313 adds the j-th record index record configured in step S2009 to the i-th record index.

(ステップS2011)レコード・インデックス生成部4313は、カウンタjを1、インクリメントする。ステップS2005に戻る。 (Step S2011) The record index generation unit 4313 increments the counter j by 1. Return to step S2005.

(ステップS2012)レコード・インデックス生成部4313は、i番目のレコード・インデックスのスキーマ情報を取得し、蓄積する。スキーマ情報は、i番目のキー項目集合が有する1以上のキー項目識別子(属性識別子)を有する。 (Step S2012) The record index generation unit 4313 acquires and accumulates the schema information of the i-th record index. The schema information has one or more key item identifiers (attribute identifiers) possessed by the i-th key item set.

(ステップS2013)レコード・インデックス生成部4313は、i番目のレコード・インデックスを、レコード・インデックス格納部4113に蓄積する。なお、ここで、レコード・インデックス生成部4313は、i番目のレコード・インデックスのスキーマ情報も、i番目のレコード・インデックスに対応付けて蓄積することは好適である。 (Step S2013) The record index generation unit 4313 stores the i-th record index in the record index storage unit 4113. Here, it is preferable that the record index generation unit 4313 also stores the schema information of the i-th record index in association with the i-th record index.

(ステップS2014)レコード・インデックス生成部4313は、カウンタiを1、インクリメントする。ステップS2003に戻る。
なお、図20のフローチャートにおいて、2次インデックスが存在しない場合には、ステップS2008は不要であり、かつステップS2009において、レコード・インデックス生成部4313は、レコード位置情報、1以上のキー項目値を有するj番目のレコード・インデックスレコードを構成する。
(Step S2014) The record index generation unit 4313 increments the counter i by 1. Return to step S2003.
In the flowchart of FIG. 20, when the secondary index does not exist, step S2008 is unnecessary, and in step S2009, the record index generation unit 4313 has record position information and one or more key item values. It constitutes the jth record index record.

次に、ステップS2001のキー項目集合決定処理の例について、図21のフローチャートを用いて説明する。 Next, an example of the key item set determination process in step S2001 will be described with reference to the flowchart of FIG.

(ステップS2101)レコード・インデックス生成部4313は、ユーザが指定した1以上のキー項目集合が存在するか否かを判断する。ユーザが指定した1以上のキー項目集合が存在する場合はステップS2102に行き、存在しない場合はステップS2103に行く。 (Step S2101) The record index generation unit 4313 determines whether or not one or more key item sets specified by the user exist. If one or more key item sets specified by the user exist, the process goes to step S2102, and if they do not exist, the process goes to step S2103.

(ステップS2102)レコード・インデックス生成部4313は、ユーザが指定した1以上のキー項目集合を取得し、図示しないバッファに一時蓄積する。上位処理にリターンする。 (Step S2102) The record index generation unit 4313 acquires one or more key item sets specified by the user and temporarily stores them in a buffer (not shown). Return to higher-level processing.

(ステップS2103)レコード・インデックス生成部4313は、格納部41に格納されている過去の検索条件であり、対象となるデータソースに対する過去の検索条件の数が、条件を満たすほど多いか否かを判断する。条件を満たす場合はステップS2104に行き、条件を満たさない場合はステップS2105に行く。なお、かかる条件は、例えば、検索条件の数が閾値以上、または閾値より多いことである。 (Step S2103) The record index generation unit 4313 is a past search condition stored in the storage unit 41, and whether or not the number of past search conditions for the target data source is large enough to satisfy the condition. to decide. If the condition is satisfied, the process goes to step S2104, and if the condition is not satisfied, the process goes to step S2105. The condition is, for example, that the number of search conditions is equal to or greater than the threshold value or greater than the threshold value.

(ステップS2104)レコード・インデックス生成部4313は、格納部41の検索条件を利用して、1または2以上のキー項目集合を決定する。なお、かかる検索条件利用処理の例について、図22のフローチャートを用いて説明する。 (Step S2104) The record index generation unit 4313 determines one or more key item sets by using the search condition of the storage unit 41. An example of such a search condition utilization process will be described with reference to the flowchart of FIG.

(ステップS2105)レコード・インデックス生成部4313は、データソースの属性ごとの属性値の分散を利用して、1または2以上のキー項目集合を決定する。上位処理にリターンする。なお、かかる分散利用処理の例について、図23のフローチャートを用いて説明する。 (Step S2105) The record index generation unit 4313 determines one or more key item sets by utilizing the distribution of attribute values for each attribute of the data source. Return to higher-level processing. An example of such distributed utilization processing will be described with reference to the flowchart of FIG.

なお、図21のフローチャートにおいて、ユーザ指定の1以上のキー項目集合を取得する処理、過去の検索条件を利用して1以上のキー項目集合を取得する処理、および属性値の分散を利用して1以上のキー項目集合を取得する処理について説明した。図21において、上記の3つの処理のうち、2以上の処理を行い、1以上のキー項目集合を取得しても良い。なお、かかる場合、同じキー項目集合は、重複しては取得されない。 In the flowchart of FIG. 21, the process of acquiring one or more key item sets specified by the user, the process of acquiring one or more key item sets using the past search conditions, and the distribution of attribute values are used. The process of acquiring one or more key item sets has been described. In FIG. 21, two or more of the above three processes may be performed to acquire one or more key item sets. In such a case, the same key item set is not acquired more than once.

次に、ステップS2104の検索条件利用処理の例について、図22のフローチャートを用いて説明する。 Next, an example of the search condition utilization process in step S2104 will be described with reference to the flowchart of FIG.

(ステップS2201)レコード・インデックス生成部4313は、カウンタiに1を代入する。 (Step S2201) The record index generation unit 4313 substitutes 1 for the counter i.

(ステップS2202)レコード・インデックス生成部4313は、i番目の属性識別子が存在するか否かを判断する。対象のデータソースの1以上の属性識別子の中に、i番目の属性識別子が存在する場合はステップS2203に行き、存在しない場合はステップS2207に行く。なお、データソースの1以上の属性識別子は、キー項目識別子であっても良い。 (Step S2202) The record index generation unit 4313 determines whether or not the i-th attribute identifier exists. If the i-th attribute identifier exists in one or more attribute identifiers of the target data source, the process goes to step S2203, and if it does not exist, the process goes to step S2207. The one or more attribute identifiers of the data source may be key item identifiers.

(ステップS2203)レコード・インデックス生成部4313は、対象のデータソースのi番目の属性識別子の、格納部41の中の検索条件における出現頻度を取得する。なお、出現頻度は、出現回数でも良いし、出現割合でも良い。 (Step S2203) The record index generation unit 4313 acquires the frequency of occurrence of the i-th attribute identifier of the target data source in the search condition in the storage unit 41. The frequency of appearance may be the number of appearances or the rate of appearance.

(ステップS2204)レコード・インデックス生成部4313は、ステップS2203で取得した出現頻度が、選択条件1を満たすか否かを判断する。選択条件1を満たす場合はステップS2205に行き、選択条件1を満たさない場合はステップS2206に行く。なお、選択条件1は、例えば、出現頻度が閾値以上、または閾値より大きいことである。 (Step S2204) The record index generation unit 4313 determines whether or not the appearance frequency acquired in step S2203 satisfies the selection condition 1. If the selection condition 1 is satisfied, the process goes to step S2205, and if the selection condition 1 is not satisfied, the process goes to step S2206. The selection condition 1 is, for example, that the appearance frequency is equal to or higher than the threshold value or higher than the threshold value.

選択条件1は、例えば、出現頻度が、2以上の属性識別子の中で、上位N(Nは、1以上の自然数)以内であること等でも良い。かかる条件の場合、レコード・インデックス生成部4313は、すべての属性識別子の出現頻度を取得した後に、図示しないバッファに蓄積する属性識別子を決定する。 The selection condition 1 may be, for example, that the appearance frequency is within the upper N (N is a natural number of 1 or more) among the attribute identifiers of 2 or more. Under such a condition, the record index generation unit 4313 determines the attribute identifiers to be stored in the buffer (not shown) after acquiring the appearance frequencies of all the attribute identifiers.

(ステップS2205)レコード・インデックス生成部4313は、i番目の属性識別子を図示しないバッファに蓄積する。なお、かかるi番目の属性識別子は、レコード・インデックスを構成する対象のキー項目集合である。ここでのキー項目集合は、一つの属性識別子である。 (Step S2205) The record index generation unit 4313 stores the i-th attribute identifier in a buffer (not shown). The i-th attribute identifier is a set of key items to form a record index. The key item set here is one attribute identifier.

(ステップS2206)レコード・インデックス生成部4313は、カウンタiを1、インクリメントする。ステップS2202に戻る。 (Step S2206) The record index generation unit 4313 increments the counter i by 1. Return to step S2202.

(ステップS2207)レコード・インデックス生成部4313は、カウンタjに1を代入する。 (Step S2207) The record index generation unit 4313 substitutes 1 for the counter j.

(ステップS2208)レコード・インデックス生成部4313は、j番目の2以上の属性識別子の組み合わせが存在するか否かを判断する。j番目の2以上の属性識別子の組み合わせが存在する場合はステップS2209に行き、存在しない場合は上位処理にリターンする。 (Step S2208) The record index generation unit 4313 determines whether or not a combination of two or more attribute identifiers at the j-th position exists. If the j-th or higher combination of attribute identifiers exists, the process goes to step S2209, and if it does not exist, the process returns to the higher-level processing.

(ステップS2209)レコード・インデックス生成部4313は、j番目の2以上の属性識別子の組み合わせの検索条件における共起頻度を取得する。なお、共起頻度は、2以上のすべての属性識別子が含まれる検索条件の数または割合である。 (Step S2209) The record index generation unit 4313 acquires the co-occurrence frequency in the search condition of the combination of the j-th two or more attribute identifiers. The co-occurrence frequency is the number or ratio of search conditions including all two or more attribute identifiers.

(ステップS2210)レコード・インデックス生成部4313は、ステップS2209で取得した共起頻度が、選択条件2を満たすか否かを判断する。選択条件2を満たす場合はステップS2211に行き、選択条件2を満たさない場合はステップS2212に行く。なお、選択条件2は、例えば、共起頻度が閾値以上、または閾値より大きいことである。 (Step S2210) The record index generation unit 4313 determines whether or not the co-occurrence frequency acquired in step S2209 satisfies the selection condition 2. If the selection condition 2 is satisfied, the process goes to step S2211, and if the selection condition 2 is not satisfied, the process goes to step S2212. The selection condition 2 is, for example, that the co-occurrence frequency is equal to or greater than the threshold value or greater than the threshold value.

選択条件2は、例えば、共起頻度が、属性識別子の組み合わせの2以上の組の中で、上位N(Nは、1以上の自然数)以内であること等でも良い。かかる条件の場合、レコード・インデックス生成部4313は、すべての属性識別子の組み合わせの共起頻度を取得した後に、図示しないバッファに蓄積する属性識別子の組み合わせを決定する。 The selection condition 2 may be, for example, that the co-occurrence frequency is within the upper N (N is a natural number of 1 or more) in the set of 2 or more combinations of attribute identifiers. Under such conditions, the record index generation unit 4313 determines the combination of attribute identifiers to be stored in a buffer (not shown) after acquiring the co-occurrence frequency of all combinations of attribute identifiers.

(ステップS2211)レコード・インデックス生成部4313は、j番目の2以上の属性識別子の組み合わせを図示しないバッファに蓄積する。なお、かかるj番目の2以上の属性識別子の組み合わせは、レコード・インデックスを構成する対象のキー項目集合である。ここでのキー項目集合は、2以上の属性識別子である。 (Step S2211) The record index generation unit 4313 stores a combination of two or more attribute identifiers at the j-th position in a buffer (not shown). The combination of the j-th or higher attribute identifiers is a set of target key items constituting the record index. The key item set here is two or more attribute identifiers.

(ステップS2212)レコード・インデックス生成部4313は、カウンタjを1、インクリメントする。ステップS2208に戻る。 (Step S2212) The record index generation unit 4313 increments the counter j by 1. Return to step S2208.

次に、ステップS2105の分散利用処理の例について、図23のフローチャートを用いて説明する。 Next, an example of the distributed utilization process in step S2105 will be described with reference to the flowchart of FIG.

(ステップS2301)レコード・インデックス生成部4313は、カウンタiに1を代入する。 (Step S2301) The record index generation unit 4313 substitutes 1 for the counter i.

(ステップS2302)レコード・インデックス生成部4313は、i番目の属性識別子が存在するか否かを判断する。対象のデータソースの1以上の属性識別子の中に、i番目の属性識別子が存在する場合はステップS2303に行き、存在しない場合はステップS2308に行く。なお、データソースの1以上の属性識別子は、キー項目識別子であっても良い。 (Step S2302) The record index generation unit 4313 determines whether or not the i-th attribute identifier exists. If the i-th attribute identifier exists in one or more attribute identifiers of the target data source, the process goes to step S2303, and if it does not exist, the process goes to step S2308. The one or more attribute identifiers of the data source may be key item identifiers.

(ステップS2303)レコード・インデックス生成部4313は、対象のデータソースの各レコードのi番目の属性識別子に対応する属性値を取得する。 (Step S2303) The record index generation unit 4313 acquires the attribute value corresponding to the i-th attribute identifier of each record of the target data source.

(ステップS2304)レコード・インデックス生成部4313は、ステップS2303で取得した2以上の属性値の分散を算出する。 (Step S2304) The record index generation unit 4313 calculates the variance of two or more attribute values acquired in step S2303.

(ステップS2305)レコード・インデックス生成部4313は、ステップS2304で算出した分散が選択条件3を満たすか否かを判断する。選択条件3を満たす場合はステップS2306に行き、満たさない場合はステップS2307に行く。なお、選択条件3は、例えば、分散が閾値以上または閾値より大きいことである。また、選択条件3は、例えば、分散が上位N(Nは1以上の自然数)以内であること等でも良い。 (Step S2305) The record index generation unit 4313 determines whether or not the variance calculated in step S2304 satisfies the selection condition 3. If the selection condition 3 is satisfied, the process goes to step S2306, and if the selection condition 3 is not satisfied, the process goes to step S2307. The selection condition 3 is, for example, that the variance is equal to or greater than the threshold value or larger than the threshold value. Further, the selection condition 3 may be, for example, that the variance is within the upper N (N is a natural number of 1 or more).

(ステップS2306)レコード・インデックス生成部4313は、i番目の属性識別子を図示しないバッファに蓄積する。なお、かかるi番目の属性識別子は、レコード・インデックスを構成する対象のキー項目集合である。ここでのキー項目集合は、一つの属性識別子である。 (Step S2306) The record index generation unit 4313 stores the i-th attribute identifier in a buffer (not shown). The i-th attribute identifier is a set of key items to form a record index. The key item set here is one attribute identifier.

(ステップS2307)レコード・インデックス生成部4313は、カウンタiを1、インクリメントする。ステップS2302に戻る。 (Step S2307) The record index generation unit 4313 increments the counter i by 1. Return to step S2302.

(ステップS2308)レコード・インデックス生成部4313は、カウンタjに1を代入する。 (Step S2308) The record index generation unit 4313 substitutes 1 for the counter j.

(ステップS2309)レコード・インデックス生成部4313は、ステップS2306で蓄積した属性識別子の集合の中で、N(Nは2以上の自然数)個以内のj番目の属性識別子の組み合わせが存在するか否かを判断する。j番目の属性識別子の組み合わせが存在する場合はステップS2310に行き、存在しない場合は上位処理にリターンする。 (Step S2309) Whether or not the j-th attribute identifier combination within N (N is a natural number of 2 or more) exists in the set of attribute identifiers accumulated in step S2306 by the record index generation unit 4313. To judge. If the j-th attribute identifier combination exists, the process proceeds to step S2310, and if it does not exist, the process returns to the higher-level processing.

(ステップS2310)レコード・インデックス生成部4313は、j番目の属性識別子の組み合わせを図示しないバッファに蓄積する。なお、かかるj番目の2以上の属性識別子の組み合わせは、レコード・インデックスを構成する対象のキー項目集合である。ここでのキー項目集合は、2以上の属性識別子である。 (Step S2310) The record index generation unit 4313 stores the j-th attribute identifier combination in a buffer (not shown). The combination of the j-th or higher attribute identifiers is a set of target key items constituting the record index. The key item set here is two or more attribute identifiers.

(ステップS2311)レコード・インデックス生成部4313は、カウンタjを1、インクリメントする。ステップS2309に戻る。 (Step S2311) The record index generation unit 4313 increments the counter j by 1. Return to step S2309.

次に、ステップS1803の検索処理の第一の例について、図24のフローチャートを用いて説明する。なお、図24のフローチャートにおいて、図11のフローチャートと同一のステップについて、説明を省略する。 Next, a first example of the search process in step S1803 will be described with reference to the flowchart of FIG. 24. In the flowchart of FIG. 24, the same steps as the flowchart of FIG. 11 will be omitted.

(ステップS2401)レコード・インデックス決定手段4322は、検索に使用するレコード・インデックスを決定する。かかるレコード・インデックスを決定処理の例について、図26のフローチャートを用いて説明する。 (Step S2401) The record index determining means 4322 determines the record index to be used for the search. An example of the determination process of such a record index will be described with reference to the flowchart of FIG.

なお、図26のフローチャートにおいて、ステップS1108において、検索部432は、ステップS2401で決定されたレコード・インデックスを用いて、レコード位置情報を取得する。 In the flowchart of FIG. 26, in step S1108, the search unit 432 acquires the record position information by using the record index determined in step S2401.

次に、ステップS1803の検索処理の第二の例について、図25のフローチャートを用いて説明する。なお、図25のフローチャートにおいて、図11、図24のフローチャートと同一のステップについて、説明を省略する。 Next, a second example of the search process in step S1803 will be described with reference to the flowchart of FIG. In the flowchart of FIG. 25, the same steps as those of the flowcharts of FIGS. 11 and 24 will be omitted.

(ステップS2501)検索手段4323は、ステップS2401で決定されたレコード・インデックスを検索し、検索条件が有するキー項目値に対応するレコード・インデックスレコードを決定し、当該レコード・インデックスレコードが有するレコード位置情報を取得する。 (Step S2501) The search means 4323 searches the record index determined in step S2401, determines the record index record corresponding to the key item value of the search condition, and records the record position information of the record index record. To get.

(ステップS2502)検索手段4323は、検索対象のデータソースに対応する配列インデックスが存在するか否かを判断する。配列インデックスが存在する場合はステップS2503に行き、存在しない場合はステップS2510に行く。 (Step S2502) The search means 4323 determines whether or not an array index corresponding to the data source to be searched exists. If the array index exists, it goes to step S2503, and if it does not exist, it goes to step S2510.

(ステップS2503)検索手段4323は、カウンタiに1を代入する。 (Step S2503) The search means 4323 substitutes 1 for the counter i.

(ステップS2504)検索手段4323は、検索条件に含まれる(検索で取得する)i番目の属性識別子が存在するか否かを判断する。i番目の属性識別子が存在する場合はステップS2504に行き、存在しない場合はステップS2509に行く。 (Step S2504) The search means 4323 determines whether or not the i-th attribute identifier included in the search condition (obtained by the search) exists. If the i-th attribute identifier exists, the process goes to step S2504, and if it does not exist, the process goes to step S2509.

(ステップS2505)検索手段4323は、i番目の属性識別子に対応する属性位置情報を配列インデックスから取得する。 (Step S2505) The search means 4323 acquires the attribute position information corresponding to the i-th attribute identifier from the array index.

(ステップS2506)検索手段4323は、ステップS2501で取得したレコード位置情報で特定されるレコードの中の、ステップS2505で取得した属性位置情報で特定される属性値を、データソースから取得する。 (Step S2506) The search means 4323 acquires the attribute value specified by the attribute position information acquired in step S2505 from the data source in the records specified by the record position information acquired in step S2501.

(ステップS2507)検索手段4323は、i番目の属性識別子に対応付けて、ステップS2506で取得した属性値を、図示しないバッファに一時蓄積する。 (Step S2507) The search means 4323 temporarily stores the attribute value acquired in step S2506 in a buffer (not shown) in association with the i-th attribute identifier.

(ステップS2508)検索手段4323は、カウンタiを1、インクリメントする。ステップS2504に戻る。 (Step S2508) The search means 4323 increments the counter i by 1. Return to step S2504.

(ステップS2509)検索手段4323は、図示しないバッファに一時蓄積された属性値等を用いて、検索結果を構成する。上位処理にリターンする。 (Step S2509) The search means 4323 configures a search result by using attribute values and the like temporarily stored in a buffer (not shown). Return to higher-level processing.

(ステップS2510)検索手段4323は、カウンタiに1を代入する。 (Step S2510) The search means 4323 substitutes 1 for the counter i.

(ステップS2511)検索手段4323は、検索条件に含まれる(検索で取得する)i番目の属性識別子が存在するか否かを判断する。i番目の属性識別子が存在する場合はステップS2512に行き、存在しない場合はステップS2509に行く。 (Step S2511) The search means 4323 determines whether or not the i-th attribute identifier included in the search condition (obtained by the search) exists. If the i-th attribute identifier exists, the process goes to step S2512, and if it does not exist, the process goes to step S2509.

(ステップS2512)検索手段4323は、i番目の属性識別子の、データソース内における属性の順番を取得する。なお、かかる順番は、i番目の属性識別子に対応する属性値が格納されている順番であり、レコード内の属性値の順番である。かかる順番の情報は、データソース内に存在しても良いし、格納部41に存在しても良い。 (Step S2512) The search means 4323 acquires the order of the attributes of the i-th attribute identifier in the data source. It should be noted that the order is the order in which the attribute values corresponding to the i-th attribute identifier are stored, and is the order of the attribute values in the record. The information in this order may exist in the data source or may exist in the storage unit 41.

(ステップS2513)検索手段4323は、ステップS2501で取得したレコード位置情報で特定されるレコードの中の、ステップS2512で取得した順番の位置に存在する属性値を取得する。 (Step S2513) The search means 4323 acquires the attribute values existing in the positions in the order acquired in step S2512 among the records specified by the record position information acquired in step S2501.

(ステップS2514)検索手段4323は、i番目の属性識別子に対応付けて、ステップS2513で取得した属性値を、図示しないバッファに一時蓄積する。 (Step S2514) The search means 4323 temporarily stores the attribute value acquired in step S2513 in a buffer (not shown) in association with the i-th attribute identifier.

(ステップS2515)検索手段4323は、カウンタiを1、インクリメントする。ステップS2511に戻る。 (Step S2515) The search means 4323 increments the counter i by 1. Return to step S2511.

次に、ステップS2401のレコード・インデックスを決定処理の例について、図26のフローチャートを用いて説明する。 Next, an example of the process of determining the record index in step S2401 will be described with reference to the flowchart of FIG.

(ステップS2601)レコード・インデックス決定手段4322は、検索条件が有するキー項目属性値に対応する1以上のキー項目識別子を取得する。なお、1以上のキー項目識別子は、検索条件が有しても良い。 (Step S2601) The record index determining means 4322 acquires one or more key item identifiers corresponding to the key item attribute values of the search condition. The search condition may have one or more key item identifiers.

(ステップS2602)レコード・インデックス決定手段4322は、カウンタiに1を代入する。 (Step S2602) The record index determining means 4322 substitutes 1 for the counter i.

(ステップS2603)レコード・インデックス決定手段4322は、i番目のレコード・インデックスが存在するか否かを判断する。i番目のレコード・インデックスが存在する場合はステップS2604に行き、存在しない場合はステップS2613に行く。 (Step S2603) The record index determining means 4322 determines whether or not the i-th record index exists. If the i-th record index exists, it goes to step S2604, and if it does not exist, it goes to step S2613.

(ステップS2604)レコード・インデックス決定手段4322は、カウンタjに1を代入する。 (Step S2604) The record index determining means 4322 assigns 1 to the counter j.

(ステップS2605)レコード・インデックス決定手段4322は、i番目のレコード・インデックスに対するスコアに0(初期値)を代入する。 (Step S2605) The record index determining means 4322 substitutes 0 (initial value) for the score for the i-th record index.

(ステップS2606)レコード・インデックス決定手段4322は、i番目のレコード・インデックスのスキーマ情報を参照し、当該スキーマ情報が有するj番目のキー項目識別子が、ステップS2601で取得したキー項目識別子の中に含まれるか否かを判断する。含まれる場合はステップS2607に行き、含まれない場合はステップS2611に行く。 (Step S2606) The record index determining means 4322 refers to the schema information of the i-th record index, and the j-th key item identifier possessed by the schema information is included in the key item identifier acquired in step S2601. Determine if it is possible. If it is included, it goes to step S2607, and if it is not included, it goes to step S2611.

(ステップS2607)レコード・インデックス決定手段4322は、i番目のレコード・インデックスに対するスコアに1を加算する。 (Step S2607) The record index determining means 4322 adds 1 to the score for the i-th record index.

(ステップS2608)レコード・インデックス決定手段4322は、ステップS2601で取得したすべてのキー項目識別子が、i番目のレコード・インデックスのスキーマ情報の中に含まれると判定できたか否かを判断する。かかる判定ができた場合はステップS2609に行き、できなかった場合はステップS2610に行く。 (Step S2608) The record index determining means 4322 determines whether or not it can be determined that all the key item identifiers acquired in step S2601 are included in the schema information of the i-th record index. If such a determination can be made, the process goes to step S2609, and if the determination cannot be made, the process goes to step S2610.

(ステップS2609)レコード・インデックス決定手段4322は、i番目のレコード・インデックスを検索に使用するレコード・インデックスとして決定する。上位処理にリターンする。なお、かかる決定は、例えば、i番目のレコード・インデックスの読み込み、i番目のレコード・インデックスの識別子の取得等である。 (Step S2609) The record index determining means 4322 determines the i-th record index as the record index used for the search. Return to higher-level processing. The determination is, for example, reading the i-th record index, acquiring the identifier of the i-th record index, and the like.

(ステップS2610)レコード・インデックス決定手段4322は、カウンタjを1、インクリメントする。ステップS2606に戻る。 (Step S2610) The record index determining means 4322 increments the counter j by 1. Return to step S2606.

(ステップS2611)レコード・インデックス決定手段4322は、i番目のレコード・インデックスのスコアを、i番目のレコード・インデックスに対応付けて、図示しないバッファに一時蓄積する。 (Step S2611) The record index determining means 4322 associates the score of the i-th record index with the i-th record index and temporarily stores the score in a buffer (not shown).

(ステップS2612)レコード・インデックス決定手段4322は、カウンタiを1、インクリメントする。ステップS2603に戻る。 (Step S2612) The record index determining means 4322 increments the counter i by 1. Return to step S2603.

(ステップS2613)レコード・インデックス決定手段4322は、図示しないバッファを参照し、最大のスコアに対応するレコード・インデックスを検索に使用するレコード・インデックスとして決定する。上位処理にリターンする。 (Step S2613) The record index determining means 4322 refers to a buffer (not shown) and determines the record index corresponding to the maximum score as the record index to be used for the search. Return to higher-level processing.

以下、本実施の形態における検索システムBの具体的な動作例について説明する。 Hereinafter, a specific operation example of the search system B in the present embodiment will be described.

今、データソース管理装置2のデータソース格納部111に、図27に示す1つのデータソース(X)が格納されている、とする。図27のデータソースの構造は、図12のデータソースの構造と比較して、ラベル・レコードにおける「Region」の有無が異なるが、概ね同様である。
ラベル・レコードは、ここでは、ファイルの1行目である。ラベル・レコードは、属性識別子の集合である。属性識別子の集合のうちの一部の属性識別子は、キー項目識別子になり得る。図27において、[No.]は、レコードIDであり、その値は、図27の[1][2][3]等である。また、[No.]の下の(Pos.)は、各レコードのレコード位置情報(ここでは、データソース内のレコードの先頭のオフセット)である。「PID」は、ユーザ識別子である。「Age」は、ユーザの年齢である。「Region」は、ユーザが住む地域(ここでは、都道府県)である。
Now, it is assumed that one data source (X) shown in FIG. 27 is stored in the data source storage unit 111 of the data source management device 2. The structure of the data source of FIG. 27 is generally the same as the structure of the data source of FIG. 12, although the presence or absence of "Region" in the label record is different.
The label record is here the first line of the file. A label record is a set of attribute identifiers. Some attribute identifiers in the set of attribute identifiers can be key item identifiers. In FIG. 27, [No. ] Is a record ID, and its value is [1] [2] [3] or the like in FIG. 27. In addition, [No. ] Is the record position information of each record (here, the offset at the beginning of the record in the data source). "PID" is a user identifier. "Age" is the age of the user. The "Region" is the area where the user lives (here, the prefecture).

かかる状況において、2つの具体例について説明する。具体例1は、2以上のレコード・インデックスを生成する処理の例である。具体例2は、2以上のレコード・インデックスから一のレコード・インデックスを選択し、当該レコード・インデックスを用いて検索する処理の例である。 In such a situation, two specific examples will be described. Specific example 1 is an example of a process for generating two or more record indexes. Specific example 2 is an example of a process of selecting one record index from two or more record indexes and searching using the record index.

(具体例1)
検索装置4の管理者は、インデックス生成指示を端末装置3に入力した、とする。なお、かかるインデックス生成指示は、データソース(X)を特定する情報と、1以上のキー項目の集合を特定する情報とを含む、とする。具体的には、インデックス生成指示は、「<データソース>X <キー項目集合>(Age,PID) <キー項目集合>(Region,Age) <キー項目集合>(PID)」を含むとする。
(Specific example 1)
It is assumed that the administrator of the search device 4 has input the index generation instruction to the terminal device 3. It is assumed that the index generation instruction includes information for specifying the data source (X) and information for specifying a set of one or more key items. Specifically, it is assumed that the index generation instruction includes "<data source> X <key item set> (Age, PID) <key item set> (Region, Age) <key item set>(PID)".

次に、端末装置3は、当該インデックス生成指示を受け付け、当該インデックス生成指示を検索装置4に送信する。 Next, the terminal device 3 receives the index generation instruction and transmits the index generation instruction to the search device 4.

次に、検索装置4の受付部12は、当該インデックス生成指示を端末装置3から受信する。次に、インデックス生成部131は、以下のようにデータソース(X)のレコード・インデックスを生成する。 Next, the reception unit 12 of the search device 4 receives the index generation instruction from the terminal device 3. Next, the index generation unit 131 generates a record index of the data source (X) as follows.

つまり、レコード・インデックス生成部4313は、インデックス生成指示が有するキー項目集合「<キー項目集合>(Age,PID) <キー項目集合>(Region,Age) <キー項目集合>(PID)」を取得する。 That is, the record index generation unit 4313 acquires the key item set "<key item set> (Age, PID) <key item set> (Region, Age) <key item set> (PID)" that the index generation instruction has. do.

次に、レコード・インデックス生成部4313は、「<データソース>X」と「<キー項目集合>(Age,PID)」とを用いて、データソース(X)が格納されているデータソース管理装置2にアクセスし、データソース(X)を読み込む。次に、レコード・インデックス生成部4313は、データソース(X)の各レコードの属性値「Age」と属性値「PID」とレコード位置情報とを含むレコード・インデックスレコードを、データソース(X)のレコードごとに取得する。次に、レコード・インデックス生成部4313は、レコード・インデックスレコードを、「Age」と「PID」との2つの属性値をキーとして、ソートして、蓄積するレコード・インデックスを構成する。そして、レコード・インデックス生成部4313は、当該レコード・インデックスを、レコード・インデックス格納部4113に蓄積する。 Next, the record index generation unit 4313 uses "<data source> X" and "<key item set> (Age, PID)" to store the data source (X) in the data source management device. Access 2 and read the data source (X). Next, the record index generation unit 4313 selects a record index record including the attribute value "Age", the attribute value "PID", and the record position information of each record of the data source (X) in the data source (X). Get for each record. Next, the record index generation unit 4313 sorts the record index records using the two attribute values of "Age" and "PID" as keys, and constitutes a record index to be accumulated. Then, the record index generation unit 4313 stores the record index in the record index storage unit 4113.

なお、かかるレコード・インデックスにおいて、第一キー「Age」、第二キー「PID」の2つの属性値をキーとして、昇順または降順にソートされている。また、レコード・インデックス生成部4313は、当該レコード・インデックスのスキーマ情報(Age,PID)を、当該レコード・インデックスに対応付けて、レコード・インデックス格納部4113に蓄積する。なお、ここでは、スキーマ情報は、1以上の属性識別子を含む。また、スキーマ情報が2以上の属性識別子を有する場合、2以上の属性識別子には順序がある。また、ここで蓄積されたレコード・インデックスを、レコード・インデック(1)とする(図28参照)。 In the record index, the records are sorted in ascending or descending order using the two attribute values of the first key "Age" and the second key "PID" as keys. Further, the record index generation unit 4313 stores the schema information (Age, PID) of the record index in the record index storage unit 4113 in association with the record index. Here, the schema information includes one or more attribute identifiers. Further, when the schema information has two or more attribute identifiers, the two or more attribute identifiers have an order. Further, the record index accumulated here is referred to as a record index (1) (see FIG. 28).

次に、レコード・インデックス生成部4313は、「<データソース>X」と「<キー項目集合>(Region,Age)」とを用いて、データソース(X)が格納されているデータソース管理装置2にアクセスし、データソース(X)の各レコードの属性値「Region」と属性値「Age」とレコード位置情報とを含むレコード・インデックスレコードを、データソース(X)のレコードごとに取得する。次に、レコード・インデックス生成部4313は、レコード・インデックスレコードを、「Region」と「Age」との2つの属性値をキーとして、ソートして、蓄積するレコード・インデックスを構成する。そして、レコード・インデックス生成部4313は、当該レコード・インデックスを、レコード・インデックス格納部4113に蓄積する。 Next, the record index generation unit 4313 uses "<data source> X" and "<key item set> (Region, Age)" to store a data source (X). Access 2 and acquire a record index record including the attribute value "Region", the attribute value "Age", and the record position information of each record of the data source (X) for each record of the data source (X). Next, the record index generation unit 4313 sorts the record index records using the two attribute values of "Region" and "Age" as keys, and constitutes a record index to be accumulated. Then, the record index generation unit 4313 stores the record index in the record index storage unit 4113.

なお、かかるレコード・インデックスにおいて、第一キー「Region」、第二キー「Age」の2つの属性値をキーとして、昇順または降順にソートされている。また、レコード・インデックス生成部4313は、当該レコード・インデックスのスキーマ情報(Region,Age)を、当該レコード・インデックスに対応付けて、レコード・インデックス格納部4113に蓄積する。また、ここで蓄積されたレコード・インデックスを、レコード・インデックス(2)とする(図28参照)。 In the record index, the records are sorted in ascending or descending order using the two attribute values of the first key "Region" and the second key "Age" as keys. Further, the record index generation unit 4313 stores the schema information (Region, Age) of the record index in the record index storage unit 4113 in association with the record index. Further, the record index accumulated here is referred to as a record index (2) (see FIG. 28).

次に、レコード・インデックス生成部4313は、「<データソース>X」と「<キー項目集合>(PID)」とを用いて、データソース(X)が格納されているデータソース管理装置2にアクセスし、データソース(X)の各レコードの属性値「PID」とレコード位置情報とを含むレコード・インデックスレコードを、データソース(X)のレコードごとに取得する。次に、レコード・インデックス生成部4313は、レコード・インデックスレコードを、「PID」の属性をキーとして、ソートして、蓄積するレコード・インデックスを構成する。そして、レコード・インデックス生成部4313は、当該レコード・インデックスを、レコード・インデックス格納部4113に蓄積する。 Next, the record index generation unit 4313 uses "<data source> X" and "<key item set> (PID)" in the data source management device 2 in which the data source (X) is stored. Access and acquire a record index record including the attribute value "PID" of each record of the data source (X) and the record position information for each record of the data source (X). Next, the record index generation unit 4313 sorts the record index records using the attribute of "PID" as a key, and constitutes a record index to be accumulated. Then, the record index generation unit 4313 stores the record index in the record index storage unit 4113.

また、レコード・インデックス生成部4313は、当該レコード・インデックスのスキーマ情報(PID)を、当該レコード・インデックスに対応付けて、レコード・インデックス格納部4113に蓄積する。また、ここで蓄積されたレコード・インデックスを、レコード・インデックス(3)とする(図28参照)。 Further, the record index generation unit 4313 stores the schema information (PID) of the record index in the record index storage unit 4113 in association with the record index. Further, the record index accumulated here is referred to as a record index (3) (see FIG. 28).

以上の処理により、図28のレコード・インデックス(1)(2)(3)、およびレコード・インデックススキーマ情報2801が、レコード・インデックス格納部4113に蓄積された。 Through the above processing, the record indexes (1), (2), and (3) of FIG. 28 and the record index schema information 2801 are accumulated in the record index storage unit 4113.

(具体例2)
検索装置4のユーザは、検索条件「Select PID,Region,Age,TestA,TestB where Region=Tokyo AND Age=30 from データソース(X)」を端末装置3に入力した、とする。なお、検索条件のうちのwhere句を表した情報は、図28の2802である。
(Specific example 2)
It is assumed that the user of the search device 4 inputs the search condition "Select PID, Region, Age, TestA, TestB where Region = Tokyo AND Age = 30 from data source (X)" to the terminal device 3. The information representing the where clause in the search conditions is 2802 in FIG. 28.

そして、端末装置3は、当該検索条件を受け付け、当該検索条件を検索装置4に送信する。 Then, the terminal device 3 accepts the search condition and transmits the search condition to the search device 4.

次に、検索装置4の条件受付部121は、当該検索条件を端末装置3から受信する。 Next, the condition receiving unit 121 of the search device 4 receives the search condition from the terminal device 3.

次に、レコード・インデックス決定手段4322は、検索条件が有する「Region=Tokyo AND Age=30」を用いて、レコード・インデックスのスキーマ情報(図28の2801)を検査し、属性識別子「Region」と「Age」の両方を含むレコード・インデックス(2)を、検索に使用するレコード・インデックスとして決定する。 Next, the record index determining means 4322 inspects the schema information (2801 in FIG. 28) of the record index using the "Region = Tokyo AND Age = 30" of the search condition, and sets it as the attribute identifier "Region". A record index (2) containing both "Age" is determined as the record index to be used for the search.

次に、検索手段4323は、where句「Region=Tokyo AND Age=30」に合致するレコード・インデックスレコード2803を、レコード・インデックス(2)から検索する。そして、検索手段4323は、レコード2803が有するレコード位置情報(Record Pos)「241」を、レコード・インデックス(2)から取得する。 Next, the search means 4323 searches the record index (2) for the record index record 2803 that matches the where clause “Region = Tokyo AND Age = 30”. Then, the search means 4323 acquires the record position information (Record Pos) "241" possessed by the record 2803 from the record index (2).

次に、検索手段4323は、データソース(X)を読み込み、レコード位置情報「241」に対応するレコードの位置までファイルポインタを移動させる(図28の2804参照)。次に、検索手段4323は、検索条件に含まれる検索対象となる属性識別子「PID,Region,Age,TestA,TestB」を、2804のレコードから取得する。次に、検索手段4323は、データソース(X)のスキーマ情報(図示しない)を参照し、属性識別子「PID」の順番「1」、属性識別子「Region」の順番「3」、属性識別子「Age」の順番「2」、属性識別子「TestA」の順番「Y(Yは4以上の自然数)」、属性識別子「TestB」の順番「Y+1」を取得する。そして、検索手段4323は、レコード位置情報「241」により特定されるレコードの属性値を順番に走査し、属性識別子ごとに、順番が示す属性値を取得し、当該属性値を属性識別子に対応付けて蓄積する。そして、検索手段4323は、検索結果「<PID>155 <Region>Tokyo <Age>を30 <TestA>0.2 <TestB>0.24」を得る。 Next, the search means 4323 reads the data source (X) and moves the file pointer to the position of the record corresponding to the record position information "241" (see 2804 in FIG. 28). Next, the search means 4323 acquires the attribute identifier "PID, Region, Age, TestA, TestB" included in the search condition to be searched from the record of 2804. Next, the search means 4323 refers to the schema information (not shown) of the data source (X), the order "1" of the attribute identifier "PID", the order "3" of the attribute identifier "Region", and the attribute identifier "Age". "2", the order "Y (Y is a natural number of 4 or more)" of the attribute identifier "TestA", and the order "Y + 1" of the attribute identifier "TestB" are acquired. Then, the search means 4323 sequentially scans the attribute values of the records specified by the record position information "241", acquires the attribute values indicated by the order for each attribute identifier, and associates the attribute values with the attribute identifiers. And accumulate. Then, the search means 4323 obtains the search result "<PID> 155 <Region> Tokyo <Age> 30 <TestA> 0.2 <TestB> 0.24".

次に、結果出力部141は、取得された検索結果をユーザの端末装置3に送信する。 Next, the result output unit 141 transmits the acquired search result to the user's terminal device 3.

次に、端末装置3は、かかる検索結果を受信し、出力する。かかる検索結果の出力例は、図28の2805である。 Next, the terminal device 3 receives and outputs the search result. An output example of such a search result is 2805 of FIG. 28.

以上、本実施の形態によれば、2以上のレコード・インデックスを用いて、データソースから情報を検索することにより、バリエーションのある各検索条件に対して、情報検索を高速に行える。 As described above, according to the present embodiment, by searching for information from a data source using two or more record indexes, information retrieval can be performed at high speed for each search condition having variations.

また、本実施の形態によれば、適切な2以上のレコード・インデックスを生成できる。 Further, according to the present embodiment, it is possible to generate two or more appropriate record indexes.

なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における検索装置4を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、2以上の各キー項目に対応するキー項目値と1以上の各属性識別子に対応する属性値とを有する2以上のレコードを含むデータソースのレコードに対応するインデックスであり、1以上のキー項目の組み合わせに対応する1以上のキー項目値と当該1以上のキー項目値を含むレコードの位置を特定するレコード位置情報の組の集合である2以上のレコード・インデックスであり、各々、異なるキー項目の組み合わせに対応する2以上のレコード・インデックスが格納されるレコード・インデックス格納部にアクセス可能なコンピュータを、キー項目値を有する検索条件を受け付ける条件受付部と、前記2以上のレコード・インデックスから、前記検索条件が有するキー項目値に対応するキー項目を含む1以上のキー項目の組み合わせに対応する一のレコード・インデックスを選択し、当該選択したレコード・インデックスから、前記検索条件が有する前記キー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードの中の属性値を前記データソースから取得する検索部と、前記検索部が取得した前記属性値を含む検索結果を出力する結果出力部として機能させるためのプログラムである。 The processing in this 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 search device 4 in this embodiment is the following program. That is, this program is an index corresponding to a record of a data source including two or more records having a key item value corresponding to two or more key items and an attribute value corresponding to one or more attribute identifiers. A record index of two or more, which is a set of a set of record position information that specifies the position of a record containing one or more key item values corresponding to one or more key item combinations and the one or more key item values. A computer that can access a record index storage unit that stores two or more record indexes corresponding to different combinations of key items, a condition reception unit that accepts search conditions having key item values, and the above two or more units. From the record index, one record index corresponding to one or more key item combinations including the key item corresponding to the key item value of the search condition is selected, and the search condition is selected from the selected record index. A search unit that acquires the record position information paired with the key item value of the data source and acquires the attribute value in the record corresponding to the position specified by the record position information from the data source, and the search unit acquires the attribute value. This is a program for functioning as a result output unit that outputs a search result including the attribute value.

また、図29は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の検索装置4等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図29は、このコンピュータシステム300の概観図であり、図30は、システム300のブロック図である。 Further, FIG. 29 shows the appearance of a computer that executes the program described in the present specification to realize the search device 4 and the like in the various embodiments described above. The above-described embodiment can be realized by computer hardware and a computer program executed on the computer hardware. 29 is an overview view of the computer system 300, and FIG. 30 is a block diagram of the system 300.

図29において、コンピュータシステム300は、CD−ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。 In FIG. 29, the computer system 300 includes a computer 301 including a CD-ROM drive, a keyboard 302, a mouse 303, and a monitor 304.

図30において、コンピュータ301は、CD−ROMドライブ3012に加えて、MPU3013と、CD−ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。 In FIG. 30, in addition to the CD-ROM drive 3012, the computer 301 includes an MPU 3013, a bus 3014 connected to the CD-ROM drive 3012, the ROM 3015 for storing a program such as a boot-up program, and the MPU 3013. It includes a RAM 3016 that is connected and for temporarily storing instructions of an application program and providing a temporary storage space, and a hard disk 3017 for storing an application program, a system program, and data. Although not shown here, the computer 301 may further include a network card that provides a connection to the LAN.

コンピュータシステム300に、上述した実施の形態の検索装置4等の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。 The program for causing the computer system 300 to execute the functions of the search device 4 and the like according to the above-described embodiment may be stored in the CD-ROM 3101, inserted into the CD-ROM drive 3012, and further transferred to the hard disk 3017. Alternatively, the program may be transmitted to the computer 301 via a network (not shown) and stored in the hard disk 3017. The program is loaded into RAM 3016 at run time. The program may be loaded directly from the CD-ROM3101 or the network.

プログラムは、コンピュータ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 computer 301 to execute the functions of the search device 4 or the like according to the above-described embodiment. The program only needs to include a part of instructions that call the appropriate function (module) in a controlled manner and obtain the desired result. It is well known how the computer system 300 works, and detailed description thereof will be omitted.

なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。 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.

以上のように、本発明にかかる検索装置4は、バリエーションのある各検索条件に対して、情報検索を高速に行えるという効果を有し、検索サーバ等として有用である。 As described above, the search device 4 according to the present invention has an effect that information retrieval can be performed at high speed for each search condition having variations, and is useful as a search server or the like.

1、4 検索装置
2 データソース管理装置
3 端末装置
11、41 格納部
12 受付部
13、43 処理部
14、44 出力部
31 端末格納部
32 端末受付部
33 端末処理部
34 端末送信部
35 端末受信部
36 端末出力部
111 データソース格納部
112、411 インデックス格納部
121 条件受付部
131、431 インデックス生成部
132、432 検索部
133、433 インデックス更新部
141、441 結果出力部
1121 配列インデックス格納部
1122 配列ラベル・インデックス格納部
1123、4123 レコード・インデックス格納部
1125 ソース・インデックス格納部
1311 配列インデックス生成部
1312 配列ラベル・インデックス生成部
1313、4313 レコード・インデックス生成部
1315 ソース・インデックス生成部
4321 ソース決定手段
4322 レコード・インデックス決定手段
4323 検索手段
1, 4 Search device 2 Data source management device 3 Terminal device 11, 41 Storage unit 12 Reception unit 13, 43 Processing unit 14, 44 Output unit 31 Terminal storage unit 32 Terminal reception unit 33 Terminal processing unit 34 Terminal transmission unit 35 Terminal reception Section 36 Terminal output section 111 Data source storage section 112, 411 Index storage section 121 Condition reception section 131, 431 Index generation section 132, 432 Search section 133, 433 Index update section 141, 441 Result output section 1121 Array index storage section 1122 Array Label index storage unit 1123, 4123 Record index storage unit 1125 Source index storage unit 1311 Array index generation unit 1312 Array label index generation unit 1313, 4313 Record index generation unit 1315 Source index generation unit 4321 Source determination means 4322 Record index determination means 4323 Search means

Claims (9)

2以上の各キー項目に対応するキー項目値と1以上の各属性識別子に対応する属性値とを有する2以上のレコードを含むデータソースのレコードに対応するインデックスであり、1以上のキー項目の組み合わせに対応する1以上のキー項目値と当該1以上のキー項目値を含むレコードの位置を特定するレコード位置情報の組の集合である2以上のレコード・インデックスであり、各々、異なるキー項目の組み合わせに対応する2以上のレコード・インデックスが格納されるレコード・インデックス格納部と、
キー項目値を有する検索条件を受け付ける条件受付部と、
前記2以上のレコード・インデックスから、前記検索条件が有するキー項目値に対応するキー項目を含む1以上のキー項目の組み合わせに対応する一のレコード・インデックスを選択し、当該選択したレコード・インデックスから、前記検索条件が有する前記キー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードの中の属性値を前記データソースから取得する検索部と、
前記検索部が取得した前記属性値を含む検索結果を出力する結果出力部とを具備する検索装置。
An index corresponding to a record in a data source containing two or more records having a key item value corresponding to two or more key items and an attribute value corresponding to one or more attribute identifiers, and is an index corresponding to one or more key items. Two or more record indexes that are a set of record position information sets that specify the position of a record containing one or more key item values corresponding to a combination and the one or more key item values, each of which has a different key item. A record index storage unit that stores two or more record indexes corresponding to a combination,
Condition reception unit that accepts search conditions with key item values,
From the two or more record indexes, one record index corresponding to the combination of one or more key items including the key item corresponding to the key item value of the search condition is selected, and from the selected record index. , A search unit that acquires the record position information paired with the key item value of the search condition and acquires the attribute value in the record corresponding to the position specified by the record position information from the data source.
A search device including a result output unit that outputs a search result including the attribute value acquired by the search unit.
2以上のレコードのうちの1以上の各レコードごと、および各レコードの1以上の各属性ごとに、属性値が存在する位置を特定する属性位置情報を有する配列インデックスが格納される配列インデックス格納部をさらに具備し、
前記検索条件は、属性識別子をさらに有し、
前記検索部は、
前記検索条件が有する前記属性識別子に対応する属性位置情報を、前記配列インデックスから取得し、当該属性位置情報を用いて、前記検索条件が有する前記属性識別子に対応する属性値を、前記データソースから取得する、請求項1記載の検索装置。
An array index storage unit that stores an array index having attribute position information that specifies the position where the attribute value exists for each one or more records of two or more records and for each one or more attributes of each record. Further equipped,
The search condition further has an attribute identifier and
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 obtained from the data source using the attribute position information. The search device according to claim 1 to be acquired.
前記2以上の各レコード・インデックスにおいて、1以上のキー項目値とレコード位置情報の2以上の組は、1以上のキー項目値の組み合わせをキーとしてソートされており、
前記検索部は、
前記2以上のレコード・インデックスから、レコード・インデックスの先頭のキー項目が、前記検索条件が有するキー項目値に対応するキー項目と一致する場合には、当該レコード・インデックスを選択し、当該選択したレコード・インデックスから、前記検索条件が有する前記キー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードの中の属性値を前記データソースから取得する、請求項1または請求項2記載の検索装置。
In each of the two or more record indexes, two or more sets of one or more key item values and record position information are sorted using a combination of one or more key item values as a key.
The search unit
If the key item at the beginning of the record index from the two or more record indexes matches the key item corresponding to the key item value of the search condition, the record index is selected and selected. The record position information paired with the key item value of the search condition is acquired from the record index, and the attribute value in the record corresponding to the position specified by the record position information is acquired from the data source. The search device according to claim 1 or claim 2.
前記検索部は、
レコード・インデックスの先頭のキー項目が前記検索条件が有するキー項目値に対応するキー項目と一致する2以上のレコード・インデックスが存在する場合、当該2以上のレコード・インデックスの次のキー項目が前記検索条件が有するキー項目と一致するかどうかを判定して、レコード・インデックスの先頭から最も多くのキー項目が検索条件が有するキー項目に含まれる一のレコード・インデックスを選択し、当該選択したレコード・インデックスから、前記検索条件が有する前記キー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードの中の属性値を前記データソースから取得する、請求項3記載の検索装置。
The search unit
If there are two or more record indexes whose first key item in the record index matches the key item corresponding to the key item value of the search condition, the next key item of the two or more record indexes is said. It is determined whether or not it matches the key item of the search condition, and one record index in which the most key items are included in the key item of the search condition is selected from the beginning of the record index, and the selected record is selected. -A billing that acquires the record position information paired with the key item value of the search condition from the index and acquires the attribute value in the record corresponding to the position specified by the record position information from the data source. Item 3. The search device according to item 3.
前記データソースを参照し、当該データソースの2以上の各レコードのキー項目値とレコード位置情報との組である2以上のレコード・インデックスであり、各々、異なる1以上のキー項目の組み合わせに対応する2以上のレコード・インデックスを生成し、前記レコード・インデックス格納部に蓄積するレコード・インデックス生成部をさらに具備する請求項1から請求項4いずれか一項に記載の検索装置。 With reference to the data source, two or more record indexes that are a set of key item values and record position information of two or more records of the data source, each corresponding to a combination of one or more different key items. The search device according to any one of claims 1 to 4, further comprising a record index generation unit that generates two or more record indexes and stores the record index storage unit. 前記レコード・インデックス生成部は、
選択条件を満たす1以上のキー項目の組み合わせを、2組以上、決定し、当該2組以上の各組の1以上のキー項目の組み合わせに対応する前記2以上の各レコードのキー項目値とレコード位置情報との組であるレコード・インデックスを生成し、前記レコード・インデックス格納部に蓄積する、請求項5記載の検索装置。
The record index generator is
Two or more sets of combinations of one or more key items satisfying the selection condition are determined, and the key item values and records of the two or more records corresponding to the combination of one or more key items of each of the two or more sets. The search device according to claim 5, wherein a record index that is a set with position information is generated and stored in the record index storage unit.
前記選択条件は、前記データソースの2以上の各レコードに含まれる属性値の分散が閾値以上または閾値より大きい属性値に対応するキー項目を含む1以上のキー項目の組み合わせであること、または過去の1以上の検索条件において閾値以上または閾値より多い頻度で含まれている属性値に対応するキー項目を含む1以上のキー項目の組み合わせであることである、請求項6記載の検索装置。 The selection condition is a combination of one or more key items including a key item corresponding to an attribute value whose distribution of the attribute values contained in each of the two or more records of the data source is equal to or greater than the threshold value or is greater than the threshold value. The search device according to claim 6, wherein the search device is a combination of one or more key items including a key item corresponding to an attribute value included in one or more search conditions of the threshold value or more or more frequently than the threshold value. 2以上の各キー項目に対応するキー項目値と1以上の各属性識別子に対応する属性値とを有する2以上のレコードを含むデータソースのレコードに対応するインデックスであり、1以上のキー項目の組み合わせに対応する1以上のキー項目値と当該1以上のキー項目値を含むレコードの位置を特定するレコード位置情報の組の集合である2以上のレコード・インデックスであり、各々、異なるキー項目の組み合わせに対応する2以上のレコード・インデックスが格納されるレコード・インデックス格納部と、条件受付部と、検索部と、結果出力部とにより実現される検索方法であって、
前記条件受付部が、キー項目値を有する検索条件を受け付ける条件受付ステップと、
前記検索部が、前記2以上のレコード・インデックスから、前記検索条件が有するキー項目値に対応するキー項目を含む1以上のキー項目の組み合わせに対応する一のレコード・インデックスを選択し、当該選択したレコード・インデックスから、前記検索条件が有する前記キー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードの中の属性値を前記データソースから取得する検索ステップと、
前記結果出力部が、前記検索ステップで取得された前記属性値を含む検索結果を出力する結果出力ステップとを具備する検索方法。
An index corresponding to a record in a data source containing two or more records having a key item value corresponding to two or more key items and an attribute value corresponding to one or more attribute identifiers, and is an index corresponding to one or more key items. Two or more record indexes that are a set of record position information sets that specify the position of a record containing one or more key item values corresponding to a combination and the one or more key item values, each of which has a different key item. It is a search method realized by a record index storage unit that stores two or more record indexes corresponding to a combination, a condition reception unit, a search unit, and a result output unit.
A condition reception step in which the condition reception unit accepts a search condition having a key item value,
The search unit selects one record index corresponding to a combination of one or more key items including the key item corresponding to the key item value of the search condition from the two or more record indexes, and the selection is made. The record position information paired with the key item value of the search condition is acquired from the obtained record index, and the attribute value in the record corresponding to the position specified by the record position information is acquired from the data source. Search steps and
A search method in which the result output unit includes a result output step that outputs a search result including the attribute value acquired in the search step.
2以上の各キー項目に対応するキー項目値と1以上の各属性識別子に対応する属性値とを有する2以上のレコードを含むデータソースのレコードに対応するインデックスであり、1以上のキー項目の組み合わせに対応する1以上のキー項目値と当該1以上のキー項目値を含むレコードの位置を特定するレコード位置情報の組の集合である2以上のレコード・インデックスであり、各々、異なるキー項目の組み合わせに対応する2以上のレコード・インデックスが格納されるレコード・インデックス格納部にアクセス可能なコンピュータを、
キー項目値を有する検索条件を受け付ける条件受付部と、
前記2以上のレコード・インデックスから、前記検索条件が有するキー項目値に対応するキー項目を含む1以上のキー項目の組み合わせに対応する一のレコード・インデックスを選択し、当該選択したレコード・インデックスから、前記検索条件が有する前記キー項目値と対になるレコード位置情報を取得し、当該レコード位置情報が特定する位置に対応するレコードの中の属性値を前記データソースから取得する検索部と、
前記検索部が取得した前記属性値を含む検索結果を出力する結果出力部として機能させるためのプログラム。
An index corresponding to a record in a data source containing two or more records having a key item value corresponding to two or more key items and an attribute value corresponding to one or more attribute identifiers, and is an index corresponding to one or more key items. Two or more record indexes that are a set of record position information sets that specify the position of a record containing one or more key item values corresponding to a combination and the one or more key item values, each of which has a different key item. A computer that has access to a record index store that stores two or more record indexes that correspond to a combination.
Condition reception unit that accepts search conditions with key item values,
From the two or more record indexes, one record index corresponding to the combination of one or more key items including the key item corresponding to the key item value of the search condition is selected, and from the selected record index. , A search unit that acquires the record position information paired with the key item value of the search condition and acquires the attribute value in the record corresponding to the position specified by the record position information from the data source.
A program for functioning as a result output unit that outputs a search result including the attribute value acquired by the search unit.
JP2021128808A 2021-06-30 2021-08-05 Search device, search method, and program Active JP6974666B1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2021128808A JP6974666B1 (en) 2021-08-05 2021-08-05 Search device, search method, and program
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
US17/777,219 US20230281197A1 (en) 2021-06-30 2021-08-27 Search apparatus, search method, and storage medium
JP2021150903A JP2023024224A (en) 2021-08-05 2021-09-16 Retrieval device, retrieval method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021128808A JP6974666B1 (en) 2021-08-05 2021-08-05 Search device, search method, and program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021150903A Division JP2023024224A (en) 2021-08-05 2021-09-16 Retrieval device, retrieval method and program

Publications (2)

Publication Number Publication Date
JP6974666B1 true JP6974666B1 (en) 2021-12-01
JP2023023355A JP2023023355A (en) 2023-02-16

Family

ID=78766786

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021128808A Active JP6974666B1 (en) 2021-06-30 2021-08-05 Search device, search method, and program
JP2021150903A Pending JP2023024224A (en) 2021-08-05 2021-09-16 Retrieval device, retrieval method and program

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021150903A Pending JP2023024224A (en) 2021-08-05 2021-09-16 Retrieval device, retrieval method and program

Country Status (1)

Country Link
JP (2) JP6974666B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015207026A (en) * 2012-08-29 2015-11-19 株式会社ターボデータラボラトリー Information processor, record position information specification method and information processing program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015207026A (en) * 2012-08-29 2015-11-19 株式会社ターボデータラボラトリー Information processor, record position information specification method and information processing program

Also Published As

Publication number Publication date
JP2023024224A (en) 2023-02-16
JP2023023355A (en) 2023-02-16

Similar Documents

Publication Publication Date Title
US11573996B2 (en) System and method for hierarchically organizing documents based on document portions
CN102023989B (en) Information retrieval method and system thereof
US7409404B2 (en) Creating taxonomies and training data for document categorization
JP2008123426A (en) Index processing method and computer system
KR101386832B1 (en) System and method for television search assistant
KR20010042377A (en) Information retrieval and speech recognition based on language models
CN101853272A (en) Search engine technology based on relevance feedback and clustering
KR20090077073A (en) Personal music recommendation mapping
CN107180093A (en) Information search method and device and ageing inquiry word recognition method and device
US7277881B2 (en) Document retrieval system and search server
CN106709851A (en) Big data retrieval method and apparatus
CN106708814B (en) Retrieval method and device based on relational database
JP6974666B1 (en) Search device, search method, and program
US9805085B2 (en) Locating ambiguities in data
JP6974665B1 (en) Search device, search method, and program
CN111143400A (en) Full-stack type retrieval method, system, engine and electronic equipment
JP2011170461A (en) Information accumulation retrieval method and information accumulation retrieval program
JP7425827B2 (en) Text data collection device and method
JP6970867B1 (en) Search device, search method, and program
JP2005078245A (en) Content search device using dendrogram
CN105260467B (en) A kind of SMS classified method and device
JPH11110404A (en) Data retrieval supporting device and method therefor, and recording medium for recording the same method
CN105701119A (en) Search filtering method and processing device thereof
CN111209378B (en) Ordered hierarchical ordering method based on business dictionary weights
WO2023276168A1 (en) Search device, search method, and recording medium

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150