Optimizing search query logic to speed retrieval
First Claim
1. A method of processing a query at a computer system comprising one or more processors and a memory storing one or more programs for execution of the method by the one or more processors, the method comprising:
- building a query tree based on the query;
grouping at least some nodes of the query tree into a group of nodes based on an operator node that is a parent of the at least some nodes, the group of nodes retaining the functionality of the operator node;
eliminating the operator node by replacing the operator node with the group of nodes in the tree; and
traversing the tree to obtain a result list from a search index responsive to the query.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are provided for processing a query at a computer system. The method includes building a query tree based on the query and grouping at least some nodes of the query tree into a group of nodes. Grouping is based on an operator node that is a parent of the at least some nodes. The group of nodes retains the functionality of the operator node but the operator node is eliminated by replacing the operator node with the group of nodes in the query tree. The method also includes traversing the query tree to obtain a result list from a search index that is responsive to the query.
42 Citations
27 Claims
-
1. A method of processing a query at a computer system comprising one or more processors and a memory storing one or more programs for execution of the method by the one or more processors, the method comprising:
-
building a query tree based on the query; grouping at least some nodes of the query tree into a group of nodes based on an operator node that is a parent of the at least some nodes, the group of nodes retaining the functionality of the operator node;
eliminating the operator node by replacing the operator node with the group of nodes in the tree; andtraversing the tree to obtain a result list from a search index responsive to the query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
one or more processors; and one or more memories storing an index and instructions that, when executed by the one or more processors, cause the processors to perform the operations of; receiving a query to process against a search index; building a query tree based on the query; grouping at least some nodes of the query tree into a group of nodes based on an operator node that is a parent of the at least some nodes, the group of nodes retaining the functionality of the operator node;
eliminating the operator node by replacing the operator node with the group of nodes in the tree; andtraversing the tree to obtain a result list from the search index responsive to the query. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A method of flattening a search query at a computer system comprising one or more processors and a memory storing one or more programs for execution of the method by the one or more processors, the method comprising:
-
building a query tree based on the query; identifying a portion of the tree for flattening, the portion including at least one operator node and children of the operator node; eliminating the at least one operator node by generating a jump-table for the portion of the tree, the jump-table including a row for the children of the operator node, each row including an indication of a next node to invoke based on a result of a match operation performed by the node associated with the row; and traversing the tree using the jump-table and a search index to obtain a result list that is responsive to the query. - View Dependent Claims (24, 25, 26, 27)
-
Specification