Background and Relevant Art 5
Computers and computing systems have affected nearly every aspect of modern living. Computers are generally involved in work, recreation, healthcare, transportation, entertainment, household management, etc. 10
To facilitate the retrieval of electronic content from a database, several types of search engines and indexes have been developed. Initially, traditional databases were developed with fields of information that could only be searched through a rigid alphabetically ordering of associated fields, such as a 15 last name field. Later, full text indexing was developed to provide greater searching flexibility. With a full text index, all words are indexed and can therefore be searched for within a document or record.
Often, search engines can provide results to a user in a 20 ranked fashion. Ranking may be based on relevance or other factors. Additionally some search engines will provide results that include alternatives to search terms specified in a query. These results are typically ranked by relevance by taking into account the search terms in the records returned as compared 25 to the search terms specified by a user. This ranking is typically accomplished by performing a union of searching of search terms for the entire database where each search term has a weight, and the relevance of a result is based on the combined weight of each search term that references the 30 record or document. The highest ranked results are the records with the highest summation of weights coming from search terms. Computing the combined weights and sorting the highest ranked records to the top of this large set is cumbersome and computationally expensive. 35
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may 40 be practiced.
One embodiment illustrated herein is directed to a method 45 of searching a data store. The method may be practiced in a computing environment including a data store. The data store includes data items stored in records in the data store. The method includes acts for searching the data store for parameter patterns specified in a query. The method includes receiv- 50 ing a query from a user including N parameter patterns. One or more alternatives are associated to one or more of the N parameter patterns. One or more templates are created. Each of the templates describes a number of microsearches. Each of the microsearches includes one or more of the N parameter 55 patterns or the alternatives. Microsearches described by at least one of the one or more templates are enumerated. One or more sub-microsearches are performed by searching for parameter patterns and/or alternatives. Each sub-microsearch may have less than all terms needed for a full microsearch. 60 Based on the results of the one or more sub-microsearches, one or more microsearches are eliminated from searching. The data store is searched using one or more of the remaining microsearches.
This Summary is provided to introduce a selection of con- 65 cepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to
identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Additional features and advantages will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the teachings herein. Features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. Features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description of the subject matter briefly described above will be rendered by reference to specific embodiments which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not therefore to be considered to be limiting in scope, embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
FIG. 1A illustrates associating alternatives to parameter patterns specified in a query;
FIG. IB illustrates generating templates describing microsearches;
FIG. 1C illustrates enumerating microsearches;
FIG. ID illustrates enumerating microsearches;
FIG. 2 illustrates an abbreviated index; and
FIG. 3 illustrates a method of searching a data store.
Embodiments herein may comprise a special purpose or general-purpose computer including various computer hardware, as discussed in greater detail below.
Some embodiments described herein are directed to ranking searches of a data store before the searches are performed as opposed to ranking results after searches are performed on the data store. For example, previously, search engines have searched records in the data store for search terms and alternatives to the search terms and then ranked the results according to the search terms or alternatives found in a particular record. Some embodiments described herein, instead rank the searches to be performed and perform a sufficient number of searches to obtain the desired number of results.
In particular, in one embodiment a system receives a query which includes a number of parameter patterns. Alternatives are associated with the parameter patterns from the query. Templates are then created where the templates generally describe a number of microsearches that can be performed. The microsearches are combinations of parameter patterns and/or alternatives that should be searched for in the data store. Microsearches for a template may be enumerated. Submicrosearches, which are searches of parameter patterns representing less than some entire microsearch can be performed where the results of the sub-micro search are used to eliminate microsearches from the enumerated microsearches. The submicrosearches may also be able to be used to eliminate entire templates or to eliminate microsearches before they are enumerated. Remaining microsearches can be used to search the data store.