Method and Apparatus for Approximate Pattern Matching
First Claim
1. A method for inspecting a data stream for data segments matching one or more patterns each having a predetermined allowable error with at least one search engine comprising:
- filtering a data stream for a plurality of patterns of symbol combinations with a plurality of parallel filter mechanisms each configured to detect one or more patterns each with an associated allowable error;
detecting a plurality of potential pattern piece matches with the plurality of parallel filter mechanisms;
identifying a plurality of potentially matching patterns, each having an associated allowable error, from the plurality of parallel filter mechanisms;
reducing the identified plurality of potentially matching patterns to a set of potentially matching patterns, each having an associated allowable error with a reduction stage;
providing associated data and the reduced set of potentially matching patterns, each having an associated allowable error, to a verification stage; and
verifying presence of a pattern match in the data stream from the plurality of patterns of symbol combinations and associated allowable errors with the verification stage that includes an approximate match engine utilizing the associated data and the reduced set of potentially matching patterns.
4 Assignments
0 Petitions
Accused Products
Abstract
A system and method for inspecting a data stream for data segments matching one or more patterns each having a predetermined allowable error, which includes filtering a data stream for a plurality of patterns of symbol combinations with a plurality of parallel filter mechanisms, detecting a plurality of potential pattern piece matches, identifying a plurality of potentially matching patterns, reducing the identified plurality of potentially matching patterns to a set of potentially matching patterns with a reduction stage, providing associated data and the reduced set of potentially matching patterns, each having an associated allowable error, to a verification stage, and verifying presence of a pattern match in the data stream from the plurality of patterns of symbol combinations and associated allowable errors with the verification stage.
-
Citations
27 Claims
-
1. A method for inspecting a data stream for data segments matching one or more patterns each having a predetermined allowable error with at least one search engine comprising:
-
filtering a data stream for a plurality of patterns of symbol combinations with a plurality of parallel filter mechanisms each configured to detect one or more patterns each with an associated allowable error;
detecting a plurality of potential pattern piece matches with the plurality of parallel filter mechanisms;
identifying a plurality of potentially matching patterns, each having an associated allowable error, from the plurality of parallel filter mechanisms;
reducing the identified plurality of potentially matching patterns to a set of potentially matching patterns, each having an associated allowable error with a reduction stage;
providing associated data and the reduced set of potentially matching patterns, each having an associated allowable error, to a verification stage; and
verifying presence of a pattern match in the data stream from the plurality of patterns of symbol combinations and associated allowable errors with the verification stage that includes an approximate match engine utilizing the associated data and the reduced set of potentially matching patterns. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 14)
-
-
11. A method for inspecting a data stream for data segments matching one or more patterns each having a predetermined allowable error with at least one search engine comprising:
-
filtering a data stream for a plurality of patterns of symbol combinations with a plurality of parallel filter mechanisms each configured to detect one or more patterns each with an associated allowable error, wherein the plurality of parallel filter mechanisms is a group consisting of a set of parallel Bloom filters, a set of parallel Bloom filter arrays or a set of parallel Bloom filter arrays that utilize a single hash key generator;
detecting a plurality of potential pattern piece matches with the plurality of parallel filter mechanisms;
identifying a plurality of potentially matching patterns, each having an associated allowable error, from the plurality of parallel filter mechanisms;
reducing the identified plurality of potentially matching patterns to a set of potentially matching patterns, each having an associated allowable error;
providing associated data and the reduced set of potentially matching patterns, each having an associated allowable error, to a verification stage; and
verifying presence of a pattern match in the data stream from the plurality of patterns of symbol combinations and associated allowable errors with the verification stage that includes an approximate match engine utilizing the associated data and the reduced set of potentially matching patterns. - View Dependent Claims (12, 13)
-
-
15. A system for inspecting a data stream for data segments matching one or more patterns each having a predetermined allowable error with at least one search engine comprising:
-
a filter stage, which utilizes a plurality of parallel filter mechanisms each configured to detect one or more patterns, each with an associated allowable error, that filter a data stream for a plurality of patterns of symbol combinations and detect a plurality of potential pattern piece matches, and identify a plurality of potentially matching patterns, each having an associated allowable error;
a reduction stage, which reduces the identified plurality of potentially matching patterns to a set of potentially matching patterns, each having an associated allowable error; and
a verification stage, which includes an approximate match engine, that receives and utilizes associated data and the reduced set of potentially matching patterns and associated allowable errors to verify a presence of a pattern match in the data stream from the plurality of patterns of symbol combinations. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A system for inspecting a data stream for data segments matching one or more patterns each having a predetermined allowable error with at least one search engine comprising:
-
a plurality of parallel filter mechanisms, wherein the plurality of parallel filter mechanisms is a group consisting of a set of parallel Bloom filters, a set of parallel Bloom filter arrays or a set of parallel Bloom filter arrays that utilize a single hash key generator;
each configured to detect one or more patterns, each with an associated allowable error, that filter a data stream for a plurality of patterns of symbol combinations and detect a plurality of potential pattern piece matches and identify a plurality of potentially matching patterns, each having an associated allowable error;
a reduction stage that reduces the identified plurality of potentially matching patterns to a set of potentially matching patterns, each having an associated allowable error; and
a verification stage, which includes an approximate match engine, that receives and utilizes associated data and the reduced set of potentially matching patterns and associated allowable errors to verify a presence of a pattern match in the data stream from the plurality of patterns of symbol combinations. - View Dependent Claims (26, 27)
-
Specification