← Back to Patent Explorer
US6047283A Expired / Lapsed US ⏱️ 0.0 years remaining

Fast string searching and indexing using a search tree having a plurality of linked nodes

Assignee: SAP SE
•
Filing: 1998-02-26
•
Granted: 2000-04-04
•
Expires: 2018-02-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A fast string indexing method efficiently stores, searches, and removes alphanumeric or binary strings utilizing a compacted search tree. The number of levels in the search tree is minimized by having a node represent more than one character when possible. Each inner node of the tree contains a hash table array for successive hashing, which also minimizes the time required to traverse a given node. Searches may be performed for partial matches, such as wild cards at the character level. Multiple indices may be opened independently and concurrently on the same table of string entries.

Inventors

  • 👤 Bernhard Braun

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 01:19
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/30; G06F16/31; G06F16/316; G06F16/322; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99933; Y10S707/99936; Y10S707/99938

Claims Analysis

Total Claims: 57
Claim 1
Independent Claim 206 words
A search tree for indexing a plurality of string entries, wherein each one of said plurality of string entries is a string of characters, comprising: a plurality of linked nodes consisting of a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets.
Claim 2
Dependent Claim 206 words
A search tree for indexing a plurality of string entries, wherein each one of said plurality of string entries is a string of characters, comprising: a plurality of linked nodes consisting of a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets.
Claim 3
Dependent Claim 29 words
The search tree for indexing a plurality of strings of claim 1, wherein the number of characters in each one of said plurality of string entries is the same.
Claim 4
Dependent Claim 56 words
The search tree for indexing a plurality of strings of claim 1, wherein at least one of said plurality of inner nodes has a reference to a parent node having a character comparison position that is at least two less than the character comparison position of said at least one of said plurality of inner nodes.
Claim 5
Dependent Claim 47 words
The search tree for indexing a plurality of strings of claim 1, wherein each one of said plurality of inner nodes is associated with a level and further comprises a reference link to at least one of said plurality of linked nodes also associated with said level.
Claim 6
Dependent Claim 37 words
The search tree for indexing a plurality of strings of claim 1, wherein said string of characters is a string of alphanumeric characters and at least one of said plurality of string entries contains a wildcard character.
Claim 7
Dependent Claim 40 words
The search tree for indexing a plurality of strings of claim 1, wherein a search of said search tree utilizes a LIFO memory manager for managing a stack having links to at least some of said plurality of linked nodes.
Claim 8
Dependent Claim 17 words
The search tree for indexing a plurality of strings of claim 6, wherein said search utilizes backtracking.
Claim 9
Dependent Claim 20 words
The search tree for indexing a plurality of strings of claim 6, wherein said search utilizes pruning of said stack.
Claim 10
Dependent Claim 24 words
The search tree for indexing a plurality of strings of claim 4, wherein at least some of said reference links form a doubly-linked list.
Claim 11
Independent Claim 267 words
A method for searching for a certain string, consisting of a plurality of characters, among a plurality of strings, wherein each one of said plurality of strings is a string of characters, comprising the steps of: creating on an R/3 system a search tree having a plurality of linked nodes consisting of a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of strings, wherein said each one of said plurality of inner nodes comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; forming on an R/3 system a query associated with said certain string; and traversing said search tree utilizing said query and providing an index to any of said plurality of strings that matches said certain string.
Claim 12
Independent Claim 267 words
A method for searching for a certain string, consisting of a plurality of characters, among a plurality of strings, wherein each one of said plurality of strings is a string of characters, comprising the steps of: creating on an R/3 system a search tree having a plurality of linked nodes consisting of a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of strings, wherein said each one of said plurality of inner nodes comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; forming on an R/3 system a query associated with said certain string; and traversing said search tree utilizing said query and providing an index to any of said plurality of strings that matches said certain string.
Claim 13
Independent Claim 233 words
A method for indexing a plurality of string entries, wherein each one of said plurality of string entries is a string of characters, comprising the steps of: creating a search tree comprising a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; and applying said search tree to said indexing of said plurality of string entries.
Claim 14
Independent Claim 233 words
A method for indexing a plurality of string entries, wherein each one of said plurality of string entries is a string of characters, comprising the steps of: creating a search tree comprising a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; and applying said search tree to said indexing of said plurality of string entries.
Claim 15
Dependent Claim 28 words
The method for indexing a plurality of strings of claim 11, wherein the number of characters in each one of said plurality of string entries is the same.
Claim 16
Dependent Claim 55 words
The method for indexing a plurality of strings of claim 11, wherein at least one of said plurality of inner nodes has a reference to a parent node having a character comparison position that is at least two less than the character comparison position of said at least one of said plurality of inner nodes.
Claim 17
Dependent Claim 46 words
The method for indexing a plurality of strings of claim 11, wherein each one of said plurality of inner nodes is associated with a level and further comprises a reference link to at least one of said plurality of linked nodes also associated with said level.
Claim 18
Dependent Claim 23 words
The method for indexing a plurality of strings of claim 11, wherein at least some of said reference links form a doubly-linked list.
Claim 19
Dependent Claim 36 words
The method for indexing a plurality of strings of claim 11, wherein said string of characters is a string of alphanumeric characters and at least one of said plurality of string entries contains a wildcard character.
Claim 20
Dependent Claim 40 words
The method for indexing a plurality of strings of claim 11, wherein a search of said search tree utilizes a last-in first-out memory manager for managing a stack having links to at least some of said plurality of linked nodes.
Claim 21
Dependent Claim 16 words
The method for indexing a plurality of strings of claim 17, wherein said search utilizes backtracking.
Claim 22
Dependent Claim 19 words
The method for indexing a plurality of strings of claim 17, wherein said search utilizes pruning of said stack.
Claim 23
Independent Claim 271 words
A method for searching for a certain string, consisting of a plurality of characters, among a plurality of strings, wherein each one of said plurality of strings is a string of characters, comprising the steps of: creating a search tree comprising a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; wherein said plurality of strings forms a plurality of string entries; forming a query associated with said certain string; and traversing said search tree utilizing said query and providing an index to any of said plurality of strings that matches said certain string.
Claim 24
Independent Claim 271 words
A method for searching for a certain string, consisting of a plurality of characters, among a plurality of strings, wherein each one of said plurality of strings is a string of characters, comprising the steps of: creating a search tree comprising a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; wherein said plurality of strings forms a plurality of string entries; forming a query associated with said certain string; and traversing said search tree utilizing said query and providing an index to any of said plurality of strings that matches said certain string.
Claim 25
Dependent Claim 27 words
The method for searching for a certain string of claim 20, wherein said certain string consists of a plurality of alphanumeric characters and at least one wildcard.
Claim 26
Dependent Claim 36 words
The method for searching for a certain string of claim 20, wherein said traversal utilizes a last-in first-out memory manager for managing a stack having links to at least some of said plurality of linked nodes.
Claim 27
Dependent Claim 16 words
The method for searching for a certain string of claim 22, wherein said traversal utilizes backtracking.
Claim 28
Dependent Claim 19 words
The method for searching for a certain string of claim 22, wherein said traversal utilizes pruning of said stack.
Claim 29
Dependent Claim 52 words
The method for searching for a certain string of claim 20, wherein the steps of creating a search tree and forming a query associated with said certain string are performed on a human resources management, financials, logistics, business workflow, personnel management, organizational management, payroll accounting, time management, personnel development or network system.
Claim 30
Independent Claim 290 words
A method for collision detection or collision management of requests of several users accessing a database including a first plurality of string entries, comprising maintenance of a dynamic lock table including the requests of the users, comprising the steps of: indexing said requests as a second plurality of string entries, wherein each one of said second plurality of string entries is a string of characters, by using a search tree, said search tree comprising: a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said second plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; and performing a query to the lock table associated with a request of a user to the database before passing the request of the user to the database.
Claim 31
Independent Claim 290 words
A method for collision detection or collision management of requests of several users accessing a database including a first plurality of string entries, comprising maintenance of a dynamic lock table including the requests of the users, comprising the steps of: indexing said requests as a second plurality of string entries, wherein each one of said second plurality of string entries is a string of characters, by using a search tree, said search tree comprising: a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said second plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; and performing a query to the lock table associated with a request of a user to the database before passing the request of the user to the database.
Claim 32
Dependent Claim 242 words
A computer-readable medium having stored thereon a plurality of instructions, said plurality of instructions including instructions which, when executed by a processor, cause said processor to index a plurality of string entries wherein each one of said plurality of string entries is a string of characters, by using a search tree, said search tree comprising: a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets.
Claim 33
Dependent Claim 242 words
A computer-readable medium having stored thereon a plurality of instructions, said plurality of instructions including instructions which, when executed by a processor, cause said processor to index a plurality of string entries wherein each one of said plurality of string entries is a string of characters, by using a search tree, said search tree comprising: a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets.
Claim 34
Dependent Claim 23 words
The computer-readable medium of claim 27, wherein the number of characters in each one of said plurality of string entries is the same.
Claim 35
Dependent Claim 50 words
The computer-readable medium of claim 27, wherein at least one of said plurality of inner nodes has a reference to a parent node having a character comparison position that is at least two less than the character comparison position of said at least one of said plurality of inner nodes.
Claim 36
Dependent Claim 41 words
The computer-readable medium of claim 27, wherein each one of said plurality of inner nodes is associated with a level and further comprises a reference link to at least one of said plurality of linked nodes also associated with said level.
Claim 37
Dependent Claim 18 words
The computer-readable medium of claim 27, wherein at least some of said reference links form a doubly-linked list.
Claim 38
Dependent Claim 31 words
The computer-readable medium of claim 27, wherein said string of characters is a string of alphanumeric characters and at least one of said plurality of string entries contains a wildcard character.
Claim 39
Dependent Claim 35 words
The computer-readable medium of claim 27, wherein a search of said search tree utilizes a last-in first-out memory manager for managing a stack having links to at least some of said plurality of linked nodes.
Claim 40
Dependent Claim 11 words
The computer-readable medium of claim 33, wherein said search utilizes backtracking.
Claim 41
Dependent Claim 14 words
The computer-readable medium of claim 33, wherein said search utilizes pruning of said stack.
Claim 42
Dependent Claim 294 words
A computer-readable medium having stored thereon a plurality of instructions, said plurality of instructions including instructions which, when executed by a processor, causes said processor to search for a certain string, consisting of a plurality of characters, among a plurality of strings, wherein each one of said plurality of strings is a string of characters, comprising the steps of: creating a search tree comprising a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; wherein said plurality of strings forms a plurality of string entries; forming a query associated with said certain string; and traversing said search tree utilizing said query and providing an index to any of said plurality of strings that matches said certain string.
Claim 43
Dependent Claim 294 words
A computer-readable medium having stored thereon a plurality of instructions, said plurality of instructions including instructions which, when executed by a processor, causes said processor to search for a certain string, consisting of a plurality of characters, among a plurality of strings, wherein each one of said plurality of strings is a string of characters, comprising the steps of: creating a search tree comprising a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; wherein said plurality of strings forms a plurality of string entries; forming a query associated with said certain string; and traversing said search tree utilizing said query and providing an index to any of said plurality of strings that matches said certain string.
Claim 44
Dependent Claim 22 words
The computer-readable medium of claim 36, wherein said certain string consists of a plurality of alphanumeric characters and at least one wildcard.
Claim 45
Dependent Claim 31 words
The computer-readable medium of claim 36, wherein said traversal utilizes a last-in first-out memory manager for managing a stack having links to at least some of said plurality of linked nodes.
Claim 46
Dependent Claim 11 words
The computer-readable medium of claim 36, wherein said traversal utilizes backtracking.
Claim 47
Dependent Claim 14 words
The computer-readable medium of claim 36, wherein said traversal utilizes pruning of said stack.
Claim 48
Dependent Claim 47 words
The computer-readable medium of claim 36, wherein the steps of creating a search tree and forming a query associated with said certain string are performed on a human resources management, financials, logistics, business workflow, personnel management, organizational management, payroll accounting, time management, personnel development or network system.
Claim 49
Dependent Claim 307 words
A computer-readable medium having stored thereon a plurality of instructions, said plurality of instructions including instructions which, when executed by a processor, cause said processor to detect or manage a collision of requests of several users accessing a database including a first plurality of string entries, by: maintaining a dynamic lock table including requests of the users; indexing said requests as a second plurality of string entries, wherein each one of said second plurality of string entries is a string of characters, by using a search tree, said search tree comprising: a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said second plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; and performing a query to the lock table associated with a request of a user to the database before passing the request of the user to the database.
Claim 50
Dependent Claim 307 words
A computer-readable medium having stored thereon a plurality of instructions, said plurality of instructions including instructions which, when executed by a processor, cause said processor to detect or manage a collision of requests of several users accessing a database including a first plurality of string entries, by: maintaining a dynamic lock table including requests of the users; indexing said requests as a second plurality of string entries, wherein each one of said second plurality of string entries is a string of characters, by using a search tree, said search tree comprising: a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said second plurality of string entries, wherein said each one of said plurality of inner nodes further comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; and performing a query to the lock table associated with a request of a user to the database before passing the request of the user to the database.
Claim 51
Independent Claim 254 words
A system for searching a certain string, consisting of a plurality of characters, among a plurality of strings, wherein each one of said plurality of strings is a string of characters, comprising: means for creating a search tree having a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of strings, wherein said each one of said plurality of inner nodes comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; means for submitting a query associated with said certain string; and tree traversal means for providing an index to any of said plurality of strings that matches said certain string.
Claim 52
Independent Claim 254 words
A system for searching a certain string, consisting of a plurality of characters, among a plurality of strings, wherein each one of said plurality of strings is a string of characters, comprising: means for creating a search tree having a plurality of linked nodes comprising a root node, a plurality of inner nodes wherein each one of said plurality of inner nodes is associated with a character or substring of characters, and a plurality of leaf nodes associated with said plurality of strings, wherein said each one of said plurality of inner nodes comprises: (a) a reference to a parent node, wherein said parent node is either said root node or another of said plurality of inner nodes; (b) a first data field containing a character comparison position indicating the number of characters in said character or substring of characters associated with said one of said plurality of inner nodes; (c) a second data field containing a comparison character, said comparison character used to determine whether said character or substring of characters associated with said one of said plurality of inner nodes is contained in a string entry at a character position of said string entry associated with said character comparison position; (d) a reference to at least two successor nodes; and (e) a hash table array containing a predetermined number of hash buckets; means for submitting a query associated with said certain string; and tree traversal means for providing an index to any of said plurality of strings that matches said certain string.
Claim 53
Dependent Claim 21 words
The system of claim 43, wherein the number of characters in each one of said plurality of strings is the same.
Claim 54
Dependent Claim 49 words
The system of claim 43, wherein at least one of said plurality of inner nodes has a reference to a parent node having a character comparison position that is at least two less than the character comparison position of said at least one of said plurality of inner nodes.
Claim 55
Dependent Claim 40 words
The system of claim 43, wherein each one of said plurality of inner nodes is associated with a level and further comprises a reference link to at least one of said plurality of linked nodes also associated with said level.
Claim 56
Dependent Claim 21 words
The system of claim 43, wherein said certain string consists of a plurality of alphanumeric characters and at least one wildcard.
Claim 57
Dependent Claim 18 words
The system of claim 43, comprising collision detection or collision management by use of a dynamic lock table.

References Cited (Backward Citations)

EP0419889A2 Cited
US5745902A Cited
WO1996000945A1 Cited
US5613110A Cited
US5845274A Cited
US5778361A Cited
US5893086A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-04-04 2003-10-04 2004-04-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-04-04 2007-10-04 2008-04-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-04-04 2011-10-04 2012-04-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag