System and method for keyword searching using both static and dynamic dictionaries
First Claim
1. A method of analyzing communication traffic in a network to determine if keywords occur in the communication traffic, comprising:
- adding one or more newly-arrived keywords to a static dictionary, which is represented by a data structure stored in computer memory and needs to be recompiled in order to be updated, by recompiling the static dictionary;
during the recompilation of the static dictionary;
receiving one or more additional keywords during the recompilation;
adding the one or more additional keywords to both a first dynamic dictionary and a second dynamic dictionary, each of which is represented by a respective data structure stored in computer memory and does not need to be recompiled in order to be updated, andsearching input data using both the first dynamic dictionary and the static dictionary but not using the second dynamic dictionary; and
following the recompilation, searching input data using both the second dynamic dictionary and the static dictionary but not using the first dynamic dictionary.
3 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and techniques for constructing and utilizing a “dynamic dictionary” that is not a compiled dictionary, and therefore does not need to be recompiled in order to be updated. The dynamic dictionary includes respective data structures that represent (i) a management automaton that includes a plurality of management nodes, and (ii) a runtime automaton that is derived from the management automaton and includes a plurality of runtime nodes. The runtime automaton may be used to search input data, such as communication traffic over a network, for keywords of interest, while the management automaton manages the addition of keywords to the dynamic dictionary. Typically, at least two (e.g., exactly two) such dynamic dictionaries are used in combination with a static dictionary.
200 Citations
20 Claims
-
1. A method of analyzing communication traffic in a network to determine if keywords occur in the communication traffic, comprising:
-
adding one or more newly-arrived keywords to a static dictionary, which is represented by a data structure stored in computer memory and needs to be recompiled in order to be updated, by recompiling the static dictionary; during the recompilation of the static dictionary; receiving one or more additional keywords during the recompilation; adding the one or more additional keywords to both a first dynamic dictionary and a second dynamic dictionary, each of which is represented by a respective data structure stored in computer memory and does not need to be recompiled in order to be updated, and searching input data using both the first dynamic dictionary and the static dictionary but not using the second dynamic dictionary; and following the recompilation, searching input data using both the second dynamic dictionary and the static dictionary but not using the first dynamic dictionary. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. Apparatus, comprising:
-
a network interface; and one or more processors, configured to analyze communication traffic in a network to determine if keywords occur in the communication traffic and to; add one or more newly-arrived keywords to a static dictionary, which is represented by a data structure stored in computer memory and needs to be recompiled in order to be updated, by recompiling the static dictionary, during the recompilation of the static dictionary; receive one or more additional keywords during the recompilation; add the one or more additional keywords to both a first dynamic dictionary and a second dynamic dictionary, each of which is represented by a respective data structure stored in computer memory and does not need to be recompiled in order to be updated, and search input data received via the network interface using both the first dynamic dictionary and the static dictionary but not using the second dynamic dictionary, and following the recompilation, search input data received via the network interface using both the second dynamic dictionary and the static dictionary but not using the first dynamic dictionary. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer software product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by one or more processors, cause the processors to analyze communication traffic in a network to determine if keywords occur in the communication traffic and to:
-
add one or more newly-arrived keywords to a static dictionary, which is represented by a data structure stored in computer memory and needs to be recompiled in order to be updated, by recompiling the static dictionary, during the recompilation of the static dictionary; receive one or more additional keywords during the recompilation; add the one or more additional keywords to both a first dynamic dictionary and a second dynamic dictionary, each of which is represented by a respective data structure stored in computer memory and does not need to be recompiled in order to be updated, and search input data using both the first dynamic dictionary and the static dictionary but not using the second dynamic dictionary, and following the recompilation, search input data from the network using both the second dynamic dictionary and the static dictionary but not using the first dynamic dictionary. - View Dependent Claims (20)
-
Specification