Index key generation device, index key generation method, and index key generation program

The index key generation device corrects attribute origins to ensure sequential arrangement of index keys, addressing inefficiencies in existing methods and improving search efficiency in multi-attribute range searches.

WO2026088463A1PCT designated stage Publication Date: 2026-04-30MITSUBISHI ELECTRIC CORP
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
MITSUBISHI ELECTRIC CORP
Filing Date
2025-01-24
Publication Date
2026-04-30

AI Technical Summary

Technical Problem

Existing index key generation methods fail to arrange search results continuously on the index, leading to inefficient search processes, especially in range searches involving multiple attributes.

Method used

An index key generation device that corrects the origin of attribute values to enhance continuity, using an origin generation unit to generate origin information and a bit processing unit to convert attribute values into a corrected format for generating index keys.

Benefits of technology

This approach improves the efficiency of index-based searches by ensuring index keys are arranged sequentially, reducing unnecessary data references and enhancing search performance in densely clustered attribute ranges.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025002175_30042026_PF_FP_ABST
    Figure JP2025002175_30042026_PF_FP_ABST
Patent Text Reader

Abstract

An origin generation unit (12) generates origin information indicating a corrected origin obtained by correcting the position of the origin, so that an attribute value becomes a value with a higher continuity of values of an index key generated by arranging bits constituting the attribute value for each of a plurality of attributes. A bit processing unit (13) converts the attribute value of each of the plurality of attributes into a value based on the corrected origin indicated by the origin information, and generates an index key by arranging bits constituting the converted attribute value for each of the plurality of attributes.
Need to check novelty before this filing date? Find Prior Art

Description

Index Key Generation Device, Index Key Generation Method, and Index Key Generation Program

[0001] The present disclosure relates to a technique for generating an index key for accelerating searches.

[0002] There are cases where database searches are performed by specifying conditions related to a plurality of attributes. In order to accelerate such searches, an index key, which is a one-dimensional value, may be generated from a plurality of attributes, and an index that sorts and holds the plurality of attributes based on the index key may be used. The index key can be generated by mixing the bit sequences of the values of each attribute. For example, when the bit sequence of the attribute value of attribute A is "A1A2A3A4" and the bit sequence of the attribute value of attribute B is "B1B2B3B4", index keys such as "A1A2A3A4B1B2B3B4" and "A1B1A2B2A3B3A4B4" can be generated.

[0003] In a search that specifies conditions related to a plurality of attributes, when an index is used, it is desirable that the search results be arranged continuously on the index. When the search results are arranged continuously on the index, the search range within the index is smaller than when the search results are arranged intermittently on the index. Therefore, the search process is more likely to be made efficient. Thus, the performance of a search using an index varies depending on the search conditions, the method of generating the index key, and the like.

[0004] Patent Document 1 describes providing a method for generating an index key that takes into account search-related events such as the distribution of each attribute and the acquisition range of each attribute in a search. Thereby, Patent Document 1 aims to accelerate searches.

[0005] Japanese Patent No. 6187478

[0006] In the method for generating an index key described in Patent Document 1, in a search for acquiring attributes within a specific range, the search results may not be arranged continuously on the index. In this case, it is difficult to make the search process efficient in a search using an index.

[0007] For example, suppose the bit sequence of attribute value A is "A1A2A3A4", the bit sequence of attribute value B is "B1B2B3B4", and the index key generated by rearranging the bit sequences of attribute A and attribute B is "A1A2B1A3B2A4B3B4". In this case, the possible values ​​for attribute A and attribute B are in the range of "0000" (=0) to "1111" (=15). In a search that retrieves attribute values ​​in the range of "0111" (=7) to "1000" (=8) for both attribute A and attribute B, the retrieved index keys will be "01011111" (=95, attribute A=7, attribute B=7), "01110100" (=116, attribute A=7, attribute B=8), "10001011" (=139, attribute A=8, attribute B=7), and "10100000" (=160, attribute A=8, attribute B=8). As you can see, the index keys are not arranged consecutively on the index. Therefore, the speedup achieved by the index is less efficient compared to when the index keys are arranged consecutively.

[0008] This disclosure aims to improve the efficiency of index-based searches by making it easier to arrange index keys sequentially.

[0009] The index key generation device according to this disclosure includes: an input receiving unit that receives attribute values ​​which are values ​​for each of a plurality of attributes and are values ​​relative to the origin; an origin generation unit that generates origin information indicating a corrected origin in which the position of the origin has been corrected so that the attribute values ​​become values ​​which increase the continuity of the index key value generated by arranging the bits that constitute the attribute values ​​for each of the plurality of attributes received by the input receiving unit; and a bit processing unit that converts the attribute values ​​for each of the plurality of attributes into values ​​relative to the corrected origin indicated by the origin information generated by the origin generation unit, and generates an index key by arranging the bits that constitute the converted attribute values ​​for each of the plurality of attributes.

[0010] This disclosure improves the continuity of index keys by correcting the origin and transforming attribute values. This makes it possible to streamline searches using the index.

[0011] Functional configuration diagram of the search system 1 according to Embodiment 1. Hardware configuration diagram of the index key generation device 10 and database management device 20 according to Embodiment 1. Flowchart of the index generation process according to Embodiment 1. Explanatory diagram of multiple attribute values ​​221 according to Embodiment 1. Explanatory diagram of multiple attribute values ​​221 according to Embodiment 1. Explanatory diagram of the target attribute value 31 according to Embodiment 1. Explanatory diagram of the index definition information 222 according to Embodiment 1. Explanatory diagram of the origin generation process according to Embodiment 1. Explanatory diagram of the origin information 34 according to Embodiment 1. Explanatory diagram of the search range when using the index key 35 generated at the corrected origin according to Embodiment 1. Explanatory diagram of the search range when using the index key 35 generated at the corrected origin according to Embodiment 1. Explanatory diagram of the difference in continuity of index keys created by attribute X and attribute Y based on the difference in whether or not correction by the origin is performed according to Embodiment 1. Explanatory diagram of the difference in continuity of index keys created by attribute X and attribute Y based on the difference in whether or not correction by the origin is performed according to Embodiment 1. Explanatory diagram of attribute value update information 152 according to Embodiment 1. Explanatory diagram of index definition update information 153 according to Embodiment 1. Flowchart of the index search process and index update process according to Embodiment 1. Functional configuration diagram of the search system 1 according to Embodiment 2. Flowchart of the index generation process according to Embodiment 2. Explanatory diagram of the search condition information 225 according to Embodiment 2. Explanatory diagram of the origin generation process according to Embodiment 2. Explanatory diagram of the index 224 according to Embodiment 2. Flowchart of the index search process and index update process according to Embodiment 1.

[0012] Embodiment 1. ***Description of Configuration*** Referring to Figure 1, the functional configuration of the search system 1 according to Embodiment 1 will be described. The search system 1 comprises an index key generation device 10 and a database management device 20. The index key generation device 10 and the database management device 20 are connected via a transmission line. A specific example of the transmission line is a LAN. LAN is an abbreviation for Local Area Network.

[0013] The index key generation device 10 comprises, as functional components, an input receiving unit 11, an origin generation unit 12, a bit processing unit 13, an origin information management unit 14, and a generation device storage unit 15. The generation device storage unit 15 stores origin information 151, attribute value update information 152, and index definition update information 153.

[0014] The database management device 20 comprises an index management unit 21 and a database storage unit 22 as functional components. The database storage unit 22 stores a plurality of attribute values ​​221, index definition information 222, origin information 223, and an index 224.

[0015] Referring to Figure 2, the hardware configuration of the index key generation device 10 and the database management device 20 according to Embodiment 1 will be described. The index key generation device 10 and the database management device 20 are computers. The index key generation device 10 includes a processor 101, memory 102, storage 103, and a communication interface 104. The processor 101 is connected to other hardware via signal lines and controls this other hardware. Similarly, the database management device 20 includes a processor 201, memory 202, storage 203, and a communication interface 204. The processor 201 is connected to other hardware via signal lines and controls this other hardware.

[0016] Processors 101 and 201 are integrated circuits (ICs) that perform processing. IC stands for Integrated Circuit. Specific examples of processors 101 and 201 include CPUs, DSPs, and GPUs. CPU stands for Central Processing Unit. DSP stands for Digital Signal Processor. GPU stands for Graphics Processing Unit.

[0017] Memory 102 and 202 are storage devices that temporarily store data. Specific examples of memory 102 and 202 are SRAM and DRAM. SRAM stands for Static Random Access Memory. DRAM stands for Dynamic Random Access Memory.

[0018] Storage devices 103 and 203 are storage devices for storing data. A concrete example of storage devices 103 and 203 is an HDD. HDD stands for Hard Disk Drive. Alternatively, storage devices 103 and 203 may be portable recording media such as SD® memory cards, CompactFlash®, NAND flash, flexible disks, optical disks, compact disks, Blu-ray® discs, or DVDs. SD stands for Secure Digital. DVD stands for Digital Versatile Disk.

[0019] Communication interfaces 104 and 204 are interfaces for communicating with external devices. Specific examples of communication interfaces 104 and 204 include Ethernet®, USB, and HDMI® ports. USB stands for Universal Serial Bus. HDMI stands for High-Definition Multimedia Interface.

[0020] The functions of the input receiving unit 11, the origin generation unit 12, the bit processing unit 13, and the origin information management unit 14 of the index key generation device 10 are implemented by software. The storage 103 stores a program that implements the aforementioned functions of the index key generation device 10. This program is read into the memory 102 by the processor 101 and executed by the processor 101. This enables the implementation of the aforementioned functions of the index key generation device 10. The functions of the generation device storage unit 15 are implemented by at least one of the memory 102 and the storage 103.

[0021] Similarly, the functions of the index management unit 21 of the database management device 20 are implemented by software. The storage 203 stores a program that implements the aforementioned functions of the database management device 20. This program is loaded into memory 202 by the processor 201 and executed by the processor 201. This enables the implementation of the aforementioned functions of the database management device 20. The functions of the database storage unit 22 are implemented by at least one of memory 202 and storage 203.

[0022] In Figure 2, only one processor 101 was shown. However, there may be multiple processors 101, and multiple processors 101 may work together to execute programs that implement each function.

[0023] ***Explanation of Operation*** The operation of the search system 1 according to Embodiment 1 will be explained with reference to Figures 3 to 16. The operation procedure of the index key generation device 10 in the search system 1 according to Embodiment 1 corresponds to the index key generation method according to Embodiment 1. Furthermore, the program that realizes the operation of the index key generation device 10 in the search system 1 according to Embodiment 1 corresponds to the index key generation program according to Embodiment 1.

[0024] The operation of search system 1 includes an index generation process, an index search process, and an index update process. The index generation process generates origin information 34 and an index key 35, and sets the index key 35 as index 224. The index search process generates the index key 35 necessary for the search and performs the search using the index key 35. The index update process generates an index key 35 for the attribute value 221 to be updated and updates index 224.

[0025] Referring to Figure 3, the index generation process according to Embodiment 1 will be explained. (Step S11: Input reception process) The index management unit 21 of the database management device 20 inputs the target attribute value 31, index key information 32, and index definition information 33 to the index key generation device 10. The input reception unit 11 of the index key generation device 10 then receives the target attribute value 31, index key information 32, and index definition information 33. Specifically, the index management unit 21 extracts the value of the attribute to be indexed from a plurality of attribute values ​​221 and inputs it as the target attribute value 31. The index management unit 21 also inputs index generation as index key information 32. By inputting index generation as index key information 32, the index key generation device 10 can identify that it is performing an index generation process. Index key information 32 is information indicating the intended use of the index key generation device 10. Index key information 32 can include index generation, index search, and index update. Furthermore, the index management unit 21 inputs the index definition information 222 as index definition information 33.

[0026] Referring to Figures 4 and 5, a plurality of attribute values ​​221 according to Embodiment 1 will be described. An attribute value 221 includes the values ​​of two or more attributes. The values ​​of the two or more attributes are set to values ​​relative to the origin. In Figure 4, the attribute value 221 includes the values ​​of three attributes: attribute X, which represents the horizontal position; attribute Y, which represents the vertical position; and luminance at the position indicated by attribute X and attribute Y. The values ​​of attribute X and attribute Y are represented by integers relative to the origin 0. In Figure 5, each attribute value 221 is represented in a graph with attribute X on the horizontal axis and attribute Y on the vertical axis as in Figure 4. Here, the values ​​of attribute X and attribute Y are assumed to be in the range of 0 to 8000.

[0027] Referring to Figure 6, the target attribute value 31 according to Embodiment 1 will be described. The target attribute value 31 is generated by extracting the attribute value to be used for index 224 from a plurality of attribute values ​​221. In Figure 6, the target attribute value 31 is generated by extracting the values ​​of attribute X and attribute Y from the attribute values ​​221 shown in Figure 4.

[0028] Referring to Figure 7, the index definition information 222 according to Embodiment 1 will be explained. The index definition information 222 includes a pair of attribute names and attribute bit positions. The attribute name and attribute bit position indicate the bit arrangement in the index key when each attribute is represented by bits. In Figure 7, the attribute bit positions indicate the order in which the bits of the value of attribute X and the value of attribute Y are rearranged in the index key. In Figure 7, it is shown that the bits of each attribute are arranged sequentially from the most significant bit in the part where the bit sequence is 1. For example, taking the values ​​in Figure 4 as an example, suppose the value of attribute X is 3624 (bit sequence: 0 1110 0010 1000) and the value of attribute Y is 5160 (bit sequence: 1 0100 0010 1000). In this case, the index key will be 28839104 (bit sequence: 01 1011 1000 0000 1100 1100 0000). Note that the attribute bit positions do not need to be in this format, as long as the order of the bits of each attribute in the index key generation can be represented. For example, the bits of the bit sequence of attribute X can be represented from the beginning as X1, X2, ..., and the bits of the bit sequence of attribute Y can be represented from the beginning as Y1, Y2, ..., and the format that represents each attribute and bit position can be "X1Y1X2Y2...".

[0029] (Step S12: Origin generation process) The origin generation unit 12 generates origin information 34 from the target attribute value 31 and index definition information 33 received in step S11.

[0030] Let's explain this in detail with reference to Figure 8. In Figure 8, attribute X is represented on the horizontal axis and attribute Y is represented on the vertical axis, and it is assumed that both values ​​follow a normal distribution. In Embodiment 1, the origin generation unit 12 calculates the mean and standard deviation of the respective values ​​of attribute X and attribute Y. In Figure 8, the mean of attribute X is 4000 and the standard deviation is 1000, and the mean of attribute Y is 4000 and the standard deviation is 1000. The origin generation unit 12 sets the search range 1 to a range that is separated by a standard deviation value from the mean of each attribute. In Figure 8, the search range 1 for attribute X is from 3000 to 5000, and the search range 1 for attribute Y is from 3000 to 5000. The origin generation unit 12 also sets the search range 2 to a range that is separated by twice the standard deviation value from the mean of each attribute. In Figure 8, the search range 2 for attribute X is from 2000 to 6000, and the search range 2 for attribute Y is from 2000 to 6000. The origin generation unit 12 assumes that search range 1 and search range 2 are search ranges and searches for an origin that maintains the most continuity between the two search ranges. The range for searching for the origin is defined as the range from the minimum value that can represent each attribute to the minimum value of each attribute in search range 2. In Figure 8, the minimum values ​​that can represent each attribute are 0 for attribute X and 0 for attribute Y. The minimum values ​​of each attribute in the search range for each attribute (in this case, search range 2) are 2000 for attribute X and 2000 for attribute Y. Therefore, the value of attribute X of the candidate origin will be between 0 and 2000, and the value of attribute Y of the candidate origin will be between 0 and 2000. For example, X = 12, Y = 1954, etc., points within this range become candidate origins. The origin generation unit 12 sets a selected point from the candidate origin points as the candidate origin. The method of selecting the candidate origin is arbitrary. For example, one possible method is to use a point located at the edge of the range as a candidate origin, or to use points extracted at regular intervals from the current origin as candidate origins. The origin generation unit 12 sets search range 1 and search range 2 as the target search ranges. Then, the origin generation unit 12 generates index keys by correcting the attribute values ​​using the candidate origins for the vertices of the rectangle representing the target search range. The origin generation unit 12 calculates the difference between the minimum and maximum values ​​of the index keys generated for the target search range.The origin generation unit 12 then calculates the sum of the differences between search range 1 and search range 2 as the cost, and selects the candidate origin with the minimum cost as the corrected origin. The origin generation unit 12 then generates origin information 34 indicating the selected corrected origin.

[0031] Furthermore, the method for calculating the origin information 34 used in generating the index key 35 is not limited to the method described above, as long as it is possible to calculate the origin information 34 from the target attribute value 31 and the index definition information 33.

[0032] The origin generation unit 12 outputs the origin information 34 to the database management device 20. The index management unit 21 of the database management device 20 then writes the origin information 34 as origin information 223 to the database storage unit 22. The origin generation unit 12 also writes the origin information 34 as origin information 151 to the generation device storage unit 15.

[0033] Referring to Figure 9, the origin information 34 according to Embodiment 1 will be described. The origin information 34 includes a pair of attribute names and corrected origins. The attribute names and corrected origins indicate the corrected origin position for the attribute indicated by the attribute name when generating the index key 35. Note that this format is not necessary as long as the corrected origin position for each attribute in index key generation can be represented.

[0034] An index key calculated using the corrected origin is generated by converting the attribute value of each of the multiple attributes to a value based on the corrected origin, and then arranging the bits that make up the converted attribute value for each of the multiple attributes. Specifically, for each of the multiple attributes, the attribute value of that attribute is set to the value obtained by subtracting the value of the corrected origin for that attribute. Then, using that attribute value, the index definition information is applied, bits are arranged, and the index key is generated. For example, suppose the corrected origin of attribute X is 2000, the corrected origin of attribute Y is 2000, the value of attribute X is 3624, and the value of attribute Y is 5160. In this case, the corrected value of attribute X is 3624 - 2000 = 1624 (bit sequence: 0 0110 0101 1000), and the value of attribute Y is 5160 - 2000 = 3160 (0 1100 0101 1000). The index key will then be 7877568 (00 0111 1000 0011 0011 1100 0000).

[0035] Furthermore, the value converted using the corrected origin may be negative. In this case, a modulo operation is performed on the attribute that has become negative, using the maximum value that can represent that attribute. For example, suppose the origin position of attribute X is 2000 and the value of attribute X is 1895. In this case, the corrected value becomes -115, which is a negative number. Here, the maximum value of attribute X is set to be 8000 or less. Therefore, the maximum value of attribute X can be represented with 13 bits. Thus, a modulo operation is applied with 8192, the maximum value that can be represented with 13 bits, and the corrected value of -115 is converted to a final corrected value of 8077.

[0036] As a concrete example, we will explain how to select a corrected origin from the following two candidate origins. Candidate Origin 1: Attribute X value is 2000, attribute Y value is 2000 Candidate Origin 2: Attribute X value is 0, attribute Y value is 0 In this example, the two points located at the ends of the range of candidate origins are the candidate origins.

[0037] At candidate origin 1, the index key for the vertex in search range 1 is as follows. For vertex 1 (X=3000, Y=3000), the calculation is as follows: Due to the correction by candidate origin, the value of attribute X becomes 3000 - 2000 = 1000 (bit string: 0 0011 1110 1000). Similarly, the value of attribute Y becomes 3000 - 2000 = 1000 (bit string: 0 0011 1110 1000). Therefore, the index key = 1,047,744 (bit string: 00 0000 1111 1111 1100 1100 0000). For vertex 2 (X=3000, Y=5000), the calculation is as follows. After correction using the candidate origin, the value of attribute X becomes 3000 - 2000 = 1000 (bit string: 0 0011 1110 1000). Similarly, the value of attribute Y becomes 5000 - 2000 = 3000 (bit string: 0 1011 1011 1000). Therefore, the index key = 5,238,208 (bit string: 00 0100 1111 1110 1101 1100 0000). For vertex 3 (X=5000, Y=3000), the calculation is as follows: After correction using the candidate origin, the value of attribute X becomes 5000 - 3000 = 3000 (bit string: 0 1011 1011 1000). Similarly, the value of attribute Y becomes 3000 - 2000 = 1000 (bit string: 0 0011 1110 1000). Therefore, the index key = 9,428,672 (bit string: 00 1000 1111 1101 1110 1100 0000). For vertex 4 (X = 5000, Y = 5000), the calculation is as follows: Due to the correction by the candidate origin, the value of attribute X becomes 5000 - 2000 = 3000 (bit string: 0 1011 1011 1000). Similarly, the value of attribute Y becomes 5000 - 2000 = 3000 (bit string: 0 1011 1011 1000). Therefore, the index key becomes 13,619,136 (bit sequence: 00 1100 1111 1100 1111 1100 0000).

[0038] At candidate origin 1, the index keys for the vertices in search range 2 are as follows. (Calculations are omitted.) Vertex 1 (X=2000, Y=2000), index key: 0 Vertex 2 (X=2000, Y=6000), index key: 5,587,968 Vertex 3 (X=6000, Y=2000), index key: 11,175,936 Vertex 4 (X=6000, Y=6000), index key: 16,763,904

[0039] At candidate origin 2, the index keys for the vertices in search range 1 are as follows: Vertex 1 (X=3000, Y=3000), index key: 13,619,136 Vertex 2 (X=3000, Y=5000), index key: 26,200,768 Vertex 3 (X=5000, Y=3000), index key: 38,782,400 Vertex 4 (X=5000, Y=5000), index key: 51,364,032

[0040] At candidate origin 2, the index keys for the vertices in search range 2 are as follows: Vertex 1 (X=2000, Y=2000), index key: 4,190,976 Vertex 2 (X=2000, Y=6000), index key: 20,952,832 Vertex 3 (X=6000, Y=2000), index key: 37,714,688 Vertex 4 (X=6000, Y=6000), index key: 54,476,544

[0041] The minimum and maximum difference between the index keys of the search range and their sum in the case of candidate origin 1 are as follows: Search range 1: 13,619,136 - 1,047,744 = 12,571,392 Search range 2: 16,763,904 - 0 = 16,763,904 Sum: 12,571,392 + 16,763,904 = 29,335,296

[0042] In the case of candidate origin 2, the minimum and maximum difference of the index keys in the search range and their sum are as follows: Search range 1: 51,364,032 - 13,619,136 = 37,744,896 Search range 2: 54,476,544 - 4,190,976 = 50,285,568 Sum: 37,744,896 + 50,285,568 = 88,030,464

[0043] The total value of the differences of candidate origin 1 is smaller than the total value of the differences of candidate origin 2 (29,335,296 < 88,030,464). Therefore, the origin generation unit 12 selects candidate origin 1 as the corrected origin.

[0044] Referring to FIGS. 10 and 11, the search range when using the index key 35 generated from the corrected origin will be described. FIG. 10 shows the range when searching the search range 2 (X = (2000, 6000), Y = (2000, 6000)) of the index key created using candidate origin 1 (X = 2000, Y = 2000), and the range narrowed by the index key. FIG. 11 shows the range when searching the search range 2 (X = (2000, 6000), Y = (2000, 6000)) of the index key created using candidate origin 2 (X = 0, Y = 0), and the range narrowed by the index key. Comparing FIG. 10 and FIG. 11, it can be seen that candidate origin 1, for which the difference between the minimum value and the maximum value of the index key is smaller, does not need to refer to data in the extra range, and the narrowing by the index becomes efficient.

[0045] In the example here, the difference values of the index keys when two of the points that can be candidate origins are used as the origin are compared. However, any part or all of the points that can be candidate origins may be used as candidate origins for comparison.

[0046] FIGS. 12 and 13 show the difference in the continuity of the index keys created by attribute X and attribute Y based on the difference in the presence or absence of correction by the origin. In this example, the values of both attribute X and attribute Y are minimum 0 and maximum 15. In FIG. 12, the origin is X = 4, Y = 4, and in FIG. 13, the origin is X = 0, Y = 0. FIGS. 12 and 13 both show the range of the index keys when searching the range from X = 4 to X = 11 and from Y = 4 to Y = 11. Here, FIG. 12 with the shifted origin has a narrower range of index keys, and the search is made more efficient. This phenomenon also occurs similarly in a wide range such as FIGS. 10 and 11.

[0047] (Step S13: Index Key Generation Process) The bit processing unit 13 generates an index key 35 from the target attribute value 31 received in step S11 based on the origin information 34 generated in step S12. Specifically, the bit processing unit 13 converts the attribute value of each of the plurality of attributes included in the target attribute value 31 into a value based on the corrected origin indicated by the origin information 34. That is, for the value of attribute X, the bit processing unit 13 converts it into a value based on the corrected origin of attribute X indicated by the origin information 34. Also, for the value of attribute Y, the bit processing unit 13 converts it into a value based on the corrected origin of attribute Y indicated by the origin information 34. Then, the bit processing unit 13 arranges the bits constituting the converted attribute values for each of the plurality of attributes according to the index definition information 33 received in step S11. Thereby, the bit processing unit 13 generates the index key 35 which is a scalar value.

[0048] The bit processing unit 13 outputs the index key 35 to the database management device 20. Then, the index management unit 21 of the database management device 20 creates an index 224 from the index key 35 and the plurality of attribute values 221 and writes it into the database storage unit 22. Specifically, the index management unit 21 creates, as the index 224, a data structure in which the plurality of attribute values 221 are arranged in the order of the index key 35 and writes it into the database storage unit 22.

[0049] (Step S14: Origin Information Management Process) The origin information management unit 14 acquires the target attribute value 31 received in step S11 and the index definition information 33. The origin information management unit 14 calculates the statistical value of the target attribute value 31 and writes the statistical value into the generator storage unit 15 as the attribute value update information 152. As a specific example, the statistical value is the average value and variance for each attribute. Also, the origin information management unit 14 writes the index definition information 33 into the generator storage unit 15 as the index definition update information 153.

[0050] The attribute value update information 152 is information used to check whether the distribution of multiple attributes targeted by the index 224 used when creating the origin information 34 has changed. In Figure 14, the attribute value update information 152 shows the time when the index 224 was updated, the number of sets of each attribute value at the time the index 224 was updated, the mean, and the variance. By having the number of sets, the mean, and the variance, it is possible to calculate a new mean and variance including the added attribute values ​​using the target attribute values ​​31 that were added when the index 224 was updated. This allows us to check the change in the distribution of each attribute value. Note that if it is possible to check the change in the distribution of multiple attributes targeted for the generation of the index 224, the attribute value update information 152 does not need to be in this format.

[0051] The index definition update information 153 is information used to confirm whether the index definition information 222 used when creating the origin information 34 has been updated. In the example shown in Figure 15, the index definition information 33 received in step S11 when creating the origin information 34 is stored as the index definition update information 153. The origin information management unit 14 compares the index definition information 33 received during the index search process or index update process with the index definition update information 153, and determines that an update has occurred if there is a difference. Note that if the update of the index definition information 222 can be confirmed, the index definition update information 153 does not need to be in this format.

[0052] Referring to Figure 16, the index search process and index update process according to Embodiment 1 will be explained. (Step S21: Input reception process) The index management unit 21 of the database management device 20 inputs the target attribute value 31, index key information 32, and index definition information 33 to the index key generation device 10. Then, the input reception unit 11 of the index key generation device 10 receives the target attribute value 31, index key information 32, and index definition information 33.

[0053] Let's explain the case of an index search process in detail. The index management unit 21 extracts the attribute values ​​221 necessary for the search from a plurality of attribute values ​​221 and inputs them as target attribute values ​​31. The attribute values ​​221 necessary for the search are the attribute values ​​221 to be used as search keywords. The index management unit 21 also inputs the index search as index key information 32. By inputting the index search as index key information 32, the index key generation device 10 can identify that it is an index search process. The index management unit 21 also inputs the index definition information 222 as index definition information 33.

[0054] Let's explain the case of an index update process in detail. The index management unit 21 extracts the attribute value 221 to be updated from a plurality of attribute values ​​221 and inputs it as the target attribute value 31. The index management unit 21 also inputs the index update as index key information 32. By inputting the index update as index key information 32, the index key generation device 10 can identify that it is an index update process. The index management unit 21 also inputs the index definition information 222 as index definition information 33.

[0055] (Step S22: Index Key Generation Process) The bit processing unit 13 generates an index key 35 from the target attribute value 31 received in step S21, based on the origin information 151 stored in the generation device storage unit 15. Specifically, the bit processing unit 13 converts the attribute value of each of the multiple attributes included in the target attribute value 31 to a value based on the corrected origin indicated by the origin information 151. In other words, for each of the multiple attributes of the target attribute value 31, the bit processing unit 13 sets the attribute value of that attribute to a value obtained by subtracting the value of the corrected origin for that attribute from the attribute value of that attribute. Then, the bit processing unit 13 arranges the bits that constitute the converted attribute value for each of the multiple attributes according to the index definition information 33 received in step S11. As a result, the bit processing unit 13 generates the index key 35.

[0056] As a concrete example, the process of generating a single index key 35 under the following conditions will be explained: Target attribute value 31: The value of attribute X is 3900, and the value of attribute Y is 4100. Origin information 151: The value of attribute X is 1800, and the value of attribute Y is 1900. Index key definition information: The bit position of attribute X is 10101010101010101010101010, and the bit position of attribute Y is 01010101010101010101010101

[0057] First, the values ​​of each attribute are converted to values ​​based on the origin information 151. Attribute X: 3900 - 1800 = 2100 (bit sequence: 0 1000 0011 0100) Attribute Y: 4100 - 1900 = 2200 (bit sequence: 0 1000 0011 0100) Next, the bits of attribute X and attribute Y are arranged using the index definition information 33. Bit position of attribute X value in index key 35: 00 1000 0000 0000 1010 0010 0000 Bit position of attribute Y value in index key 35: 00 0100 0000 0000 0101 0001 0000 Index key: 00 1100 0000 0000 1111 0011 0000 (12,602,208)

[0058] The bit processing unit 13 outputs the generated index key 35 to the database management device 20. The index management unit 21 of the database management device 20 then performs a search or update based on the index key 35. Specifically, in the case of an index search, the index management unit 21 performs the search using the index key 35 and the index 224. In the case of an index update, the index management unit 21 updates the index 224 using the index key 35.

[0059] (Step S23: Origin Information Management Processing) The origin information management unit 14 compares the information received in step S21 with the information stored in the generation device storage unit 15 to determine whether or not it is necessary to regenerate the index 224.

[0060] In the case of an index search process, the origin information management unit 14 compares the index definition information 33 received in step S21 with the index definition update information 153 in the generation device storage unit 15. If there is a difference between the index definition information 33 and the index definition update information 153, the origin information management unit 14 determines that it is necessary to regenerate the index 224.

[0061] In the case of index update processing, the origin information management unit 14 compares the index definition information 33 received in step S21 with the index definition update information 153 in the generation device storage unit 15. If there is a difference between the index definition information 33 and the index definition update information 153, the origin information management unit 14 determines that regeneration of the index 224 is necessary. The origin information management unit 14 also updates the mean and variance based on the number of pairs, mean and variance indicated by the attribute value update information 152 in the generation device storage unit 15 and the target attribute value 31. The origin information management unit 14 determines from the mean and variance whether the distribution of attribute values ​​has changed by more than a standard. A change in the distribution of attribute values ​​beyond a standard is, for example, when the mean has changed by more than a standard deviation. If the distribution of attribute values ​​has changed by more than a standard, the origin information management unit 14 determines that regeneration of the index 224 is necessary.

[0062] The origin information management unit 14 generates regeneration information 36 indicating that regeneration is necessary if it determines that regeneration of index 224 is necessary. On the other hand, if the origin information management unit 14 determines that regeneration of index 224 is unnecessary, it generates regeneration information 36 indicating that regeneration is unnecessary. The regeneration information 36 is a boolean value indicating either true, which indicates that regeneration is necessary, or false, which indicates that regeneration is unnecessary. The origin information management unit 14 then outputs the regeneration information 36 to the database management device 20. The index management unit 21 of the database management device 20 then starts the index generation process. Alternatively, the index management unit 21 may notify an administrator or the like of the regeneration information 36 and have the administrator decide whether or not to regenerate the index. In this way, if the regeneration information 36 indicates that regeneration is necessary, the regeneration of index 224 is prompted.

[0063] ***Effects of Embodiment 1*** As described above, the index key generation device 10 according to Embodiment 1 improves the continuity of the index key 35 by correcting the origin and converting the attribute values. This makes it possible to perform searches using the index 224 more efficiently.

[0064] In range searches where the range of multiple attributes is specified, the continuity of the index key may not be maintained. When the continuity of the index key is not maintained, the speedup achieved by the index becomes less efficient compared to when the index keys are arranged continuously. If the continuity of the index key is not maintained in the part where the values ​​of multiple attributes are densely clustered, the search using the index will refer to many unnecessary parts, making the speedup achieved by the index inefficient. The index key generation device 10 according to Embodiment 1 changes the origin where the value of the index key 35 is 0. This changes the location where the continuity of the index key 35 is not maintained, making it possible to create an index that allows the generated index key to refer to as many necessary sets of multiple attributes as possible during the search. As a result, the speedup achieved by the index becomes more efficient. Specifically, the index key generation device 10 according to Embodiment 1 utilizes the distribution of multiple attributes to assume that the dense part of multiple attributes is the search range and extracts candidate origins. The index key generation device 10 extracts the origin that best maintains the continuity of the index key with respect to the search range, thereby making the speedup achieved by the index in searches of ranges where multiple attributes are densely clustered more efficient.

[0065] Furthermore, changes in multiple attribute values ​​or index definition information that are the target of index generation can cause the continuity of the index key to be lost in areas where multiple attributes are densely clustered. As a result, the speedup achieved by indexing may become inefficient. The index key generation device 10 according to Embodiment 1 checks for updates to the multiple attribute values ​​and index definition information that are the target of index generation and determines whether or not to regenerate the index. If regeneration is necessary, the origin is recalculated using the latest information, making the speedup achieved by indexing in searches in areas where multiple attributes are densely clustered more efficient.

[0066] Embodiment 2. Embodiment 2 differs from Embodiment 1 in that it determines the corrected origin using search condition information 37 that indicates the search range. Embodiment 2 explains this difference, and omits the explanation of the same points.

[0067] ***Explanation of Configuration*** Referring to Figure 17, the functional configuration of the search system 1 according to Embodiment 2 will be explained. The search system 1 differs from the search system 1 shown in Figure 1 in that the search condition update information 154 is stored in the generation device storage unit 15 of the index key generation device 10, and the search condition information 225 is stored in the database storage unit 22 of the database management device 20.

[0068] ***Explanation of Operation*** The operation of the search system 1 according to Embodiment 2 will be explained with reference to Figures 18 to 22.

[0069] Referring to Figure 18, the index generation process according to Embodiment 2 will be explained. (Step S31: Input reception process) The index management unit 21 of the database management device 20 inputs the target attribute value 31, index key information 32, index definition information 33, and search condition information 37 to the index key generation device 10. The input reception unit 11 of the index key generation device 10 then receives the target attribute value 31, index key information 32, index definition information 33, and search condition information 37. Specifically, the index management unit 21 extracts the search range to be made more efficient from the search condition information 225 and inputs it as search condition information 37. The other target attribute value 31, index key information 32, and index definition information 33 are the same as in step S11 of Figure 3.

[0070] Referring to Figure 19, the search condition information 225 according to Embodiment 2 will be described. The search condition information 225 includes a search ID, an attribute name, and a range. The search ID is information for identifying the search range for multiple attributes in a single search. The attribute value and range indicate the search range for each attribute in the corresponding search ID.

[0071] (Step S32: Origin generation process) The origin generation unit 12 generates origin information 34 from the target attribute value 31, index definition information 33, and search condition information 37 received in step S31.

[0072] Let's explain this in detail with reference to Figure 20. In Figure 20, attribute X is represented on the horizontal axis and attribute Y is represented on the vertical axis. Here, let's assume that the information of the search condition information 225 shown in Figure 19 has been input as search condition information 37. In Figure 20, search range 1, where search ID is 1, and search range 2, where search ID is 2, are shown. The origin generation unit 12 identifies the minimum value of the starting value for the search in the search range of each attribute from the search condition information 37. In the search range shown in Figure 19, the minimum value of the starting value for the search is 2500 for attribute X and 2000 for attribute Y. The range for searching for the origin is from the minimum value that can represent each attribute to the minimum value of the acquired attribute value that starts the search. In Figure 20, the range for searching for the origin is between 0 and 2500 for attribute X and between 0 and 2000 for attribute Y. In other words, the value of attribute X of the candidate origin will be between 0 and 2500, and the value of attribute Y of the candidate origin will be between 0 and 2000. Subsequently, similar to step S12, the origin generation unit 12 determines candidate origins from the range to be searched for the origin. Then, for each candidate origin, the origin generation unit 12 generates index keys for the vertices in each search range. The sum of the differences between the minimum and maximum values ​​of the generated index keys is calculated as the cost, and the candidate origin with the minimum cost is selected as the corrected origin.

[0073] The origin generation unit 12 outputs the origin information 34 to the database management device 20. The index management unit 21 of the database management device 20 then writes the origin information 34 as origin information 223 to the database storage unit 22. The origin generation unit 12 also writes the origin information 34 as origin information 151 to the generation device storage unit 15.

[0074] As a concrete example, we will explain how to select a corrected origin from the following two candidate origins. Candidate origin 1: Attribute X value is 0, attribute Y value is 0 Candidate origin 2: Attribute X value is 2500, attribute Y value is 2000,

[0075] Cost of index key Candidate origin 1: 42,454,624 Cost of search range 1: 27,781,856 Cost of search range 2: 14,672,768 Cost of candidate origin 2: 14,148,128 Cost of search range 1: 9,259,168 Cost of search range 2: 4,888,960 The cost of candidate origin 2 is less than the cost of candidate origin 1. Therefore, the origin generation unit 12 selects candidate origin 2 as the corrected origin.

[0076] (Step S33: Index key generation process) Similar to step S13 in Figure 3, the bit processing unit 13 generates an index key 35 from the target attribute value 31 received in step S31, based on the origin information 34 generated in step S32.

[0077] (Step S34: Origin Information Management Processing) Similar to step S14 in Figure 3, the origin information management unit 14 writes the statistical value of the target attribute value 31 as attribute value update information 152 to the generation device storage unit 15. The origin information management unit 14 also writes the index definition information 33 as index definition update information 153 to the generation device storage unit 15. Furthermore, the origin information management unit 14 writes the search condition information 37 received in step S31 as search condition update information 154 to the generation device storage unit 15. As shown in Figure 21, the search condition update information 154 includes the information contained in the search condition information 37, as well as an index generation flag indicating whether or not it was used when the index 224 was generated.

[0078] Referring to Figure 22, the index search process and index update process according to Embodiment 1 will be explained. (Step S41: Input reception process) Similar to step S21 in Figure 16, the index management unit 21 of the database management device 20 inputs the target attribute value 31, index key information 32, index definition information 33, and search condition information 37 to the index key generation device 10. Then, the input reception unit 11 of the index key generation device 10 receives the target attribute value 31, index key information 32, and index definition information 33.

[0079] (Step S42: Index key generation process) Similar to step S22 in Figure 16, the bit processing unit 13 generates an index key 35 from the target attribute value 31 received in step S41, based on the origin information 151 stored in the generation device storage unit 15.

[0080] (Step S43: Origin Information Management Processing) The origin information management unit 14 compares the information received in step S41 with the information stored in the generation device storage unit 15 to determine whether or not it is necessary to regenerate the index 224.

[0081] In the case of index search processing, similar to step S23 in Figure 16, the origin information management unit 14 compares the index definition information 33 and the index definition update information 153 to determine whether or not it is necessary to regenerate the index 224. Furthermore, the origin information management unit 14 compares the search range indicated by the search condition information 37 received in step S41 with the search condition update information 154 of the generation device storage unit 15. If the search range indicated by the search condition information 37 is wider than the search range indicated by the search condition update information 154, the origin information management unit 14 determines that it is necessary to regenerate the index 224. For example, if the search range indicated by the search condition information 37 does not fall within the search range indicated by the search condition update information 154, the origin information management unit 14 determines that the search range indicated by the search condition information 37 is wider than the search range indicated by the search condition update information 154. Note that other methods may be used if it is possible to determine that the search trend has changed.

[0082] For index update processing, the procedure is the same as step S23 in Figure 16.

[0083] ***Effects of Embodiment 2*** As described above, the index key generation device 10 according to Embodiment 2 determines the corrected origin using the search condition information 37. As a result, an index key 35 with improved continuity is generated for the range in which the search is performed. Consequently, searches using the index 224 become more efficient.

[0084] In some cases, the range for repeated searches is generally fixed. In such cases, it is effective to streamline the search within that range. The index key generation device 10 according to Embodiment 2 generates an index key 35 with enhanced continuity for the specified range. This makes it possible to streamline searches using the index 224 within that range.

[0085] Furthermore, the index key generation device 10 according to Embodiment 2 prompts the regeneration of the index 224 when the search range changes. This maintains a state in which searches using the index 224 can be made more efficient even when the search range changes. ***Other Configurations*** <Modification 1> In Embodiment 1, each functional component was implemented in software. However, as Modification 1, each functional component may be implemented in hardware. The differences between this Modification 1 and Embodiment 1 will be explained below.

[0086] When each functional component is implemented in hardware, the index key generation device 10 includes an electronic circuit 105 instead of a processor 101, memory 102, and storage 103. The electronic circuit 105 is a dedicated circuit that implements the functions of each functional component, as well as the functions of the memory 102 and storage 103.

[0087] Similarly, when each functional component is implemented in hardware, the index key generation device 10 includes an electronic circuit 205 instead of a processor 201, memory 202, and storage 203. The electronic circuit 205 is a dedicated circuit that implements the functions of each functional component, as well as the functions of the memory 202 and storage 203.

[0088] The electronic circuits 105 and 205 can be single circuits, composite circuits, programmed processors, parallel programmed processors, logic ICs, GAs, ASICs, or FPGAs. GA stands for Gate Array. ASIC stands for Application Specific Integrated Circuit. FPGA stands for Field-Programmable Gate Array. Each functional component may be implemented in a single electronic circuit 105 or 205, or each functional component may be implemented by distributing them across multiple electronic circuits 105 or 205.

[0089] <Modification 2> As modification 2, some of the functional components may be implemented in hardware, while other functional components may be implemented in software.

[0090] The processors 101, 201, the memories 102, 202, the storage 103, 203, and the electronic circuits 105, 205 are collectively called the processing circuit. In other words, the function of each functional component is realized by the processing circuit.

[0091] Furthermore, the term "part" in the above explanation may be replaced with "circuit," "process," "procedure," "processing," or "processing circuit."

[0092] (Note 1) An index key generation device comprising: an input receiving unit that receives input of attribute values ​​which are values ​​for each of a plurality of attributes and are values ​​relative to the origin; an origin generation unit that generates origin information indicating a corrected origin in which the position of the origin has been corrected so that the attribute values ​​become values ​​which increase the continuity of the index key values ​​generated by arranging bits which constitute the attribute values ​​for each of the plurality of attributes received by the input receiving unit; and a bit processing unit that converts the attribute values ​​for each of the plurality of attributes into values ​​relative to the corrected origin indicated by the origin information generated by the origin generation unit, and generates an index key by arranging bits which constitute the converted attribute values ​​for each of the plurality of attributes. (Note 2) The index key generation device according to Note 1, wherein the origin generation unit selects the corrected origin from a selection range from the minimum value which can represent the attribute values ​​for each of the plurality of attributes to the minimum value which is the range of the attribute values ​​to be searched. (Note 3) The index key generation device according to Note 2, wherein the origin generation unit selects the candidate origin as the corrected origin, which is the difference between the maximum and minimum values ​​of the index key for each of the multiple reference points, when the attribute values ​​of the multiple reference points at the boundary position of the search range are represented by values ​​based on the candidate origin selected from the selected range. (Note 4) The index key generation device according to any one of Notes 1 to 3, wherein the origin generation unit generates origin information indicating the corrected origin for a search range determined from the mean and standard deviation of the multiple attribute values ​​to be used to generate the index key, such that the attribute values ​​become values ​​that increase the continuity of the index key values. (Note 5) The index key generation device according to any one of Notes 1 to 3, wherein the input receiving unit receives input of search condition information indicating a search range, and the origin generation unit generates origin information indicating the corrected origin for the search range indicated by the search condition information, such that the attribute values ​​become values ​​that increase the continuity of the index key values.(Note 6) The index key generation device further comprises an origin information management unit that stores statistical values ​​of the attribute values ​​of the plurality of attributes as attribute update information in a storage device, and compares the statistical values ​​of the attribute values ​​of the plurality of attributes newly received by the input receiving unit with the attribute update information stored in the storage device to determine whether or not an update of the index key is necessary. (Note 7) The index key generation device further comprises an origin information management unit that determines whether or not an update of the index key is necessary when the index definition information that defines the rules for arranging the bits when generating the index key changes. (Note 8) The index key generation device further comprises an origin information management unit that determines whether or not an update of the index key is necessary when the search condition information changes. (Note 9) An index key generation method in which a computer accepts input of attribute values ​​which are values ​​for each of a plurality of attributes and are values ​​based on the origin; the computer generates origin information indicating a corrected origin in which the position of the origin has been corrected so that the attribute values ​​become values ​​which increase the continuity of the index key values ​​generated by arranging the bits that constitute the attribute values ​​for each of the plurality of attributes; and the computer generates an index key by converting the attribute values ​​for each of the plurality of attributes to values ​​based on the corrected origin indicated by the origin information and arranging the bits that constitute the converted attribute values ​​for each of the plurality of attributes.(Note 10) An index key generation program that causes a computer to function as an index key generation device, which includes: an input reception process that accepts input of attribute values, which are values ​​for each of a plurality of attributes and are values ​​based on the origin; an origin generation process that generates origin information indicating a corrected origin, in which the position of the origin has been corrected so that the attribute values ​​become values ​​that increase the continuity of the index key values ​​generated by arranging the bits that constitute the attribute values ​​for each of the plurality of attributes received by the input reception process; and a bit processing that converts the attribute values ​​for each of the plurality of attributes into values ​​based on the corrected origin indicated by the origin information generated by the origin generation process, and generates an index key by arranging the bits that constitute the converted attribute values ​​for each of the plurality of attributes.

[0093] The embodiments and variations of this disclosure have been described above. Some of these embodiments and variations may be implemented in combination. Alternatively, some or all of them may be implemented in part. However, this disclosure is not limited to the embodiments and variations described above, and various modifications are possible as needed.

[0094] 1 Search system, 10 Index key generation device, 101 Processor, 102 Memory, 103 Storage, 104 Communication interface, 11 Input receiving unit, 12 Origin generation unit, 13 Bit processing unit, 14 Origin information management unit, 15 Generation device storage unit, 151 Origin information, 152 Attribute value update information, 153 Index definition update information, 154 Search condition update information, 20 Database management device, 21 Index management unit, 22 Database storage unit, 221 Attribute value, 222 Index definition information, 223 Origin information, 224 Index, 225 Search condition information, 31 Target attribute value, 32 Index key information, 33 Index definition information, 34 Origin information, 35 Index key, 36 Regeneration information, 37 Search condition information.

Claims

1. An index key generation device comprising: an input receiving unit that receives attribute values ​​which are values ​​for each of a plurality of attributes and are values ​​relative to the origin; an origin generation unit that generates origin information indicating a corrected origin in which the position of the origin has been corrected so that the attribute values ​​become values ​​which increase the continuity of the index key values ​​generated by arranging the bits that constitute the attribute values ​​for each of the plurality of attributes received by the input receiving unit; and a bit processing unit that converts the attribute values ​​for each of the plurality of attributes into values ​​relative to the corrected origin indicated by the origin information generated by the origin generation unit, and generates an index key by arranging the bits that constitute the converted attribute values ​​for each of the plurality of attributes.

2. The index key generation device according to claim 1, wherein the origin generation unit selects the corrected origin from a selection range ranging from the minimum value that can represent the attribute value of each of the plurality of attributes to the minimum value of the search range which is the range of attribute values ​​to be searched.

3. The index key generation device according to claim 2, wherein the origin generation unit selects the candidate origin as the corrected origin, which is the candidate origin whose cost is smallest when the attribute values ​​of the multiple reference points at the boundary positions of the search range are represented by values ​​based on the candidate origin of the selected range, and the difference between the maximum and minimum values ​​of the index key for each of the multiple reference points.

4. The index key generation device according to any one of claims 1 to 3, wherein the origin generation unit generates origin information indicating the corrected origin such that the attribute values ​​become values ​​that increase the continuity of the index key values, within a search range determined from the mean and standard deviation of a plurality of attribute values ​​to be used to generate an index key.

5. The index key generation device according to any one of claims 1 to 3, wherein the input receiving unit receives input of search condition information indicating a search range, and the origin generation unit generates origin information indicating the corrected origin such that the attribute value becomes a value that increases the continuity of the index key values ​​with respect to the search range indicated by the search condition information.

6. The index key generation device according to any one of claims 1 to 5, further comprising: an index key generation device that stores statistical values ​​of the attribute values ​​of the plurality of attributes as attribute update information in a storage device; and an origin information management unit that compares the statistical values ​​of the attribute values ​​of the plurality of attributes newly received by the input receiving unit with the attribute update information stored in the storage device to determine whether or not an update of the index key is necessary.

7. The index key generation device according to any one of claims 1 to 5, further comprising an origin information management unit that determines whether or not it is necessary to update the index key when the index definition information, which defines the rules for arranging the bits when generating the index key, changes.

8. The index key generation device according to claim 5, further comprising an origin information management unit that determines whether or not it is necessary to update the index key when the search condition information changes.

9. An index key generation method in which a computer receives input of attribute values, which are values ​​for each of a plurality of attributes and are values ​​relative to the origin; the computer generates origin information indicating a corrected origin, which corrects the position of the origin so that the attribute values ​​become values ​​that increase the continuity of the index key values ​​generated by arranging the bits that constitute the attribute values ​​for each of the plurality of attributes; and the computer generates an index key by converting the attribute values ​​for each of the plurality of attributes to values ​​relative to the corrected origin indicated by the origin information and arranging the bits that constitute the converted attribute values ​​for each of the plurality of attributes.

10. An index key generation program that causes a computer to function as an index key generation device, comprising: an input reception process that accepts input of attribute values ​​which are values ​​for each of a plurality of attributes and are values ​​based on the origin; an origin generation process that generates origin information indicating a corrected origin in which the position of the origin has been corrected so that the attribute values ​​become values ​​which increase the continuity of the index key values ​​generated by arranging the bits that constitute the attribute values ​​for each of the plurality of attributes received by the input reception process; and a bit processing that converts the attribute values ​​for each of the plurality of attributes into values ​​based on the corrected origin indicated by the origin information generated by the origin generation process, and generates an index key by arranging the bits that constitute the converted attribute values ​​for each of the plurality of attributes.

Citation Information

Patent Citations

  • Index generating system

    JP1983002938A

  • Providing a partially sorted index

    US20080104102A1

  • Index key generating device and index key generating method and search method

    WO2014109109A1