SYSTEMS AND METHODS FOR INDEXING AND SEARCHING DATA RECORDS BASED ON DISTANCE METRICS

Information

  • Patent Application
  • 20070192301
  • Publication Number
    20070192301
  • Date Filed
    February 15, 2007
    17 years ago
  • Date Published
    August 16, 2007
    17 years ago
Abstract
A computer implemented method for searching a data structure is disclosed. A first node on the data structure is examined. A determination is made as to whether the first node is associated with one or more child nodes. When the first node not associated with one or more child nodes, elements within the first node that are located within a defined distance away from a defined location rendered on the first node are identified. The identified elements are stored in a data set. The nodal radius cut-off value is updated if the value is less than a difference of one half a radius of the first node and a distance from the defined location to the center point of the first node. The first node is labeled to indicate that the node has been examined.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the principles disclosed herein, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:



FIG. 1A is a graphical representation of a Level 0 root node of a two-dimensional P-tree data structure used to store data points of interest within a geographic region, in accordance with one embodiment.



FIG. 1B is a graphical representation of a Level 1 set of sub-nodes in a two-dimensional P-tree data structure used to store data points of interest within a geographic region, in accordance with one embodiment.



FIG. 1C is a graphical representation of a complete two-dimensional P-tree data structure used to store data points of interest within a geographic region, in accordance with one embodiment.



FIG. 2 is an illustration of a flowchart detailing a method for searching a two-dimensional P-tree data structure, in accordance with one embodiment.



FIG. 3 is an illustration of a flowchart detailing a method for inserting database records in a two-dimensional P-tree data structure, in accordance with one embodiment.


Claims
  • 1. A computer implemented method for searching a data structure, comprising: examining a first node on the data structure;determining whether the first node is associated with one or more child nodes;when the first node is not associated with one or more child nodes, identifying elements within the first node that are located within a defined distance away from a defined location rendered on the first node;storing the identified elements in a data set;updating a nodal radius cut-off value if the nodal radius cut-off value is less than a difference of one half a radius of the first node and a distance from the defined location to the center point of the first node; andlabeling the first node to indicate that the node has been examined.
  • 2. The computer implemented method for searching a data structure, as recited in claim 1, further including, when the first node is associated with one or more child nodes, determining a distance from a center point to a defined location for each of the child nodes;sorting each of the child nodes into sequential order from shortest to longest distance;identifying elements within the first node that are located within a defined distance away from the defined location;storing the identified elements in a data set;sequentially examining each of the child nodes that have not previously been examined and have areas that contain the defined location;identify elements within each of the child nodes that are located within the defined distance away from the defined location;storing the identified elements in the data set; andlabeling the first node and the examined child nodes to indicate that they have been examined.
  • 3. The computer implemented method for searching a data structure, as recited in claim 1, wherein, the data structure is a proximity tree.
  • 4. The computer implemented method for searching a data structure, as recited in claim 3, wherein the proximity tree is a finite directed acyclic graph (DAG).
  • 5. The computer implemented method for searching a data structure, as recited in claim 1, wherein each of the child nodes associated with the first node has a center point that lies within a distance that is one half of the radius of the first node away from a center point of the first node.
  • 6. The computer implemented method for searching a data structure, as recited in claim 1, wherein each element corresponds to a geographic location.
  • 7. The computer implemented method for searching a data structure, as recited in claim 6, wherein the geographic location is a commercial entity.
  • 8. The computer implemented method for searching a data structure, as recited in claim 1, wherein the search is conducted relative to the defined location.
  • 9. A computer implemented method for inserting database records into a data structure, comprising: determining whether a first node in the data structure is associated with one or more child nodes;when the first node is not associated with one or more child nodes, inserting elements into the first node, wherein each element represents a geographic location; anddetermining whether the number of elements in the first node exceeds a set number, wherein, if the number of elements in the first node does exceed the set number, replacing the first node with a set of nodes, wherein radii of the set of nodes measures one half a first radius of the first node, and redistributing the elements between each node of the set of nodes.
  • 10. The computer implemented method for inserting database records into a data structure, as recited in claim 3, further including: when the first node is associated with one or more child nodes, identifying child nodes associated with the first node;determining which of the identified child nodes have been split;terminating the association of each of the split child nodes with the first node gathering elements stored within the terminated split child nodes;examining each of the remaining child nodes associated with the first node to determine if a defined location lies within a circular area defined around each of the remaining child nodes; andinserting the gathered elements into each of the remaining child nodes with circular areas that hold the defined location.
  • 11. The computer implemented method for inserting database records into a data structure, as recited in claim 9, wherein, the data structure is a proximity tree.
  • 12. The computer implemented method for inserting database records into a data structure, as recited in claim 11, wherein the proximity tree is a finite directed acyclic graph (DAG).
  • 13. The computer implemented method for inserting database records into a data structure, as recited in claim 10, wherein each of the child nodes associated with the first node has a center point that lies within a distance that is one half of the first radius of the first node away from a center point of the first node.
  • 14. The computer implemented method for inserting database records into a data structure, as recited in claim 9, wherein each element corresponds to a geographic location.
  • 15. The computer implemented method for inserting database records into a data structure, as recited in claim 14, wherein the geographic location is a commercial entity.
  • 16. The computer implemented method for inserting database records into a data structure, as recited in claim 10, wherein identical elements may be indexed into more than one child node.
  • 17. A data tree structure for storing a dataset to be indexed and searched based on distance criteria, comprising: a root node defined by a root node center point and a root node radius, the root node configured to store elements that comprise the dataset; anda first sub-node associated with the root node, the first sub-node defined by a first sub-node center point and a first sub-node radius, wherein the first sub-node center point lies within one half the root node radius away from the root node center point and is configured to store a portion of the elements that comprise the dataset.
  • 18. The data tree structure for storing a dataset to be indexed and searched based on distance criteria, as recited in claim 17, wherein each element corresponds to a unique geographical location.
  • 19. The data tree structure for storing a dataset to be indexed and searched based on distance criteria, as recited in claim 18, wherein the unique geographic location is a commercial entity.
  • 20. The data tree structure for storing a dataset to be indexed and searched based on distance criteria, as recited in claim 17, wherein every path from the root node to the first sub-node has the same length.
  • 21. The data tree structure for storing a dataset to be indexed and searched based on distance criteria, as recited in claim 17, wherein the first sub-node is configured to be associated with one or more child nodes.
  • 22. The data tree structure for storing a dataset to be indexed and searched based on distance criteria, as recited in claim 17, wherein, the data structure is a proximity tree.
  • 23. The data tree structure for storing a dataset to be indexed and searched based on distance criteria, as recited in claim 22, wherein the proximity tree is a finite directed acyclic graph (DAG).
Provisional Applications (1)
Number Date Country
60773754 Feb 2006 US