1. Field of the Invention
The present invention relates to sponsored search and online advertising.
2. Background
A search engine is an information retrieval system used to locate documents and other information stored on a computer system. Search engines are useful at reducing an amount of time required to find information. One well known type of search engine is a Web search engine which searches for documents, such as web pages, on the “World Wide Web” (also known as “the Web”). Examples of such search engines include Yahoo! Search™ (at http://www.yahoo.com), Microsoft Bing™ (at http://www.bing.com), Ask.com™ (at http://www.ask.com), and Google™ (at http://www.google.com). Online services such as LexisNexis™ and Westlaw™ also enable users to search for documents provided by their respective services, including articles and court opinions. Further types of search engines include personal search engines, mobile search engines, and enterprise search engines that search on intranets, among others.
To perform a search, a user of a search engine typically enters a query into an entry box of the search engine. The query contains one or more words/terms, such as “hazardous waste” or “country music.” The terms of the query are typically selected by the user to as an attempt find particular information of interest to the user. The search engine returns a list of documents relevant to the query. In a Web-based search, the search engine typically returns a list of uniform resource locator (URL) addresses for the relevant documents, which is displayed to the user in a search results page. If the scope of the search resulting from a query is large, the returned list of documents may include thousands or even millions of documents.
“Sponsored search” refers to a form of Internet advertising/marketing that enables advertisers to increase their visibility in the results page of a search engine query. According to sponsored search, an advertiser may pay or provide other compensation for having an advertisement appear in a sponsored section of the results page for one or more particular queries. A user who enters one of the queries into the search engine is provided with a results page that includes the advertisement in the sponsored search section. The sponsored search section is prominently displayed in the results page, to enable the user to easily see and interact with the advertisement. In this manner, an advertiser is enabled to provide advertisements to users that are directly related to their queries, and a search engine owner/operator is enabled to further monetize the search engine.
The search engine entry box has become the starting point for many tasks related to the Web. It enables searching to be performed, but also enables users to navigate to websites. As such, many users enter domain names into the search engine entry box as search queries. Such search queries may be referred to as “domain queries.” Many users enter domain names by mistake into a search engine entry box, such as search engine toolbar (such as the Yahoo!™ toolbar), instead of a web browser's URL address bar, due to the close proximity of the two. For instance, many inexperienced browser users do not understand the difference between the search engine entry box and the URL address bar. Hence, a search engine may receive a substantial amount of domain queries. However, domain queries have been shown to result in little or no sponsored search advertisement coverage, or irrelevant advertisement results. As such, it is desired to find ways to more effectively monetize domain queries.
Various approaches are described herein for, among other things, enabling relevant search results and advertisement selections to be generated in response to domain queries. A received search query that is detected to be a domain query is converted into one or more query features. The query feature(s) tend to provide more meaning than the domain query. The query feature(s) may be used to select advertisements and/or to generate search results instead of using the domain query itself. In this manner, more relevant advertisements may be selected and/or more relevant search results may be generated.
In one method implementation, a search query that is input to a search engine is received. The user query is analyzed to determine whether the search query is a domain query. If the search query is determined to be a domain query, at least one domain related segment is stripped from the domain query to generate a condensed query, the condensed query is tokenized into at least one token, and the token(s) is/are spell corrected to generate at least one query feature. The query feature(s) may optionally be normalized. The query feature(s) is/are provided to an advertisement selector to be used to select at least one advertisement.
In another implementation, a domain query processing module is provided. The domain query processing module includes a domain query identifier, a domain query cleaner, a domain query tokenizer, and a tokenized query spelling corrector. The domain query identifier receives a user query input to a search engine and determines that the user query is a domain query. The domain query cleaner strips at least one domain related segment from the domain query to generate a condensed query. The domain query tokenizer tokenizes the condensed query into one or more tokens. The tokenized query spelling corrector spell corrects the one or more tokens to generate one or more query features.
The domain query processing module may further include a tokenized query normalizer. The tokenized query normalize normalizes the one or more query features to generate one or more normalized query features.
The one or more query features may be provided to an advertisement selector to be used to select one or more advertisements. The advertisement(s) may be displayed to the user that submitted the query. Furthermore, the one or more query features may be used by a search engine to generate search results that may be displayed to the user that submitted the query.
In another implementation, a search serving system is provided. The search serving system includes a search front end and a domain query processing module. The search front end is configured to receive a user query input to a search engine. The domain query processing module is configured to determine whether the user query is a domain query, and if the user query is determined to be a domain query, to convert the domain query into at least one query feature.
The search serving system may include a search engine and an advertisement selector. The search engine includes the search front end, a search back end, a sponsored search front end, and the domain query processing module. The search back end is configured to generate search results. The sponsored search front end is configured to provide the at least one query feature to the advertisement selector to be used to select at least one advertisement.
Alternatively, the search engine may include the search front end, the search back end, and the sponsored search front end. The advertisement selector may include an advertisement selection front end, an advertisement selection back end, and the domain query processing module. The advertisement selection front end receives the user query from the sponsored search front end. The domain query processing module receives the user query from the advertisement selection front end. The advertisement selection back end receives the at least one query feature from the domain query processing module and is configured to select at least one advertisement based on the at least one query feature.
Computer program products are also described herein that enable domain queries to be converted into query features, that enable advertisements and/or search results to be generated based on the query features, and that enable further embodiments as described herein.
Further features and advantages of the disclosed technologies, as well as the structure and operation of various embodiments, are described in detail below with reference to the accompanying drawings. It is noted that the invention is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.
The accompanying drawings, which are incorporated herein and form part of the specification, illustrate embodiments of the present invention and, together with the description, further serve to explain the principles involved and to enable a person skilled in the relevant art(s) to make and use the disclosed technologies.
The features and advantages of the disclosed technologies will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
The following detailed description refers to the accompanying drawings that illustrate exemplary embodiments of the present invention. However, the scope of the present invention is not limited to these embodiments, but is instead defined by the appended claims. Thus, embodiments beyond those shown in the accompanying drawings, such as modified versions of the illustrated embodiments, may nevertheless be encompassed by the present invention.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” or the like, indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to implement such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Example embodiments are described in the following sections.
Embodiments of the present invention enable more effective search results and advertisements to be selected in response to domain queries in sponsored search environments. Embodiments may be implemented in a variety of environments, including sponsored search environments. For instance,
As shown in
As shown in
Search engine 106 may be implemented in hardware, software, firmware, or any combination thereof. For example, search engine 106 may include software/firmware that executes in one or more processors of one or more computer systems, such as one or more servers. Examples of search engine 106 that may be accessible through network 105 include, but are not limited to, Yahoo! Search™ (at http://www.yahoo.com), Microsoft Bing™ (at www.bing.com), Ask.com™ (at http://www.ask.com), and Google™ (at http://www.google.com).
Furthermore, in a sponsored search environment, one or more advertisements may be selected for display to the user along with the documents displayed to the user in response to query 112. “Sponsored search” refers to a form of Internet advertising/marketing that enables advertisers to increase their visibility in the results page of a search engine query. In sponsored search, an advertiser may pay or provide other consideration for having information, such as a link to a website of the advertiser, appear in a sponsored section of the results webpage for one or more particular queries. The sponsored section is prominently displayed in the results page, to enable the user to easily view and interact with the displayed information of the advertiser. In this manner, an advertiser is enabled to provide advertisements to users that are directly related to their queries, and a search engine owner/operator is enabled to further monetize the search engine.
For example, network 100 may include advertisement selector 116 that is configured to select advertisements related to received queries for display. Advertisement selector 116 may receive query 112 from search engine 106. Advertisement selector 116 may include a mapping of queries to advertisers/advertisements. Advertisement selector 116 may determine from the mapping whether advertisements are present that correspond to query 112, and if so, to select one or more of the corresponding advertisements to be displayed as sponsored search results for query 112. Advertisement selector 116 may provide an indication of the selected advertisements to search engine 106. Search engine 106 may generate a search results page 118 that is transmitted to first computer 104a to be displayed (e.g., by a browser), and that includes any determined search results and selected advertisements for query 112.
In some instances, query 112 may be a domain query. A domain query is a domain name (e.g., an address for a website, such as a URL (uniform resource locator)) that a user entered into the search engine entry box as a query. Frequently, a domain name entered as a domain query has a domain-related prefix, such as “http://www.” or “www.”, and/or has a domain-related suffix, such as “.com”, “.gov”, or “.ca”. For instance,
Hundreds of thousands of domain names associated with IP (Internet protocol) addresses on the World Wide Web currently exist, and their numbers are increasing. Any such domain names may be submitted by users as domain queries.
Domain queries form a significant portion of a total query volume, and thus provide a monetization opportunity. Most advertisers do not bid on actual domain names when selecting the query terms that cause display of their advertisements, and do not provide domain names in their provided advertisement creatives by default. Instead, advertisers tend to bid on human readable keywords. If advertisers did bid on domain names, this would lead to a sharp increase in the number of query keywords due to the various possible permutations and combinations. For example, there is more than one way of representing a same domain name, such as by including or omitting the “http://” prefix, the “www” portion of the domain name, etc. As a result, many techniques for matching queries to advertisements fail to match domain queries to advertisements. Even advanced matching systems, which perform contextual matching, consider a domain name to be a single feature for matching with advertisement keywords, and as a result are unable to ascertain the user's query intent.
Embodiments of the present invention enable improved matching of advertisements to domain queries. In embodiments, a received domain query is converted into one or more features that are better suited for matching advertisements. Such features may also be used to provide improved search results for the domain query.
For instance,
Example embodiments for domain query processing module 404, and for further techniques for processing domain queries and enabling improved advertisement selection and search results are described in further detail in the following sections.
Domain query processing module 404 may be configured in various ways, in embodiments. For instance,
As shown in
For example, in an embodiment, domain query identifier 502 may be configured to search the text of query 112 for predetermined generic top-level domains (gTLD) text strings, country code top-level domain (ccTLD) text strings, and/or further text strings that are suffixes to domain names. Example gTLD text strings include “.com”, “.net”, “.org”, “.biz”, etc. Example ccTLD text strings include “.ca” (for Canadian domain names), “.de” (for German domain names), and ccTLD text strings corresponding to any other country. If domain query identifier 502 finds such a domain name suffix, query 112 is determined to be a domain query. In another embodiment, domain query identifier 502 may be configured to search the text of query 112 for predetermined text string prefixes that indicate domain names, including “http://”, “http://www”, “https://www”, “www.”, etc. If domain query identifier 502 finds such a domain name prefix, query 112 is determined to be a domain query. In embodiments, domain query identifier 502 may be configured to search the text of query 112 for these, additional, and/or alternative text strings that indicate that query 112 is a domain query.
For instance, a user may submit “www.giftflwerbaskets.com” to a search engine as query 112. Domain query identifier 502 may search the text of “www.giftflwerbaskets.com” for one or more domain name indicators. For instance, domain query identifier 502 may locate the domain name prefix of “www.” and the domain name suffix “.com”, and may therefore indicate “www.giftflwerbaskets.com” as being a domain query. As such, domain query identifier 502 may output “www.giftflwerbaskets.com” as domain query 510.
As shown in
For instance, in the current example, where “www.giftflwerbaskets.com” is received as domain query 510, domain query cleaner 504 may strip “www.” and “.com” from “www.giftflwerbaskets.com” to generate “giftflwerbaskets” as condensed query 512.
Domain query tokenizer 506 receives condensed query 512. Domain query tokenizer 506 is configured to tokenize (e.g., separate) condensed query 512 into at least one token 514, having the form of multiple meaningful tokens or words (if condensed query 512 is not a single word or token, but is separable into multiple words or tokens). For example, domain query tokenizer 506 may be configured to use taxonomy based matching, dictionary based matching, and/or other techniques to tokenize condensed query 512. For instance, persons skilled in the relevant art(s) will know of existing open source and/or proprietary techniques (such taxonomy based matching, dictionary based matching, etc.) for tokenizing condensed query 512 to generate token(s) 514.
Continuing the current example, where “giftflwerbaskets” is received as condensed query 512, domain query tokenizer 506 may tokenize “giftflwerbaskets” into the three tokens of “gift”, “flwer”, and “baskets”, which are included in token(s) 514.
As shown in
For example, continuing the current example, where “gift”, “flwer”, and “baskets” are received in token(s) 514, tokenized query spelling corrector 508 may correct the spelling of “flwer” to “flower,” to output query feature(s) 406 as “gift”, “flower”, and “baskets”.
As such, domain query processing module 500 of
Flowchart 600 begins with step 602. In step 602, a user query input to a search engine is received. For example, as shown in
In step 604, the user query is determined to be a domain query. For instance, in an embodiment, as described above, domain query identifier 502 may analyze query 112 (e.g., search query 112 for one or more domain name indicators), and may determine query 112 to be a domain query. Domain query identifier 502 generates domain query 510 to include query 112, when query 112 is determined to be a domain query.
In step 606, at least one domain related segment is stripped from the domain query to generate a condensed query. For example, in an embodiment, as described above, domain query cleaner 504 receives domain query 510, and cleans domain query 510 (e.g., removes one or more domain related segments of domain query 510). Domain query cleaner 504 generates the cleaned version of domain query 510 as condensed query 512.
In step 608, the condensed query is tokenized into at least one token. For instance, in an embodiment, as described above, domain query tokenizer 506 receives condensed query 512, and separates condensed query 512 into multiple words or tokens, if condensed query 512 is separable into multiple words or tokens. Domain query tokenizer 506 outputs the multiple words or tokens as token(s) 514. If condensed query 512 is not separable, domain query tokenizer 506 outputs condensed query 512 as a single token 514.
In step 610, the at least one token is spell corrected to generate at least one query feature. For example, in an embodiment, as described above, tokenized query spelling corrector 508 receives token(s) 514, and performs spell correction on token(s) 514. Tokenized query spelling corrector 508 outputs the spell corrected version of token(s) 514 as query feature(s) 406.
In an embodiment, domain query processing module 500 may optionally be further configured to canonicalize or normalize query feature(s) 406 into a same form as the keywords of advertisement creatives. For instance,
Tokenized query normalizer 702 may be configured to perform token/feature normalization in one or more ways. For instance, tokenized query normalizer 702 may be configured to perform one or more of alphabetically sorting tokens or query features, converting a plural form of a token or query feature to singular form, converting a spelling of a token or query feature that may have multiple spellings to a common spelling, etc.
For instance, continuing the example from above, where “gift”, “flower”, and “baskets” are received in query feature(s) 704, tokenized query spelling corrector 508 may normalize “baskets” (plural form) to “basket” (singular form), to generate normalized query feature(s) 704 as “gift”, “flower”, and “basket”. In another example, tokenized query spelling corrector 508 may remove plural forms and may reorder query feature(s) 704 in an alphabetical order, to output normalized query feature(s) 704 as “basket”, “flower”, and “gift”.
As such, the generated query features (e.g., query feature(s) 406 or normalized query feature(s) 704) may be used to generate search results and/or to select relevant advertisements. Note that the query features generated by domain query processing module 500 are different from the features of the original query input by the user (e.g., “www.giftflwerbaskets.com” may be modified to “gift”, “flower”, and “basket”, to “basket”, “flower”, and “gift”, or to other form), but an intent of the original query is maintained and is more precisely indicated by the generated query features.
For purposes of illustration, Table 1 shown below lists some examples for query 112, and example corresponding query feature(s) 406 (or query feature(s) 704) that may be generated by domain query processing module 500.
In another example, a received query 112 such as “make money online” may not be determined to be a domain query by domain query identifier 502. As such the query is not further processed by domain query processing module 500.
The following section describes examples of improved search results and selected advertisements enabled by embodiments of the present invention.
As described above, embodiments enable improved search results and improved selection of relevant advertisements when compared to conventional techniques for handling queries. Examples of search results and selected advertisements are described as follows with respect to
For example,
As shown in search results region 902 in
As such, because the search query of “giftflowerbasket.com” was processed according to conventional techniques (i.e., was not converted into query features), search engine 106 was not able to generate search results. Furthermore, no advertisements were able to be selected for search query “giftflowerbasket.com” (e.g., by advertisement selector 116 of
In contrast,
As shown in
As shown in
As such, in
In contrast,
As shown in
As shown in
As such, in
In contrast,
As such, in
Thus in embodiments, by recognizing and processing domain queries to generate query features, more relevant search results may be generated by a search engine using the generated query features. Furthermore, the generated query features may be used to select more relevant advertisements for display, as well as filtering out less relevant advertisements. In this manner, domain queries may be better monetized. Advertisers may be enabled to acquire additional customers, and users are provided with a more relevant advertisement experience, and a better engagement model. By building a domain module, which is independent of pricing, a scoring and ranking engine, the user experience, and monetization can be greatly improved for previously non-covered domain queries.
The following section describes examples of search systems that may incorporate domain query processing embodiments.
In embodiments, domain query processing module 404 of
For instance,
Flowchart 1500 may be implemented by a variety of search systems. For instance,
As shown in
Search back end 1610 receives query 112 from search front end 1606. Search back end 1610 is configured to generate algorithmic search results 1616 based on query 112. Search back end 1610 may be configured to generate search results based on a received query in any manner, including according to techniques known to persons skilled in the relevant art(s). For instance, search engine back end 1610 may determine a set of documents indexed by an index (e.g., index 114 of
Sponsored search front end 1608 receives query 112 from search front end 1606, which requests sponsored advertisement listings from sponsored search front end 1608. Sponsored search front end 1608 is a communication interface for search engine 1600 with advertisement selector 1604. For instance, sponsored search front end 1608 and advertisement selector 1604 may be located in a common computer system, or may communicate over a network, including a LAN, a WAN, or a combination of networks, such as the Internet. Sponsored search front end 1608 transmits query 112 in an advertisement request 1620.
Advertisement selection front end 1610 of advertisement selector 1604 receives advertisement request 1620 from sponsored search front end 1608. Advertisement selection front end 1610 is a communication interface for advertisement selector 1604 with search engine 1602. Advertisement selection front end 1610 transmits query 112 to domain query processing module 404. As described above, domain query processing module 404 determines whether query 112 is a domain query, and if so, generates query feature(s) 1624 (e.g., query features 406 or normalized query features 704) corresponding to query 112. If domain query processing module 404 determines that query 112 is not a domain query, domain query processing module 404 may return query 112 as-is back to advertisement selection front end 1610.
If query 112 is determined to be a domain query, advertisement selection front end 1610 transmits query feature(s) 1624 to advertisement selection back end 1612. If query 112 is determined not to be a domain query, advertisement selection front end 1610 transmits query 112 to advertisement selection back end 1612.
Advertisement selection back end 1612 is configured to select one or more advertisements based on query feature(s) 1624 or query 112, and transmits an advertisement listing 1628 that indicates the selected one or more advertisements. Advertisement selection front end 1610 receives advertisement listing 1628, and transmits advertisement listing 1628 to sponsored search front end 1608. Advertisement selection back end 1612 may be configured to select advertisements based on query features in any manner, including in a manner as would be known to persons skilled in the relevant art(s). In an embodiment, advertisement selection back end 1612 may use contextual information in addition to received query features to select advertisements. Examples of such contextual information include location information associated with the user that submitted query 112 (e.g., based on an IP address of the requesting computer system), and/or any further user profile attributes associated with the user.
Search front end 1606 receives search results 1616 from search back end 1610 and receives advertisement listing 1628 from sponsored search front end 1608. Search front end 1606 transmits search results and an advertisement listing in a query response 1630. Query response 1630 is received by a computer system that transmitted query 112 (e.g., computer 104a in
Flowchart 1700 may be implemented by a variety of search systems. For instance,
As shown in
Search back end 1810 receives query 112 from search front end 1806, which requests algorithmic search results from search back end 1810. Search back end 1810 is configured to generate search results 1816 based on the user query. Search back end 1810 may be configured to generate search results based on a received query in any manner, including according to techniques known to persons skilled in the relevant art(s). For instance, search engine back end 1810 may determine a set of documents indexed by an index (e.g., index 114 of
Sponsored search front end 1808 receives query 112 from search front end 1806, which requests sponsored advertisement listings from sponsored search front end 1808. Sponsored search front end 1808 is a communication interface for search engine 1800 with advertisement selector 1804. For instance, sponsored search front end 1808 and advertisement selector 1804 may be located in a common computer system, or may communication over a network, including a LAN, a WAN, or a combination of networks, such as the Internet.
Sponsored search front end 1808 transmits query 112 to domain query processing module 404. As described above, domain query processing module 404 determines whether query 112 is a domain query, and if so, generates query feature(s) 1824 (e.g., query features 406 or normalized query features 704) corresponding to query 112. If domain query processing module 404 determines that query 112 is not a domain query, domain query processing module 404 may return query 112 as-is back to sponsored search front end 1808.
If query 112 is determined to be a domain query, sponsored search front end 1808 transmits query feature(s) 1824 to advertisement selector 1804. If query 112 is determined not to be a domain query, sponsored search front end 1808 transmits query 112 to advertisement selector 1804.
Advertisement selector 1804 is configured to select one or more advertisements based on query feature(s) 1824 or query 112, and transmits an advertisement listing 1828 that indicates the selected one or more advertisements. Advertisement selector 1804 may be configured to select advertisements based on query features in any manner, including in a manner as would be known to persons skilled in the relevant art(s). In an embodiment, advertisement selector 1804 may use contextual information in addition to received query features to select advertisements. Sponsored search front end 1808 receives advertisement listing 1828, and transmits advertisement listing 1828 to search front end 1806.
Search front end 1806 receives search results 1816 from search back end 1810 and receives advertisement listing 1828 from sponsored search front end 1808. Search front end 1806 transmits search results and an advertisement listing in a query response 1830. Query response 1830 is received by a computer system that transmitted query 112 (e.g., computer 104a in
Note that the search system embodiments shown in
Search engine 106, advertisement selector 116, search system 120, search system 402, domain query processing module 404, domain query processing module 500, domain query identifier 502, domain query cleaner 504, domain query tokenizer 506, tokenized query spelling corrector 508, tokenized query normalizer 702, search system 1600, search engine 1602, advertisement selector 1604, search front end 1606, sponsored search front end 1608, search back end 1610, ad selection front end 1610, ad selection back end 1612, search engine 1802, advertisement selector 1810, search front end 1804, sponsored search front end 1806, search back end 1808, and advertisement selector 1810 may be implemented in hardware, software, firmware, or any combination thereof. For example, search engine 106, advertisement selector 116, search system 120, search system 402, domain query processing module 404, domain query processing module 500, domain query identifier 502, domain query cleaner 504, domain query tokenizer 506, tokenized query spelling corrector 508, tokenized query normalizer 702, search system 1600, search engine 1602, advertisement selector 1604, search front end 1606, sponsored search front end 1608, search back end 1610, ad selection front end 1610, ad selection back end 1612, search engine 1802, advertisement selector 1810, search front end 1804, sponsored search front end 1806, search back end 1808, and/or advertisement selector 1810 may be implemented as computer program code configured to be executed in one or more processors. Alternatively, search engine 106, advertisement selector 116, search system 120, search system 402, domain query processing module 404, domain query processing module 500, domain query identifier 502, domain query cleaner 504, domain query tokenizer 506, tokenized query spelling corrector 508, tokenized query normalizer 702, search system 1600, search engine 1602, advertisement selector 1604, search front end 1606, sponsored search front end 1608, search back end 1610, ad selection front end 1610, ad selection back end 1612, search engine 1802, advertisement selector 1810, search front end 1804, sponsored search front end 1806, search back end 1808, and/or advertisement selector 1810 may be implemented as hardware logic/electrical circuitry.
The embodiments described herein, including systems, methods/processes, and/or apparatuses, may be implemented using well known servers/computers, such as a computer 1900 shown in
Computer 1900 can be any commercially available and well known computer capable of performing the functions described herein, such as computers available from International Business Machines, Apple, Sun, HP, Dell, Cray, etc. Computer 1900 may be any type of computer, including a desktop computer, a server, etc.
Computer 1900 includes one or more processors (also called central processing units, or CPUs), such as a processor 1904. Processor 1904 is connected to a communication infrastructure 1902, such as a communication bus. In some embodiments, processor 1904 can simultaneously operate multiple computing threads.
Computer 1900 also includes a primary or main memory 1906, such as random access memory (RAM). Main memory 1906 has stored therein control logic 1928A (computer software), and data.
Computer 1900 also includes one or more secondary storage devices 1910. Secondary storage devices 1910 include, for example, a hard disk drive 1912 and/or a removable storage device or drive 1914, as well as other types of storage devices, such as memory cards and memory sticks. For instance, computer 1900 may include an industry standard interface, such a universal serial bus (USB) interface for interfacing with devices such as a memory stick. Removable storage drive 1914 represents a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup, etc.
Removable storage drive 1914 interacts with a removable storage unit 1916. Removable storage unit 1916 includes a computer useable or readable storage medium 1924 having stored therein computer software 1928B (control logic) and/or data. Removable storage unit 1916 represents a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, or any other computer data storage device. Removable storage drive 1914 reads from and/or writes to removable storage unit 1916 in a well known manner.
Computer 1900 also includes input/output/display devices 1922, such as monitors, keyboards, pointing devices, etc.
Computer 1900 further includes a communication or network interface 1918. Communication interface 1918 enables the computer 1900 to communicate with remote devices. For example, communication interface 1918 allows computer 1900 to communicate over communication networks or mediums 1942 (representing a form of a computer useable or readable medium), such as LANs, WANs, the Internet, etc. Network interface 1918 may interface with remote sites or networks via wired or wireless connections.
Control logic 1928C may be transmitted to and from computer 1900 via the communication medium 1942.
Any apparatus or manufacture comprising a computer useable or readable medium having control logic (software) stored therein is referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer 1900, main memory 1906, secondary storage devices 1910, and removable storage unit 1916. Such computer program products, having control logic stored therein that, when executed by one or more data processing devices, cause such data processing devices to operate as described herein, represent embodiments of the invention.
Devices in which embodiments may be implemented may include storage, such as storage drives, memory devices, and further types of computer-readable media. Examples of such computer-readable storage media include a hard disk, a removable magnetic disk, a removable optical disk, flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROM), and the like. As used herein, the terms “computer program medium” and “computer-readable medium” are used to generally refer to the hard disk associated with a hard disk drive, a removable magnetic disk, a removable optical disk (e.g., CDROMs, DVDs, etc.), zip disks, tapes, magnetic storage devices, MEMS (micro-electromechanical systems) storage, nanotechnology-based storage devices, as well as other media such as flash memory cards, digital video discs, RAM devices, ROM devices, and the like. Such computer-readable storage media may store program modules that include computer program logic for search engine 106, advertisement selector 116, search system 120, search system 402, domain query processing module 404, domain query processing module 500, domain query identifier 502, domain query cleaner 504, domain query tokenizer 506, tokenized query spelling corrector 508, tokenized query normalizer 702, search system 1600, search engine 1602, advertisement selector 1604, search front end 1606, sponsored search front end 1608, search back end 1610, ad selection front end 1610, ad selection back end 1612, search engine 1802, advertisement selector 1810, search front end 1804, sponsored search front end 1806, search back end 1808, advertisement selector 1810, flowchart 600, step 802, flowchart 1500, and/or flowchart 1700 (including any one or more steps of flowcharts 600, 1500, and 1700), and/or further embodiments of the present invention described herein. Embodiments of the invention are directed to computer program products comprising such logic (e.g., in the form of program code or software) stored on any computer useable medium. Such program code, when executed in one or more processors, causes a device to operate as described herein.
The invention can work with software, hardware, and/or operating system implementations other than those described herein. Any software, hardware, and operating system implementations suitable for performing the functions described herein can be used.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be apparent to persons skilled in the relevant art(s) that various changes in form and details can be made therein without departing from the spirit and scope of the invention. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.