The field of the invention includes search services provided over a computer network. The field especially pertains to providing an interface for a search query.
In recent years, the Internet has been a main source of information for millions of users. These users rely on the Internet to search for information of interest to them. One conventional way for users to search for information is to initiate a search query through a search service's web page. Typically, a user can enter one or more search term(s) into an input box on the search web page and then initiate a search based on such entered search term(s). In response to a query, a web search engine generally returns an ordered list of search result documents. The list of search results may include a title, a universal resource locator (URL) link, and an abstract.
A user will typically views and possibly clicks on one or more of the presented search results 104 based on the abstracts 108 or titles 106. If the search results do not satisfy the user's need, the only option for the user is to refine the search query by syntactic changes, such as adding or deleting search terms. For example, the user may add the search term “navel” to the previous search term “orange.” If the search term is ambiguous, like the term “navel”, then the search engine may again produce search results that do not meet the user's needs. Thus, it would be beneficial to provide improved mechanisms for facilitating a search query.
Accordingly, apparatus and methods for facilitating search queries via a computer network are provided. In certain embodiments, each search term that a user inputs for a search query causes a rich set of contextual information having one or more parameters or facets to be presented to the user to further enhance and refine the search query. The context facets can pertain to the search term itself or contextual information that is associated with search results objects that have been previously associated with such search term. Additionally, the user can be queried for a facet to be associated with the search term. The user can then input parameter values or choose an selection option (e.g., numbers, strings, links, etc.) for each facet, and search results can then be provided based on such facet parameter values or selection option input.
In one embodiment, a method of facilitating search queries via a computer network is disclosed. After a user enters one or more search terms, one or more search facets and a plurality of selection options related to each facet are obtained based on the one or more search terms. Each obtained facet pertains to a specific characteristic type for the one or more search terms, and each related selection option corresponds to a specific value for the specific characteristic type. The one or more obtained facets and related selection options are provided to the user so the user can select one or more selection options for the one or more search terms. When a search is initiated and at least one selection option has been selected by the user, search results are provided based on the search terms and such at least one selection option that is selected by the user.
In a specific implementation, obtaining the one or more facets and related selection options includes one or both of the following: (i) querying the user for a new facet and, in response, receiving a new facet and a related new selection option from the user, or (ii) querying the user for a new selection option for an available facet and, in response, receiving a new selection option for the available facet. In a further aspect, an association between the one or more search terms and the new selection option and the related available or new facet that are received from the user is retained. For a subsequent search query, one or more search facets and a plurality of selection options related to each facet are obtained based on the one or more search terms. The obtained search facets for the subsequent search include the retained new selection option and the related available or new facet. For the subsequent search query, the one or more facets and related selection options, which were obtained for the subsequent search query, are provided to the user so the user can select one or more of the provided selection options. When a search is initiated and at least one selection option has been selected by the user for the subsequent search, search results are provided based on the search terms and such at least one selection option that is selected by the user for the subsequent search. In a further aspect, the retained new selection option and its related new or available facet are also associated with the user and only provided for the subsequent search if the subsequent search is performed by a same user as associated with the retained new selection option. In another further aspect, a plurality of facets and associated selection options are obtained and shared for a plurality of users so as to improve search queries performed by such users
In another specific implementation, the one or more facets and/or one or more selection options are obtained from metadata, a data structure, or a format that was previously associated with the one or more search terms or one or more search results that are related to the one or more search terms. In another embodiment, the one or more facets and/or one or more selection options are obtained from a context of a vertical search for which the search terms are being entered. In yet another embodiment, the one or more facets and/or one or more selection options are obtained from one or more databases that associate the one or more search terms with one or more facets and/or selection options. In another feature, at least one selection option is in the form of a link for a related facet. In a further aspect, the link is an advertisement link and its related facet pertains to an advertisement category. In another aspect, the obtained one or more facets and one or more selection options are associated with one or more of the search results. In yet another embodiment, the obtained one or more facets and the selection of one or more associated selection options are used for search term advertisement targeting.
In another embodiment, the invention pertains to an apparatus having at least a processor and a memory. The processor and/or memory are configured to perform one or more of the above described operations. In another embodiment, the invention pertains to at least one computer readable storage medium having computer program instructions stored thereon that are arranged to perform one or more of the above described operations.
These and other features of the present invention will be presented in more detail in the following specification of the invention and the accompanying figures which illustrate by way of example the principles of the invention.
Reference will now be made in detail to a specific embodiment of the invention. An example of this embodiment is illustrated in the accompanying drawings. While the invention will be described in conjunction with this specific embodiment, it will be understood that it is not intended to limit the invention to one embodiment. On the contrary, it is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. The present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
In general, search interface mechanisms are provided for a user to select or input one or more facets and/or one or more related selection options for a search query. Facets and related selection options are obtained and provided to the user so as to enhance the particular set of search terms that are being input by the user. The facets and related selection options may take any suitable form that may enhance a search query. The facets may relate to specific categories or characteristic types that have been previously associated with a particular search term. The selection options may pertain to specific values for the specific characteristic types. For example, facets for a search term “computer” may include brand, computer type, price range, speed, memory size, etc. Example selection options for the facet computer type may include desktop, laptop, etc. Thus, when a user inputs a search term “computer”, he may be presented with the facet “computer type” and selection options “desktop” and “laptop.” Other facet types and related selection options may be utilized as, for example, described further herein.
The facets and related selection options are provided so that the user can select one or more of the selection options that are associated with the search query (or provide new selection options and facets). If the user selects one of these facet selection options, e.g., desktop (or provides a new facet and selection option), a search may then be based on the user's selected option, e.g., “desktop”, as well as the associated search query terms.
Example embodiments of the present invention may be used to significantly enhance the search interface experience by adding new facet parameter controls. In certain embodiments, users can create and save their own rich interfaces for later searches to thereby continue to improve search results relevancy.
Although certain embodiments are described herein in relation to a search query interface for web documents or objects in the context of a general web search service application, it should be apparent that a contextual search interface may also be provided in other applications, such as a music or video service for browsing or searching through audio visual objects. It should also be noted that embodiments of the invention are contemplated in which the operation of the underlying search interface is largely unaffected by the overlying contextual interface. For instance, when a user chooses one or more of the provided selection options for one or more specific facets (or provides their own selection options and/or facets), the search query can be altered using the user's selection option input and then serve as input to the underlying search engine without altering the function of such search engine. However, embodiments are also contemplated in which the operation of the underlying search engine is altered based on contextual information in some way to enable at least some further search enhancements. For example, the search engine may be revised based on the contextual information.
Prior to describing mechanisms for providing a contextual search interface, a search and web architecture will first be briefly described to provide an example context for practicing techniques of the present invention.
The invention may also be practiced in a wide variety of network environments (represented by network 204) including, for example, TCP/IP-based networks, telecommunications networks, wireless networks, etc. In addition, the computer program instructions with which embodiments of the invention are implemented may be stored in any type of computer-readable media, and may be executed according to a variety of computing models including a client/server model, a peer-to-peer model, on a stand-alone computing device, or according to a distributed computing model in which various of the functionalities described herein may be effected or employed at different locations.
A search application generally allows a user (human or automated entity) to search for information that is accessible via network 204 and related to one or more search terms. The search terms may be entered by a user in any manner. For example, the search application may present a web page having any input feature to the client (e.g., on the client's device) so the client can enter one or more search term(s). In a specific implementation, the search application presents an input box into which a user may type any number of search terms. Embodiments of the present invention may be employed with respect to any search application, and example search applications include Yahoo! Search, Google, Altavista, Ask Jeeves, etc. The search application may be implemented on any number of servers although only a single search server 206 is illustrated for clarity and simplification of the description.
The search and context server 206 (or servers) may have access to one or more search database(s) 210 into which search information is retained. For example, each time a user initiates a search query with one or more search terms and/or performs a search based on such search query, information regarding such search may be retained in the search database(s) 210. For instance, the user's search request may contain any number of parameters, such as user or browser identity and the search terms, which may be retained in the search database(s) 210. Additional information related to the search, such as a timestamp, may also be retained along with the search request parameters. When results are presented to the user based on the entered search terms, parameters from such search results may also be retained. For example, the specific search results, such as the web sites, the order in which the search results are presented, whether each search result is a sponsored or algorithmic search result, the owner of each search result, whether each search result is clicked by the user, and a timestamp may also be retained in the search database(s) 210.
In addition to information regarding search queries, embodiments of the present invention may utilize information that is collected when users access web objects, e.g., web pages, via one or more web services. In a specific implementation, one or more clients may be configured with a context agent, e.g., 216 of
The search and context server 206 may also be configured to provide one or more context facets and related selection options to the user for inputting along with the search terms. Alternatively, a separate context server may be utilized. Context facets and related selection options may be obtained by the search and context server 206 in any suitable manner (for example, from the user, previous users, or analysis of one or more data sources, such as databases, owned and operated by the same company or different companies) as described further herein. The obtained context facets and related selection options may be stored, for example, in context database 212 or any other suitable storage device. The obtained context facets and related selection options may be retained in association with one or more search terms, search results, and/or users.
Regardless of the specific architecture, any suitable mechanism for allowing users to utilize context facets and related selection options for a search query may be provided.
If search terms are not being entered, the process may continue to wait. When one or more search terms are being entered (or have been entered), one or more context facets and related selection options may then be obtained based on the entered search terms in operation 306. As described further below, for example, the facets and selection options may be obtained from the user, from a database, from a data analysis process, or from any suitable source. The obtained facets and related selection options may be provided to the user in operation 308. Facet and selection options input may also be received from the user in operation 308. For example, the user can provide input by choosing an available selection option of an available facet, providing a new selection option for a new facet, or providing a new selection option for an available facet, for example, as described further below.
In a specific implementation, multiple dimensions or facets are obtained or determined for each search term. The facets can serve to conceptually divide a general category for the search term into a plurality of specific sub-categories or facets. Each sub-category can also be divided into a plurality of sub-categories or facets. A search term may be defined by any number and level of sub-categories and may depend on one or more preferences of one or more search users and/or one or more search administrators. For example, as users continue to utilize context facets, unpopular facets can be discarded and users can add preferred facets to be associated with particular search terms and/or search results. Regardless of source, obtained facets can be presented to users, for example, near or adjacent to the search input area as described further below, for example.
Selection options allow a user to select one or more values for each related facet. For instance, when a search term is divided into a number of categories, the user can select a value for each category or facet so that the search can be directed towards such specific facet values.
The provided facets may generally include relevant dimensions of the entered search terms. In the illustrated example for search term “car”, the facets include “make” facet 404a and “color” facet 404b. Although any suitable number and type of facets may be provided, only two facets are illustrated in
The provided or presented facets may merely include a predefined number of the obtained facets, e.g., the most popular or relevant facets. For example, the facets that were most frequently selected by a particular user, a set of users, or any user in previous search queries may be selectively provided. In another example, the particular facets and selection options may be predefined as most relevant for a particular search term, and a predefined number of these most relevant facets and selection options are then selectively provided for such search term.
Selection options input may be received from the user in any suitable manner. The user may select from a set of available options or define new selection options for an available facet or a newly defined facet. For example, the user may select from an available “Subaru” option 406a, an available “Honda” option 406b, etc. for the “make” facet 404a. Likewise, different available color options (e.g., red, blue, yellow, gold, etc.) may be accessed and selected by a user via a pull-down menu (not shown) for the “color” facet 404b. A user may also choose to enter a new selection option for an available facet. For instance, a user may enter a new selection option, e.g., Mitsubishi, for the “make” facet 404a by entering the selection value input “Mitsubishi” into empty or [new] option area 406c. Alternatively, a user may enter a new facet, which is not currently presented, into empty or [new] facet area 404c, and then enter a new selection option into empty or [new] option area 408 for such new facet 404c. For example, the user may wish to add a car type facet and enter a value of “sedan” for this new car type facet.
Said in another way, facets and related selection options may be obtained from the user, for example, by receiving a new facet input or a new selection option input for an available facet in response to querying for such new facet or new selection option, e.g., by providing new facet input area 404c or new selection option area 406b. Selection option input may also be received from the user by the user selecting an available selection option from an available facet.
Referring back to
It may be determined whether a search has been initiated in operation 310. For example, the user may select an input mechanism, e.g., search button 410 of
In an alternative approach, if a particular search result has a menu structure that corresponds to at least a subset of the facets, the particular search result may be provided after the selection option input for such facet subset has been input for the particular search result. For example, an auto buying web page may include one or more menus for entering car type, price, color, etc., and a user has entered the search term “car” and selection option inputs of sedan, under $10,000, and red for the corresponding facets for car type, price, and color. These selection option inputs can then be input into the auto buying web page before providing the web page as a search result.
Optionally, new facets and related selection options may be obtained based on the provided search results, as well as metadata for same, in operation 313. For instance, new facets and/or selection options may be determined based on an analysis of the metadata of the obtained search results. The new obtained facets for the search results may also be retained in operation 313. The ranked set of search results may then be provided, with the facets (same and new) and related selection options to the user, in operation 314. For instance, the search facets 401 and input area 402 of
After search results are provided, it may be determined whether the search is to be refined by the user in operation 316. For instance, the user may select additional or different selection options for the same or new facets. The user may also enter additional search terms or other search parameters. If the search is not being refined, it may be determined whether the search is being exited in operation 318. If an exit has occurred, the contextual search interface procedure may be reinitiated and return to operation 302. If the search is not being exited, the process may continue to check for a search refinement in operation 316.
If a search refinement has occurred, new facets (if any) and/or new selection option input (if any) may then be retained as metadata in operation 320. Ranked search results may then be provided based on the changed or same search terms and changed or current selection options (if any) in operation 312. The search results may continue to be refined based on new or changed selection option input and/or new or changed search terms until the search is exited.
Context facets and related selection options may be obtained in any suitable manner. For example, the search and context server 206 may obtain context facets and related selectable options for particular search terms based on information that has been previously collected and retained in association with particular search terms and/or search results, e.g., web pages. In a specific example, when new facets and/or related new selection options are received from a user for a first search query, such new facets and/or related new selection options may be retained and then be provided to a same or different user in a subsequent search query as described above with respect to
Facets and selection options may also be obtained by querying the user who is entering one or more search terms. For instance, a query may be provided in the form of an input box that is configured to receive user input that specifies new facets and/or new selection options as described above. A new facet and a related new selection option may be received from the user, and/or a new selection option for an available facet may be received form the user.
The facets and/or selection options may be obtained from one or more databases that associate the one or more search terms with one or more facets and/or selection options. Any suitable data structure may be utilized to associate a search term with a facet and related selection options.
Facets and selection options may also be based on search information that is collected and retained from a plurality of searches or search results objects, such as web pages. Useful search information can include anchor texts for web pages, user tags for web pages (e.g., entered through service providers that utilize tags, like de.licio.us tagging available from http://de.licio.us or a photo service such as flickr.com), click queries (e.g., queries for which this page's URL was clicked), and view queries (e.g., queries for which this page's URL was viewed).
A search database(s) may take any suitable form for retaining search information, some of which may be useful for determining facets and selection options for search terms and related search results.
Each entry relates various parameters of a particular user's search for a particular search term and various characteristics of a search result that is found in response to such search and search term. In the illustrated example, each entry may include a user identifier (ID), session timestamp, search term, a search result identification, whether such search result was clicked by the user, and the timestamp for such click. Alternatively, each entry may include a user ID and a plurality of searches that each includes a date, one or more search term(s) and their corresponding search results and related information. There are a diverse number of arrangements that could be used for search information. The user search information may include other types of data, such as the rank of the selected result among all of the search results, a category for the search term, etc (not shown).
The user ID may correspond to any characteristic associated with the searcher, and the search may be a person or an automated entity. This ID may be associated directly with some form of a user's identity, associated with the browser through which the user is requesting a search, or a search client that is running on the user's device. By way of example, the user ID may be obtained from a browser or user cookie, e.g., which may be associated with the search when the user is logged into the particular search service provider. Alternatively, the user ID may take the form of an identity associated with the device which the user is using for their search. Examples of a device identity include IP (internet protocol) addresses or MAC (media access control) addresses.
The search term (or view query for the associated search result) corresponds to a search term that was used in a specific search. A specific search may include more than one search term, which may be included in the same or a different entry of the user search database. In the present example, a separate entry may be formed for each search term and search result pair.
A “no” in the selected field indicates that the related search result was not selected by the user, while a “yes” in the selected field indicates that the related search result was selected by the user. Thus, when a search result is associated with a “yes” selection field, the associated search term is defined as a click query for which the search result was selected. A search result will tend to have a plurality of search terms for which they are selected by various users.
The facets and/or selection options may also be obtained from metadata, or a data structure, or a format that was previously associated with the one or more search terms or one or more search results that are related to the one or more search terms (e.g., via search database 550). In one implementation, facets and related selection options may be obtained based on information that is obtained form one or more web crawlers, which are configured to collect a large number of web objects or search results, such as web documents, and compile metadata for such search results. For example, if a search term is related to search results with a particular structure, the structure can be retained as metadata for such search results and serve as a basis for the facets and selection options for search terms related to such search results.
A web object, such as a web document, may have any suitable structure for determining facets. By way of examples, a microformat or XML (extensible markup language) structured document may be utilized.
If a search term “car” is used, it may be determined that web document 570 is associated with such search term and includes a related and likely relevant “car” element 572 based on the structure of such document 570. Accordingly, the underlying related “make” and “color” sub-elements 578a and 578b (with respect to the “car” sub-element 576a) can then be defined as facets for the search term “car”. The sub-elements that are below the determined “make” and “color” facets can then be used as selection options for these related facets. Thus, the “Subaru” and “Honda” sub-elements 580a and 580b can be defined as selection options for the associated “make” facet, while the “red” and “blue” sub-elements 582a and 582b can be defined as selection options for associated “color” element 578b.
In other embodiments, the context of a vertical search can be used to obtain facets and related selection options. For example, if a search query is being performed on a car website, facets may be gathered from the structure of the car website. For instance, if menus are provide for selecting color, make, etc., these menu options can be provided as facets and related selection options. Other vertical search contexts may include searches for images, videos, news, etc. In an image vertical search example, the facets and selection options may relate to images, such as common image tag types and values, image sizes, image resolution, etc.
The present invention may be implemented in any suitable combination of hardware and/or software.
CPU 602 is also coupled to an interface 610 that connects to one or more input/output devices such as such as video monitors, track balls, mice, keyboards, microphones, touch-sensitive displays, transducer card readers, magnetic or paper tape readers, tablets, styluses, voice or handwriting recognizers, or other well-known input devices such as, of course, other computers. Finally, CPU 602 optionally may be coupled to an external device such as a database or a computer or telecommunications network using an external connection as shown generally at 612. With such a connection, it is contemplated that the CPU might receive information from the network, or might output information to the network in the course of performing the method steps described herein.
Regardless of the system's configuration, it may employ one or more memories or memory modules configured to store data, program instructions for the general-purpose processing operations and/or the inventive techniques described herein. The program instructions may control the operation of an operating system and/or one or more applications, for example. The memory or memories may also be configured to store search database(s), search results metadata database(s), context database(s), etc.
Because such information and program instructions may be employed to implement the systems/methods described herein, the present invention relates to machine readable media that include program instructions, state information, etc. for performing various operations described herein. Examples of machine-readable media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory devices (ROM) and random access memory (RAM). The invention may also be embodied in a carrier wave traveling over an appropriate medium such as air, optical lines, electric lines, etc. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. For example, the search context can be retained and improved over many users as well as shared by many users. The input from many users in the form of facets and/or options can provides an implicit feedback to also find out what facets and options are associated with search terms or search results. Additionally or alternatively, the context can be associated with one or more search results for the search terms. For instance, if a search term “car” has a “model” facet, a search result such as “www.honda.com” may be associated with the “car” context and “model” facet. In further implementations, the facets and their options can be used for advertisement purposes. For example, advertisement targeting may be improved based on specified facets (e.g., a “model” facet is set to “BMW”) that are associated with particular keywords (e.g., “car” keyword), e.g., by bidding on keywords based on a quantification or characterization of their associated facets and/or selection options. Therefore, the present embodiments are to be considered as illustrative and not restrictive and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.