Systems, methods, and data structures for high-speed searching or filtering of large datasets
AssigneeMoonshadow Mobile, Inc.
InventorRoy W. Ward
Life of this patent
Estimating the term…
Abstract
An inline tree data structure and one or more auxiliary data structure encode a multitude of data records of a dataset; data fields of the dataset define a tree hierarchy. The inline tree comprises one binary string for each data record that are all the same length, are arranged in an ordered sequence that corresponds to the tree hierarchy, and include an indicator string indicating position in the tree hierarchy of each data record relative to an immediately adjacent data record. A search program is guided through the dataset by interrogating each indicator string in the inline tree data structure so as to reduce unnecessary interrogation of data field values.
Claims18
A computer-implemented method for interrogating a dataset encoded on one or more tangible, non-transitory computer-readable storage media as an inline tree data structure and one or more auxiliary data structures, wherein:
- (a) the dataset comprises a multitude of data records, and each data record includes field value strings for multiple corresponding defined data fields;
- (b) the defined data fields include terminal-node data fields and first-level branch-node data fields, and the first-level branch-node data fields define a hierarchical tree relationship among subranges of field value strings of the first-level branch-node data fields, which subranges correspond to multiple first-level branch-node subsets of the data records of the dataset;
- (c) each first-level branch-node subset includes data records for which field value strings of first-level branch-node data fields fall within the corresponding subrange;
- (d) the inline tree data structure comprises an ordered sequence of only terminal-node binary strings, wherein (1) there is a one-to-one correspondence between the terminal-node binary strings and the data records of the dataset, (2) the terminal-node binary strings have the same length as one another, and (3) each terminal-node binary string includes an indicator string that indicates, for each terminal-node binary string, that (i) the terminal-node binary string and an immediately adjacent terminal-node binary string in the ordered sequence correspond to respective data records that are both in the same first-level branch-node subset, (ii) the respective data records are in first-level branch-node subsets different from each other, or (iii) the terminal-node binary string is the last terminal-node binary string of the inline tree data structure;
- (e) for each first-level branch-node subset, the corresponding terminal-node binary strings form a single contiguous string sequence within the inline tree data structure;
- and
- (f) the one or more auxiliary data structures include electronic indicia of field value strings of the data records of the dataset arranged, indexed, or accessible in the same order as the ordered sequence of terminal-node binary strings in the inline tree data structure;
- the method comprising:
- (A) receiving at a computer system a search query for data records of the dataset that include, for each one of one or more selected queried data fields among the defined data fields of the dataset, a corresponding field value that falls within a corresponding queried field value subrange;
- (B) automatically, with a computer processor programmed therefor, interrogating, in order, the ordered sequence of the terminal-node binary strings of the inline tree data structure to identify the corresponding indicator strings;
- (C) as each terminal node binary string is interrogated in part (B), automatically interrogating, in the one or more auxiliary data structures with a computer processor programmed therefor, field value strings only among the selected queried data fields of the corresponding data record, to identify data records that satisfy the search query of part (A), wherein the field value strings interrogated in part (C) for each data record are determined in part by the corresponding indicator string identified in part (B);
- (D) for each first-level branch-node field value that does not satisfy the search query of part (A), omitting from the interrogation of part (C) terminal-node field value strings of the corresponding first-level branch-node subset of the data records;
- and
- (E) automatically generating, with a computer processor programmed therefor, a list or an enumeration of data records that are identified in part (C) as satisfying the search query received in part (A).
A computer-implemented method for interrogating a dataset encoded on one or more tangible, non-transitory computer-readable storage media as an inline tree data structure and one or more auxiliary data structures, wherein:
- (a) the dataset comprises a multitude of data records, and each data record includes field value strings for multiple corresponding defined data fields;
- (b) the defined data fields include terminal-node data fields, first-level branch-node data fields, and one or more levels of higher-level branch-node data fields, and the first-level and higher-level branch-node data fields define a hierarchical tree relationship among subranges of field value strings of the branch-node data fields, which subranges correspond to the multiple first-level branch-node subsets, and one or more levels of higher-level branch-node subsets, of the data records of the dataset;
- (c) each first-level branch-node subset includes data records for which field value strings of first-level branch-node data fields fall within the corresponding subrange, and for each level of higher-level branch-node data fields, each higher-level branch-node subset includes data records for which field value strings of the higher-level branch-node data fields of that level fall within the corresponding subrange;
- (d) the inline tree data structure comprises an ordered sequence of only terminal-node binary strings, wherein (1) there is a one-to-one correspondence between the terminal-node binary strings and the data records of the dataset, (2) the terminal-node binary strings have the same length as one another, and (3) each terminal-node binary string includes an indicator string that indicates, for each terminal-node binary string, that (i) the terminal-node binary string and an immediately adjacent terminal-node binary string in the ordered sequence correspond to respective data records that are both in the same first-level branch-node subset, (ii) the respective data records are in first-level branch-node subsets different from each other but are not in different higher-level branch-node subsets, (iii) the respective data records are in first-level branch-node subsets different from each other and a highest level among the branch-node subsets at which the respective data records also are in higher-level branch-node subsets different from each other, or (iv) the terminal-node binary string is the last terminal-node binary string of the inline tree data structure;
- (e) for each first-level branch-node subset, the corresponding terminal-node binary strings form a single contiguous string sequence within the inline tree data structure, and for each higher-level branch-node subset, the corresponding terminal-node binary strings form a single contiguous string sequence within the inline tree data structure;
- and
- (f) the one or more auxiliary data structures include electronic indicia of field value strings of the data records of the dataset arranged, indexed, or accessible in the same order as the ordered sequence of terminal-node binary strings in the inline tree data structure;
- the method comprising:
- (A) receiving at a computer system a search query for data records of the dataset that include, for each one of one or more selected queried data fields among the defined data fields of the dataset, a corresponding field value that falls within a corresponding queried field value subrange;
- (B) automatically, with a computer processor programmed therefor, interrogating, in order, the ordered sequence of the terminal-node binary strings of the inline tree data structure to identify the corresponding indicator strings;
- (C) as each terminal node binary string is interrogated in part (B), automatically interrogating, in the one or more auxiliary data structures with a computer processor programmed therefor, field value strings only among the selected queried data fields of the corresponding data record, to identify data records that satisfy the search query of part (A), wherein the field value strings interrogated in part (C) for each data record are determined in part by the corresponding indicator string identified in part (B);
- (D) for each first-level branch-node field value that does not satisfy the search query of part (A), omitting from the interrogation of part (C) terminal-node field value strings of the corresponding first-level branch-node subset of the data records;
- (E) for each higher-level branch-node field value that does not satisfy the search query of part (A), omitting from the interrogation of part (C) first-level and terminal-node field value strings of the corresponding higher-level branch-node subset of the data records;
- and
- (F) automatically generating, with a computer processor programmed therefor, a list or an enumeration of data records that are identified in part (C) as satisfying the search query received in part (A).
Dependencies are inferred from the claim text.