3. The method of claim 1 , wherein the pattern query comprises one or more branches.
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.