Search device, search method, and program
The search device efficiently searches multidimensional data sets by using first and second arrays to determine hit intervals and identify common record numbers, addressing inefficiencies in existing technologies.
Patent Information
- Application Number
- PCT/JP2025/014066
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-12
- Filing Date
- 2025-04-08
- Publication Date
- 2025-10-16
AI Technical Summary
Existing technologies are inefficient in searching for desired data from multidimensional data sets when the dimensions to be searched are freely specified.
A search device that holds datasets with first and second arrays to store multidimensional data, determining hit intervals on the first array for each dimension specified in a search condition and identifying common record numbers across dimensions using the second array.
Enables efficient search for desired data from multidimensional data sets by calculating hit intervals and extracting common record numbers that satisfy search conditions.
Smart Images

Figure JP2025014066_16102025_PF_FP_ABST
Abstract
Description
Search device, search method, and program
[0001] The present disclosure relates to a search device, a search method, and a program.
[0002] In recent years, advances in various sensor devices and observation equipment have made it possible to obtain large amounts of data (so-called big data) representing sensing results, observation results, etc. This has led to a demand for the ability to extract desired data by performing searches and other operations on big data.
[0003] Patent Document 1 discloses a technique that allows data in a format called D5A to be created on a storage device as internal data used for operations such as searches on tabular data.
[0004] International Publication No. 2023 / 276162
[0005] However, in the past, when a data set made up of multidimensional data was targeted and the dimension to be searched was freely specified, it was not possible to efficiently search for desired data from the data set.
[0006] The present disclosure has been made in consideration of the above points, and aims to provide a technology that enables efficient search for desired data from a data set made up of multidimensional data.
[0007] A search device according to one aspect of the present disclosure holds a dataset consisting of multidimensional data, a first array that stores, for each dimension, the record numbers of values that appear in the dimension of the dataset in ascending order of the values, and a second array in which the subscripts and elements of the first array are swapped, and determines a hit interval on the first array for each dimension specified in a search condition, and identifies record numbers that are commonly included in the hit intervals across the dimensions specified in the search condition using the second array.
[0008] A technique is provided that enables efficient search for desired data from a data set made up of multidimensional data.
[0009] FIG. 1 is a diagram showing an example of the overall configuration of a search system according to the present embodiment; FIG. 2 is a diagram showing an example of the hardware configuration of a search device according to the present embodiment; FIG. 3 is a diagram showing an example of the functional configuration of a search device according to the present embodiment; FIG. 4 is a diagram showing an example of a data set made up of multidimensional data; -1 , SVL, ACM, and INV. FIG. 1 is a flowchart showing an example of a search process according to the present embodiment. FIG. 2 is a diagram for explaining a hit interval of each dimension in Example 1. FIG. 3 is a diagram for explaining a hit sequence in Example 1. FIG. 4 is a diagram for explaining a hit interval of each dimension in Example 2. FIG. 5 is a diagram for explaining a hit sequence in Example 2. FIG. 6 is a diagram showing a modified example of a dataset composed of multidimensional data.
[0010] An embodiment of the present invention will be described in detail below with reference to the drawings. In the following embodiment, a search system 1 will be described that can efficiently search for desired data from a data set composed of multidimensional data when the dimension to be searched is freely specified.
[0011] Here, multidimensional data refers to data that is composed of multiple dimensions (generally many dimensions). A data set composed of multidimensional data is, for example, the i-th (0≦i≦I−1) multidimensional data set x i In this case, {x i |0≦i≦I−1}. Also, the i-th multidimensional data x i For example, the jth dimension value (0≦j≦J−1) is expressed as x i,j In this case, x i = (x i,0 , ..., x i,J-1 When this is considered as tabular data, the above x i is the record, i is the record number, and I is the total number of records. 0,j , ..., x I-1,j ) corresponds to the j-th column. In the following, a data set made up of multidimensional data will be regarded as tabular data where appropriate.
[0012] In the following, data obtained by extracting only values of a certain dimension from a data set composed of multidimensional data will be referred to as column data. The jth (0≦j≦J−1) column data is, for example, y j = (x 0,j , ..., x I-1,j ) τ (where τ is the symbol for transposition).
[0013] <Example of Overall Configuration of Search System 1> An example of the overall configuration of the search system 1 according to this embodiment is shown in Fig. 1. As shown in Fig. 1, the search system 1 according to this embodiment includes a user device 10 and a search device 20. The user device 10 and the search device 20 are connected to each other so as to be able to communicate with each other via an arbitrary communication network 30 such as the Internet.
[0014] The user device 10 is one of various devices used by users of the search system 1. In response to a user's operation, the user device 10 transmits a search request including search criteria specified by the operation to the search device 20, and receives search results for the search request. The user device 10 is realized by various devices, equipment, and terminals, such as a PC (personal computer), a smartphone, a tablet terminal, a wearable device, a general-purpose server, industrial equipment, IoT equipment, etc. Hereinafter, the search criteria are assumed to specify the order of one or more dimensions and conditions related to the values of those dimensions (e.g., a condition expressing an equality relationship, a condition expressing a magnitude relationship, a condition expressed by a logical formula, etc.).
[0015] The search device 20 is a device that, upon receiving a search request from the user device 10, searches for multidimensional data that satisfies the search conditions included in the search request. The search device 20 is realized, for example, by a general-purpose server or a system configured of such servers.
[0016] 1 is an example, and the overall configuration of the search system 1 is not limited to this. For example, the search system 1 may include a plurality of user devices 10.
[0017] <Example of Hardware Configuration of Search Device 20> An example of the hardware configuration of the search device 20 according to this embodiment is shown in Fig. 2. As shown in Fig. 2, the search device 20 according to this embodiment includes an input device 201, a display device 202, an external I / F 203, a communication I / F 204, a RAM (Random Access Memory) 205, a ROM (Read Only Memory) 206, an auxiliary storage device 207, and a processor 208. Each of these pieces of hardware is connected to each other via a bus 209 so as to be able to communicate with each other.
[0018] The input device 201 is, for example, a keyboard, a mouse, a touch panel, a physical button, etc. The display device 202 is, for example, a display, a display panel, etc. Note that the search device 20 does not necessarily have to include at least one of the input device 201 and the display device 202, for example.
[0019] The external I / F 203 is an interface with an external device such as a recording medium 203 a. Examples of the recording medium 203 a include a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), and a USB (Universal Serial Bus) memory card.
[0020] The communication I / F 204 is an interface for connecting to the communication network 30. The RAM 205 is a volatile semiconductor memory (storage device) that temporarily stores programs and data. The ROM 206 is a non-volatile semiconductor memory (storage device) that can store programs and data even when the power is turned off. The auxiliary storage device 207 is a non-volatile storage device such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), or a flash memory. The processor 208 is, for example, one of various arithmetic devices such as a CPU (Central Processing Unit).
[0021] 2 is an example and is not intended to be limiting. For example, the search device 20 may have multiple auxiliary storage devices 207 or multiple processors 208, may not have some of the hardware shown in the figure, or may have various types of hardware other than the hardware shown in the figure.
[0022] <Example of Functional Configuration of Search Device 20> An example of the functional configuration of the search device 20 according to this embodiment is shown in FIG. 3. As shown in FIG. 3, the search device 20 according to this embodiment includes a search request receiving unit 210, a search unit 211, and a search result response unit 212. These units are realized, for example, by a process in which one or more programs installed in the search device 20 are executed by the processor 208 or the like. The search device 20 according to this embodiment also includes a data storage unit 213. The data storage unit 213 is realized, for example, by a storage area of the auxiliary storage device 207 or the like. However, the data storage unit 213 may be realized, for example, by a storage area of a storage device (e.g., a storage device provided in a database server or the like) connected to the search device 20 so as to be able to communicate with the search device 20, instead of or in addition to the storage area of the auxiliary storage device 207 or the like.
[0023] The search request receiving unit 210 receives a search request transmitted from the user device 10. The search unit 211 searches for multidimensional data that satisfies the search conditions included in the search request received by the search request receiving unit 210. The search result response unit 212 transmits the search results by the search unit 211 to the user device 10. The data storage unit 213 stores a data set composed of multidimensional data. Here, the data set stored in the data storage unit 213 has a structure in which each dimension is an INV (Inverted Record Index) and an INV -1 and a data structure from which a value corresponding to the record number can be read.
[0024] The above-mentioned "data structure from which a value corresponding to a record number can be read" may be, for example, any of the following (1) to (3), but is not limited to these.
[0025] (1) Column data (2) NNC (Natural Numbered Column) and SVL (Sorted Value List) (3) SVL, ACM (Accumulation Array) and INV The column data shown in (1) above refers to the column data for each dimension of a data set consisting of multidimensional data. The column data for each dimension can be obtained simply by referencing the columns of the data set consisting of multidimensional data.
[0026] In the following, the above (3) is mainly assumed as a data structure from which a value corresponding to a record number can be read.
[0027] NNC is a list-style data structure in which each value contained in the column data of the corresponding dimension is represented by replacing it with the storage location of that value in SVL. SVL is a list-style data structure whose elements are the ascending and unique values of each value that appears in the column data of the corresponding dimension. ACM is a list-style data structure whose elements, for each element of the SVL of the corresponding dimension, are the values that point to the position next to the last position on INV where the record number of that element is stored. Each element of ACM gives the number of occurrences of values equal to or less than the element on SVL that corresponds to that element. INV is a list-style data structure whose elements are the transposed record numbers of the column data of the corresponding dimension. INV -1 is a list-format data structure in which the value of each element in the INV is swapped with the storage location of that element. For details of NNC, SVL, ACM, and INV and how to create them, please refer to, for example, Patent Document 1 mentioned above.
[0028] However, the column data for each dimension is INV and INV -1 and a data structure that can read out a value corresponding to the record number, and NNC, SVL, and ACM are not essential.
[0029] In addition, NNC, SVL, ACM, INV and INV of each column data of a data set composed of multidimensional data -1For example, the data may be created by a functional unit (e.g., a functional unit called an "internal data creation unit" or the like) provided in the search device 20, or may be created by a device other than the search device 20 and then stored in the data storage unit 213.
[0030] <Data Structure Capable of Reading Values Corresponding to Record Numbers in Each Dimension> Here, a supplementary explanation will be given of the data structure capable of reading values corresponding to record numbers in each dimension.
[0031] The column data for each dimension ((1) above) can read the value of that dimension from the record number.
[0032] The NNC and SVL (above (2)) for each dimension can restore the column data for that dimension. Therefore, the NNC and SVL for each dimension can read the value of that dimension from the record number. For example, let the assignment operator be ":=", the i-th array element of the array that realizes NNC be NNC[i], the i-th array element of the array that realizes SVL be SVL[i], and an empty array be ORG. In this case, the original column data can be restored as ORG by extracting the NNC element NNC[i] sequentially starting from i=0 and storing SVL[NNC[i]] in ORG[i]. In other words, by repeating ORG[i]:=SVL[NNC[i]] sequentially starting from i=0, the array ORG that realizes the original column data can be restored.
[0033] The SVL, ACM, and INV (above (3)) of each dimension can restore the column data of that dimension. Therefore, the SVL, ACM, and INV of each dimension can read the value of that dimension from the record number. For example, let the assignment operator be ":=", the i-th array element of the array that realizes SVL be SVL[i], the i-th array element of the array that realizes ACM be ACM[i], the i-th array element of the array that realizes INV be INV[i], and an empty array be ORG. Also, let ACM[-1] = 0, and the size of SVL (that is, the number of elements of the array that realizes SVL) be N. In this case, i START =ACM[i-1],i STOP =ACM[i]-1, and then execute the following repeatedly for i=0, 1, . . . , N-1.
[0034] ORG[INV[i START ]]:=SVL[i] ORG[INV[i START +1]]:=SVL[i]... ORG[INV[i STOP ]]:=SVL[i] This allows the array ORG that realizes the original column data to be restored.
[0035] <NNC, SVL, ACM, INV, INV -1 As an example, NNC, SVL, ACM, INV, and INV of each column data of the data set 1000 shown in FIG. -1 is shown in Figure 5. Note that the dataset 1000 shown in Figure 4 is composed of two-dimensional multidimensional data, the dimensions "name" and "age", and the numbers on the left side indicate the record number of each multidimensional data. For example, the record number of (name, age) = ("Bob", 30) is "0", the record number of (name, age) = ("Alice", 26) is "1", and the record number of (name, age) = ("Cat", 26) is "2". The same applies to other multidimensional data.
[0036] As shown in FIG. 5, the column data of the dimension “name” is NNC1111, SVL1112, ACM1113, INV1114, and INV1115. -1 Similarly, the column data of the dimension “age” is expressed as NNC 1211, SVL 1212, ACM 1213, INV 1214, and INV -1 It is expressed as 1215.
[0037] For example, INV and INV for all column data -1 The data structure that can read out the value corresponding to the record number and the table may be collectively called a "multidimensional index" or the like.
[0038] <Search Processing> An example of search processing according to this embodiment will be described with reference to FIG.
[0039] The search request receiving unit 210 receives a search request transmitted from the user device 10 (step S101). Here, the search request includes search conditions, which include the order of one or more dimensions and conditions related to the values of those dimensions. Hereinafter, the order of one or more dimensions will be referred to as the "dimension order," and the conditions related to the values of the dimensions will be simply referred to as the "dimension search conditions." Note that the search conditions may include a dimension order representing the order of all dimensions and dimension search conditions for all of those dimensions, or may include a dimension order representing the order of some dimensions and dimension search conditions for some of those dimensions.
[0040] A specific example of a search condition is (name, age) = ("Cat", 26). This indicates that the dimension order is "name" and then "age", the dimension search condition for the dimension "name" is "name = "Cat", and the dimension search condition for the dimension "age" is "age = 26".
[0041] Another specific example of a search condition is (age, name) = (age > 20, not "Bob"). This indicates that the dimension order is "age" and then "name", the dimension search condition for the dimension "age" is "age > 20", and the dimension search condition for the dimension "name" is "not "Bob"" (i.e., "not "Bob"").
[0042] The search unit 211 uses the dimension search conditions included in the search conditions to calculate hit intervals on the INV that satisfy the dimension search conditions (step S102). A hit interval is an interval in the INV of a dimension corresponding to the dimension search conditions in which record numbers of multidimensional data that satisfy the dimension search conditions are stored. A hit interval is expressed in the format [start position, end position], based on the start and end positions of the interval. Note that the hit interval can be determined, for example, by first determining the SVL elements that satisfy the dimension search conditions of the relevant dimension, and then from the ACM elements corresponding to the SVL elements. This allows hit intervals to be obtained for each dimension corresponding to each dimension search condition.
[0043] The search unit 211 checks, starting from each dimension in the dimension order included in the search criteria, whether the record number in the Hit section of the INV of that dimension is included in the Hit section of the INV of the next dimension, and adds the record numbers included in the Hit sections of the INV of all dimensions specified in the dimension order to the Hit column (step S103). As a result, the record numbers of the multidimensional data that satisfy all the dimension search criteria included in the search criteria are stored in the Hit column. Here, the Hit column is a list-format data structure in which record numbers are stored. The Hit column is stored, for example, in a storage area of the auxiliary storage device 207, a storage area of the RAM 205, etc.
[0044] The search result response unit 212 transmits the record numbers included in the Hit column as search results to the user device 10 (step S104). This allows the user device 10 to obtain the record numbers of the multidimensional data that satisfy the search conditions. Note that the search result response unit 212 may transmit the multidimensional data of those record numbers as search results to the user device 10, instead of the record numbers included in the Hit column.
[0045] <Example> In the following, the column data of the dimension "name" of the data set 1000 shown in FIG. 4 is NNC1111, SVL1112, ACM1113, INV1114, and INV1115. -1 1115, the column data of the dimension “age” is NNC1211, SVL1212, ACM1213, INV1214 and INV -1 It is assumed that the record number is represented by 1215. A case where the record number of the multidimensional record that satisfies the search condition is obtained will be described below.
[0046] The following are NNC1111, SVL1112, ACM1113, INV1114 and INV -1 1115 are realized as arrays, and the k-th array element is NNC. 1 [k], SVL 1 [k], ACM 1 [k], INV 1 [k], INV 1 -1Similarly, NNC1211, SVL1212, ACM1213, INV1214 and INV -1 1215 are also realized as arrays, and the k-th array element is NNC 2 [k], SVL 2 [k], ACM 2 [k], INV 2 [k], INV 2 -1 [k]. Note that k starts from 0. Also, ACM 1 [-1] = ACM 2 It is defined that [-1]=0.
[0047] Example 1 It is assumed that the search criteria are (name, age)=("Cat", 26).
[0048] In this case, in step S102, as shown in FIG. 7, when elements of SVL 1112 that satisfy the dimension search condition "name="Cat"" in the dimension "name" are found, 1 Since [2] = "Cat", the Hit interval of the dimension "name" is H 1 = [ACM 1 [2-1], ACM 1 Similarly, as shown in FIG. 7, when elements of SVL1212 that satisfy the dimension search condition "age=26" in the dimension "age" are found, 2 Since [1]=26, the Hit interval of the dimension “age” is H 2 = [ACM 2 [1-1], ACM 2 [1]-1]=[1, 2]. The SVL elements that satisfy the dimension search conditions can be found by a known search or search method such as a bisection search (binary search method).
[0049] Next, in step S103, as shown in FIG. 1 Since [3] = 2, INV 2 -1 [2] ∈ H 2 Check whether it is INV 2 -1 [2] = 2∈H 2Therefore, an array element Hit[0]=2 is added to the array that realizes the Hit sequence 2000. Next, as shown in FIG. 1 Since [4] = 4, INV 2 -1 [4] ∈ H 2 Check whether it is INV 2 -1 Since [4]=0, the hit section H 2 , and adds nothing to the array that implements the Hit column 2000.
[0050] As a result of the above, an array Hit={2} that realizes the Hit sequence 2000 is obtained, and the record number Hit[0]=2 stored in this array is sent to the user device 10 as the search result.
[0051] Example 2 It is assumed that the search criteria are (age, name)=(age>20, not "Bob").
[0052] In this case, in step S102, as shown in FIG. 9, when elements of SVL1212 that satisfy the dimension search condition "age>20" in the dimension "age" are found, 2 [1] = 26, SVL 2 Since [2]=30, the Hit interval of the dimension “age” is H 2 = [ACM 2 [1-1], ACM 2 [1]-1]∪[ACM 2 [2-1], ACM 2 Similarly, as shown in FIG. 9, when elements of SVL 1112 that satisfy the dimension search condition "name = not "Bob"" in the dimension "name" are found, 1 [0] = "Alice", SVL 1 Since [2] = "Cat", the Hit interval of the dimension "name" is H 1 = [ACM 1 [0-1], ACM 1 [0]-1]∪[ACM 1 [2-1], ACM 1[2]-1]={0} ∪ [3, 4]. The SVL elements that satisfy the dimension search condition can be found by a known search or search method such as a bisection search (binary search method).
[0053] Next, in step S103, as shown in FIG. 2 Since [1] = 1, INV 1 -1 [1] ∈ H 1 Check whether it is INV 1 -1 [1] = 0 ∈ H 1 Therefore, an array element Hit[0]=1 is added to the array that realizes the Hit sequence 2000. Next, as shown in FIG. 2 Since [2]=2, INV 1 -1 [2] ∈ H 1 Check whether it is INV 1 -1 [2] = 3∈H 1 Therefore, an array element Hit[1]=2 is added to the array that realizes the Hit sequence 2000. Next, as shown in FIG. 2 Since [3] = 0, INV 1 -1 [0]∈H 1 Check whether it is INV 1 -1 Since [0]=1, the hit interval H 1 , and nothing is added to the array that realizes the Hit column 2000. Next, as shown in FIG. 2 Since [4] = 3, INV 1 -1 [3] ∈ H 1 Check whether it is INV 1 -1 Since [3]=2, the hit section H 1 , and adds nothing to the array that implements the Hit column 2000.
[0054] As a result of the above, an array Hit={1, 2} that realizes the Hit sequence 2000 is obtained, and the record numbers Hit[0]=1 and Hit[1]=2 stored in this array are sent to the user device 10 as search results.
[0055] <Modifications> Modifications of the above embodiment will now be described.
[0056] <<Variation 1>> The above embodiment is similarly applicable even when the "data structure from which a value corresponding to a record number can be read" is the above-mentioned (1). That is, when the "data structure from which a value corresponding to a record number can be read" is the above-mentioned (1), when calculating the Hit section, for example, the INV of each dimension can be searched or searched using a known search or search method such as a bisection search (binary search method), and the section on the INV in which a record number that satisfies the dimension search condition appears can be determined as the Hit section. Specifically, the record number can be obtained from the INV of each dimension, and a bisection search can be performed by referencing the column data of that dimension to identify the Hit section.
[0057] <<Variation 2>> Variation 1 above describes the case where the "data structure from which a value corresponding to a record number can be read" is (1) above, but the above embodiment can also be applied in the same way when the "data structure from which a value corresponding to a record number can be read" is (2) above.
[0058] <<Variation 3>> In the above embodiment, the Hit interval is represented by a set of INV storage positions, but the Hit interval may also be represented by, for example, a flag array. That is, an array of the same size as the array that realizes the INV may be prepared as a flag array, and "1" may be stored in the flag array at storage positions on the INV that are the same as storage positions included in the Hit interval, and "0" may be stored in the flag array at other storage positions. By using this flag array, it becomes possible to easily check whether a certain storage position on the INV is included in the Hit interval.
[0059] Although in the above embodiment, the hit interval is represented by a set of storage locations of INVs, the hit interval may be represented by a hash index. That is, the hit interval may be represented by a hash index in which the hash values of the storage locations included in the hit interval are used as keys and the storage locations are used as values.
[0060] <<Variation 5>> The search results may be narrowed down by repeating the search process shown in Fig. 6. That is, the search process shown in Fig. 6 may be executed by a search request including a certain dimension search condition, the record numbers included in the Hit column obtained as the search results may be converted into values of a desired column, and the search process shown in Fig. 6 may then be executed by a new search request including dimension search conditions related to those values and new dimension search conditions. In this way, the search results of the first search process are narrowed down by the second search process, and the search results of the second search process are obtained as the final search results. Note that this narrowing down of the search results may be executed any number of times.
[0061] As an example, a case will be described in which the search results are narrowed down to search for "the names of children who were in class A in the first grade and class B in the second grade" for the data set 3000 shown in FIG. 11. Note that for the column data of each dimension of the data set 3000 shown in FIG. 11, at least INV and INV -1 It is assumed that the following has been obtained.
[0062] In this case, first, the search process shown in FIG. 6 is executed based on a search request that includes the dimension search conditions "Year=1" and "Class=A." This results in a Hit column that includes record numbers "0" and "1." Next, record number "0" is converted to the Name column value "Cat" and record number "1" is converted to the Name column value "Alice," and the search process shown in FIG. 6 is executed based on a search request that includes the dimension conditions "Name=Cat OR Name=Alice," "Year=2," and "Class=B." This results in record number "6," and by converting record number "6" to the Name column value "Cat," the final search result "Cat" is obtained.
[0063] <Summary> As described above, when the search device 20 according to this embodiment receives search conditions that include a dimension order that indicates the order of one or more dimensions and dimension search conditions related to each of the one or more dimensions, it can calculate, for each dimension, hit intervals that satisfy the dimension search conditions corresponding to that dimension, and then efficiently extract record numbers that are commonly included in all hit intervals. Therefore, the search device 20 according to this embodiment makes it possible to efficiently search for desired multidimensional data from a dataset composed of efficient multidimensional data.
[0064] In addition, since a dimension specified first in the dimension order checks whether all record numbers included in the Hit section of that dimension are also included in the Hit sections of the next dimension and beyond, it is preferable that the number of record numbers included in the Hit section of the dimension specified first in the dimension order be as small as possible. For this reason, it is preferable that the user specify the dimension order and the dimension search conditions of the first dimension so that the number of record numbers included in the Hit section of the first dimension is as small as possible.
[0065] The present invention is not limited to the above-described specifically disclosed embodiments, and various modifications, changes, and combinations with known technologies are possible without departing from the scope of the claims.
[0066] This application is based on basic application No. 2024-064461 filed in Japan on April 12, 2024, the entire contents of which are incorporated herein by reference.
[0067] REFERENCE SIGNS LIST 1 Search system 10 User device 20 Search device 30 Communication network 201 Input device 202 Display device 203 External I / F 203a Recording medium 204 Communication I / F 205 RAM 206 ROM 207 Auxiliary storage device 208 Processor 209 Bus 210 Search request receiving unit 211 Search unit 212 Search result response unit 213 Data storage unit
Claims
1. A search device that holds a dataset consisting of multidimensional data, a first array that stores, for each dimension, the record numbers of values that appear in the dimension of the dataset in ascending order of the values, and a second array in which the subscripts and elements of the first array are swapped, determines a hit interval on the first array for each dimension specified in a search condition, and uses the second array to identify record numbers that are commonly included in the hit intervals between the dimensions specified in the search condition.
2. The search device described in claim 1 further maintains, for each dimension, a third array whose elements are values that appear in the dimension in ascending order and are unique, and a fourth array whose elements are values that indicate the position next to the position of the element in the first array in which the record number of the element in the third array is stored, and determines the hit section on the first array using the third array and the fourth array.
3. A search device as described in claim 1 or 2, which identifies a value of a specified dimension from the identified record number, and determines a new hit section based on a new search condition in which the identified value of the specified dimension is specified, and identifies record numbers that are commonly included in the new hit section.
4. A search method in which a computer that holds a dataset consisting of multidimensional data, a first array that stores, for each dimension, the record numbers of values that appear in the dimension of the dataset in ascending order of the values, and a second array in which the subscripts and elements of the first array are swapped, determines a hit interval on the first array for each dimension specified in a search condition, and identifies record numbers that are commonly included in the hit intervals between the dimensions specified in the search condition using the second array.
5. A program that causes a computer that holds a dataset consisting of multidimensional data, a first array that stores, for each dimension, the record numbers of values that appear in the dimension of the dataset in ascending order of the values, and a second array in which the subscripts and elements of the first array are swapped, to execute a process of determining a hit interval on the first array for each dimension specified in a search condition, and using the second array to identify record numbers that are commonly included in the hit intervals between the dimensions specified in the search condition.
Citation Information
Patent Citations
Method and device for tallying tabular form data in memory shared parallel processing system
WO2008155852A1
Information processing system and information processing method
WO2019163610A1
Data creation device, data creation method, and program
WO2023276162A1