Compressed prefix matching database searching
First Claim
1. A method of storing and searching a hierarchical search path in response to a search argument to provide a hierarchical search through a series of hierarchal levels, comprising the machine-implemented steps of:
- storing nodes to provide the hierarchial search, such storing node forming a search path, at least some of said nodes including one or more pointers indicating other nodes, at least one of the nodes along said search path including a special pointer indicating a starting node at a different one of the series of hierarchial levels,parsing said search argument into a series of search segments as a consequence of the processing said storing nodes, successive segments of said argument corresponding to a currently, or successively, processed one of said series of nodes along said search path,searching by processing successive respective search segments by processing the currently, or successively, processed one of the respective nodes, said processing of said node including;
retrieving one of said pointers from said node referencing a node for subsequent processing, such subsequently processed node being selected in response to a value of a search segment said node; and
, conditionally determining the number of bits in the search argument remaining to be processed to transition to a subsequent level of the hierarchial search, and,while processing said one of the nodes, determining whether a predetermined number of bits in the search argument have been processed or a predetermined number of bits in the search argument remain unprocessed in said search argument, and if the predetermined number of bits in the search argument have been processed retrieving said special pointer from said one of the nodes and proceeding to said starting node of the subsequent one of the hierarchial levels as referenced by the pointer and continuing the search at said starting node.
11 Assignments
0 Petitions
Accused Products
Abstract
Aspects of the invention include a method of conducting a reduced length search along a search path. A node which would otherwise occur between a previous and a following node in the search path is eliminated, and information is stored as to whether, had said eliminated node been present, the search would have proceeded to the following node. During the search, a search argument is compared with the stored information, and the search effectively progresses from the previous node directly to the following node if the comparison is positive. In preferred embodiments, some nodes provide result values for the search, and a node is eliminated only if its presence would not affect the result value for the search. In another aspect, the invention features a method of conducting a two mode search of reduced length. For a first mode of the search, nodes along a search path are provided, at least some of the nodes including one or more pointers pointing to other nodes. A search argument comprising a series of search segments is provided, some values of segments of the argument corresponding to nodes along the search path, some other values of the segments relating to a second mode of the search. Indicators associated with nodes are provided, each indicator indicating the segments corresponding to the second mode. The search path is searched by processing successive search segments by inspecting the indicator associated with each node, and proceeding to the second search mode if the indicator indicates that the segment relates to the second mode.
285 Citations
6 Claims
-
1. A method of storing and searching a hierarchical search path in response to a search argument to provide a hierarchical search through a series of hierarchal levels, comprising the machine-implemented steps of:
-
storing nodes to provide the hierarchial search, such storing node forming a search path, at least some of said nodes including one or more pointers indicating other nodes, at least one of the nodes along said search path including a special pointer indicating a starting node at a different one of the series of hierarchial levels, parsing said search argument into a series of search segments as a consequence of the processing said storing nodes, successive segments of said argument corresponding to a currently, or successively, processed one of said series of nodes along said search path, searching by processing successive respective search segments by processing the currently, or successively, processed one of the respective nodes, said processing of said node including;
retrieving one of said pointers from said node referencing a node for subsequent processing, such subsequently processed node being selected in response to a value of a search segment said node; and
, conditionally determining the number of bits in the search argument remaining to be processed to transition to a subsequent level of the hierarchial search, and,while processing said one of the nodes, determining whether a predetermined number of bits in the search argument have been processed or a predetermined number of bits in the search argument remain unprocessed in said search argument, and if the predetermined number of bits in the search argument have been processed retrieving said special pointer from said one of the nodes and proceeding to said starting node of the subsequent one of the hierarchial levels as referenced by the pointer and continuing the search at said starting node. - View Dependent Claims (2, 3, 4)
-
-
5. Apparatus for storing and searching a hierarchical search path in response to a search argument, comprising
memory storing nodes forming said search path, at least some of said nodes including one or more pointers indicating other said nodes, at least a given node along said search path including a special pointer indicating a starting node at a different hierarchical level, a unit for parsing a search argument into a series of search segments as a consequence of processing a series of said nodes, successive segments of said argument corresponding to successive, or a current, one of said nodes along said search path, a controller for searching by processing successive respective search segments by processing successive, or a current one, of said respective nodes, said processing including retrieving one of said pointers from a node in response to a value of a search segment corresponding to a successive one of said node and conditionally determining the number of bits in the search argument remaining to be processed to transition to a subsequent level of the hierarchal search, such retrieved one of said pointers referencing a node for subsequent processing with a subsequent search argument, and while processing said given node, determining whether a predetermined number of bits in the search argument have been processed or a predetermined number of bits in the search argument remain unprocessed in said search argument, and if the predetermined number of bits in the search argument have been processed, retrieving said special pointer from said given node and proceeding to said starting node of the different hierarchial level referenced by the pointer and continuing the search at said starting node.
Specification