1. A method for optimizing pattern query searches on a graph database, the method being implemented by a computer including at least one processor and comprising: providing a pattern search engine operative to generate a search plan on the graph database from a first pattern query, the pattern search engine being executed by the processor; identifying, by the at least one processor, in the first pattern query a first subpattern query and a second subpattern query that is structurally equivalent to the first subpattern query; wherein the first subpattern query and the second subpattern query each comprise a single path; wherein the structural equivalence meets criteria of: the paths have a same number of nodes; nodes in a same position on the paths are of a same type; nodes in a same position on the paths have same qualifications; only start and end nodes are shared; none of non-shared nodes between the paths are exported; any shared node is shared with both paths in a same position; having one shared node between both paths; and non-shared nodes in the paths are not used in pattern query language (PQL) value or constraint expressions; and reducing the number of search expressions in the search plan based on the structural equivalence between the first subpattern query and the second subpattern query.
1. A method for optimizing pattern query searches on a graph database, the method being implemented by a computer including at least one processor and comprising: providing a pattern search engine operative to generate a search plan on the graph database from a first pattern query, the pattern search engine being executed by the processor; identifying, by the at least one processor, in the first pattern query a first subpattern query and a second subpattern query that is structurally equivalent to the first subpattern query; wherein the first subpattern query and the second subpattern query each comprise a single path; wherein the structural equivalence meets criteria of: the paths have a same number of nodes; nodes in a same position on the paths are of a same type; nodes in a same position on the paths have same qualifications; only start and end nodes are shared; none of non-shared nodes between the paths are exported; any shared node is shared with both paths in a same position; having one shared node between both paths; and non-shared nodes in the paths are not used in pattern query language (PQL) value or constraint expressions; and reducing the number of search expressions in the search plan based on the structural equivalence between the first subpattern query and the second subpattern query. 2. The method of claim 1 , wherein the graph database is implemented in a relational database management system (RDBMS).