Dynamic prioritization of attributes to determine search space size of each term, then index on those sizes as attributes
AssigneeIntuit Inc.
InventorMichael T. Miller
Life of this patent
Estimating the term…
Abstract
A method and system provides efficient data searches. The method and system include receiving search request data that requests a search to be made and identifying multiple search terms or clauses in the search request data. The method and system includes determining an expected cost in resources for searching each search term. The method and system then searches for each search term in order from least resource intensive to most resource intensive, with each search after the first search being performed only among the results of the previously searched term(s).
Claims29
A method performed by one or more processors of a system, the method comprising:
- receiving a search request from a system user;
- identifying a plurality of search terms from the search request;
- retrieving search cost data indicating a respective search cost for each respective search term of the plurality of search terms based on a plurality of known search terms;
- matching each respective search term to a respective one of the plurality of known search terms;
- determining, for each respective search term, a search cost of searching the respective search term, based on the matching;
- determining an efficient order of searching the plurality of search terms based on the determined search costs, wherein the efficient order sorts the plurality of search terms from a lowest search cost term to a highest search cost term;
- performing a first search of a set of data for the lowest search cost term;
- performing a second search of a next lowest search cost term, according to the efficient order, only within results of the first search;
- searching for each respective remaining term, in the efficient order, only within results of the search performed just prior to the respective remaining search term;
- and
- providing the system user with results of the search for the highest search cost term.
A system comprising:
- one or more processors;
- and
- at least one memory coupled to the one or more processors and storing instructions that, when executed by the one or more processors, cause the system to perform operations comprising:
- receiving a search request from a system user;
- identifying a plurality of search terms from the search request;
- retrieving search cost data indicating a respective search cost for each respective search term of the plurality of search terms based on a plurality of known search terms;
- matching each respective search term to a respective one of the plurality of known search terms;
- determining, for each respective search term, a search cost of searching the respective search term, based on the matching;
- determining an efficient order of searching the plurality of search terms based on the determined search costs, wherein the efficient order sorts the plurality of search terms from a lowest search cost term to a highest search cost term;
- performing a first search of a set of data for the lowest search cost term;
- performing a second search of a next lowest search cost term, according to the efficient order, only within results of the first search;
- searching for each respective remaining term, in the efficient order, only within results of the search performed just prior to the respective remaining search term;
- and
- providing the system user with results of the search for the highest search cost term.
A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a system, causes the system to perform operations comprising:
- receiving a search request from a system user;
- identifying a plurality of search terms from the search request;
- retrieving search cost data indicating a respective search cost for each respective search term of the plurality of search terms based on a plurality of known search terms;
- matching each respective search term to a respective one of the plurality of known search terms;
- determining, for each respective search term, a search cost of searching the respective search term, based on the matching;
- determining an efficient order of searching the plurality of search terms based on the determined search costs, wherein the efficient order sorts the plurality of search terms from a lowest search cost term to a highest search cost term;
- performing a first search of a set of data for the lowest search cost term;
- performing a second search of a next lowest search cost term, according to the efficient order, only within results of the first search;
- searching for each respective remaining term, in the efficient order, only within results of the search performed just prior to the respective remaining search term;
- and
- providing the system user with results of the search for the highest search cost term.
Dependencies are inferred from the claim text.