Patent Publication Number: US-11036812-B2

Title: Guided search results

Description:
BACKGROUND 
     Electronic commerce applications allow for users to search for items to purchase. These electronic commerce applications may also allow for users to submit reviews, ratings, scores, and provide other types of feedback on items or products purchased through the electronic commerce application. The user feedback may include valuable information for other users, such as specifying particular limitations of a product or particular uses for which the product excels. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Many aspects of the present disclosure may be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, with emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views. 
         FIG. 1  is a drawing depicting one of several embodiments of the present disclosure. 
         FIG. 2  is a drawing of a networked environment according to various embodiments of the present disclosure. 
         FIG. 3  is a schematic diagram illustrating one example of a data structure employed in various embodiments of the networked environment of  FIG. 2 . 
         FIGS. 4-6  are flowcharts illustrating examples of functionality implemented as portions of applications executed in a computing environment in the networked environment of  FIG. 2  according to various embodiments of the present disclosure. 
         FIG. 7  is a schematic block diagram that provides one example illustration of a computing environment employed in the networked environment of  FIG. 2  according to various embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Disclosed are various implementations that guide search results based on a user&#39;s search query. Often, users have a good idea of the type of item they are search for on an electronic commerce platform. The users may be searching for a specific item, type of item, or class of item. These users may submit targeted search queries to quickly find the item(s) for which they are searching. As an example, a user may know he or she wants a particular camera or camera model, and submit a search query listing the manufacturer and model of the camera. Similarly, a user may know that he or she wants a particular type of camera (e.g., a digital single-lens reflect (DSLR) camera), and therefore submits a search query to view all models of DSLR cameras. 
     However, users may also submit untargeted queries because they are not sure what they want or for what they are searching. This could be due to unfamiliarity with the subject matter they are searching. For example, a user who wants a camera may not know what type of camera he or she wants or what types of cameras are available. As a result, the user may submit a search query that specifies some context about the desired characteristics of the item, such as whether the item is useful for a particular purpose. For example, the user could submit a search query such as “camera for outdoor photography” in an attempt to find a suitable camera. 
     Various embodiments of the present disclosure therefore allow for search engines to identify different types or classes of search queries and provide appropriate results. For example, a search engine may provide a list of item detail pages for items that are relevant to a targeted search query, such as a list of all DSLR cameras in response to a search query for “DSLR cameras” or all cameras manufactured by a specific manufacturer in response to a search query identifying the manufacturer. Likewise, the search engine may provide links to network pages containing buying guides that identify the best items for a particular purpose, task, or activity specified in the search query if the search engine determines that the search query is an untargeted query. These buying guides may be automatically created from user-submitted content, such as user reviews of items, to surface the knowledge of other customers to individual users. 
     The implementations improve the search experience by allowing a user to search for products or items based on the intended use of the item rather than the characteristics of the item itself. For example, users may previously have had to search for sunscreen based on characteristics of the sunscreen itself, such as the sun-protection factor (SPF) rating of the sunscreen, the type of sunscreen (e.g., physical versus chemical), or other characteristics. However, not all sunscreens with the same characteristics are equally suitable for the same purpose. For instance, some waterproof sunscreens may last longer in fresh water than salt water, some sunscreens may be easier to apply, and some sunscreens may be more viscous than others—causing particles like sand to stick to the body. Accordingly, not all sunscreens that share traditionally searchable characteristics (e.g., SPF rating) are necessarily suitable for use at the beach. However, various implementations of the present disclosure would allow for a user who is unfamiliar with sunscreen to search for sunscreen based on the user&#39;s intended use (e.g., “best sunscreen for the beach,” “best sunscreen for pets,” or “best sunscreen for sensitive skin”). In the following discussion, a general description of the system and its components is provided, followed by a discussion of the operation of the same. 
       FIG. 1  depicts an example user interface  100  generated according to various embodiments of the present disclosure. The user interface  100  may be rendered as a web page within a web browser. However, similar information may be displayed and functionality may be rendered through other implementations, such as an application screen provided by a mobile application executing on a mobile computing device or a standalone application executing on a computing device. 
     As shown, one or more recommendations  103  are rendered within the user interface  100 . The recommendations  103  provide links to products that have been automatically identified as being the best fit for a particular purpose (e.g., best iron patches for jeans) based on user reviews, user answers to user questions, and similar user-provided content. Each recommendation  103  may include one or more user submissions describing the product to assist a user in selecting a recommended product. The user submissions may be placed more prominently than the product images, descriptions, and links to product pages in order to emphasize the user feedback. 
     With reference to  FIG. 2 , shown is a networked environment  200  according to various embodiments. The networked environment  200  includes a computing environment  203  and a client device  206 , which are in data communication with each other via a network  209 . The network  209  includes wide area networks (WANs) and local area networks (LANs). These networks may include wired or wireless components or a combination thereof. Wired networks may include Ethernet networks, cable networks, fiber optic networks, and telephone networks such as dial-up, digital subscriber line (DSL), and integrated services digital network (ISDN) networks. Wireless networks may include cellular networks, satellite networks, Institute of Electrical and Electronic Engineers (IEEE) 802.11 wireless networks (i.e., WI-FI®), BLUETOOTH® networks, microwave transmission networks, as well as other networks relying on radio broadcasts. The network  209  may also include a combination of two or more networks  209 . Examples of networks  209  may include the Internet, intranets, extranets, virtual private networks (VPNs), and similar networks. 
     The computing environment  203  may include, for example, a server computer or any other system providing computing capability. Alternatively, the computing environment  203  may employ a plurality of computing devices that may be arranged, for example, in one or more server banks or computer banks or other arrangements. Such computing devices may be located in a single installation or may be distributed among many different geographical locations. For example, the computing environment  203  may include a plurality of computing devices that together may include a hosted computing resource, a grid computing resource or any other distributed computing arrangement. In some cases, the computing environment  203  may correspond to an elastic computing resource where the allotted capacity of processing, network, storage, or other computing-related resources may vary over time. 
     Various applications or other functionality may be executed in the computing environment  203  according to various embodiments. The components executed on the computing environment  203 , for example, include a sentiment engine  213 , a relevance engine  215 , a page generator  216 , a search engine  217 , an electronic commerce application  219 , and other applications, services, processes, systems, engines, or functionality not discussed in detail herein. 
     Also, various data is stored in a data store  223  that is accessible to the computing environment  203 . The data store  223  may be representative of a plurality of data stores  223 , which may include relational databases, object-oriented databases, hierarchical databases, hash tables or similar key-value data stores, as well as other data storage applications or data structures. The data stored in the data store  223  is associated with the operation of the various applications or functional entities described below. This data may include an item catalog  226 , one or more search queries  229 , one or more network pages  233 , and potentially other data. 
     The item catalog  226  represents a categorized database or similar representation of a collection of items  236 . For each item  236  stored in the item catalog  226 , a description  239  of the item  236  and one or more instances of user content  243  may be stored in association with the item  236 . The item description  239  may include one or more images of the item  236 , a video displaying or explaining the item  236 , a textual description of the item  236 , as well as other content. The user content  243  may include user-submitted reviews of the item  236 , user-submitted questions about the item  236  as well as user-submitted answers to the user-submitted questions. User reviews may include a rating (e.g., a score based on a scale). 
     An item  236  may represent any product, good, or service available for sale or lease through the electronic commerce application  219 . Goods may be physical goods (e.g., shovels, tents, personal hygiene products, electronics, etc.) or digital goods downloaded from the electronic commerce application  219  (e.g., movies, music, games, software applications, or other digital files). Services may include personal or professional services offered by third-party vendors or by the operator or proprietor of the electronic commerce application  219  itself. 
     The search queries  229  represent search queries  229  that have been previously submitted by one or more client devices  206 . The search queries  229  may be archived or otherwise stored in the data store  223  for analytical purposes. In some instances, a user account identifier may be associated with each of the search queries  229  in order to track a search history of individual user accounts associated with the electronic commerce application  219 . 
     Each search query  229  may contain one or more search terms  246  that were included in the search query  229  when the search query  229  was submitted. The search terms  246  may be related to a search or one or more items  236  in the item catalog  226 . For example, a search query  229  could include the text of “best bug spray for camping,” which includes the individual search terms  246  “spray” and “camping” as well as the modifiers “best” and “bug.” Likewise, a search query  229  could also include the search results  249  that were returned in response to the search query  229 , such as a list of items  236  that were returned in response to a search query  229  submitted to the electronic commerce application  219 . 
     The network pages  233  represent network content created and cached by the page generator  216  or the electronic commerce application  219 , as further described herein. The network pages  233  may be created to provide “buying guides” that identify the best items  236  for a particular purpose, use, or that have some other characteristic. Examples of network pages  233  include web pages that include content formatted using hypertext markup language (HTML), extensible markup language (XML), or similar languages. Network pages  233  may also include executable scripts to provide dynamic loading of content or to provide an interactive user interface. 
     The sentiment engine  213  is executed to perform a natural language analysis of arbitrary text submitted by another application and provide an indication of the sentiment expressed by the arbitrary text. For example, if provided with a product review or an excerpt of a product review for an item  236 , the sentiment engine  213  could perform a natural language analysis to determine whether the product review was a positive product review (e.g., the user liked the product) or a negative product review (e.g., the user disliked the product). The determination of sentiment could be based on a variety of factors, such as the particular words or phrases that appear in the arbitrary text and the frequency with which they appear. In some implementations, a confidence interval or score may also be provided. For example, the sentiment engine  213  could indicate that the arbitrary text contains a positive sentiment with a 60% level of confidence in the determination (e.g., there is a 60% chance that a product review analyzed by the sentiment engine  213  indicates a positive review of the product). 
     The functionality provided by the sentiment engine  213  may be used by other applications in a number of ways. For instance, the sentiment engine  213  may provide an application programming interface (API) that may be invoked by another application to make use of the natural language capabilities of the sentiment engine  213 . This API may be made available through the network  209  as service that receives requests for analysis of arbitrary text and provides a response that includes the results of the analysis. 
     The relevance engine  215  is executed to identify instances of user content  243  associated with an item  236  that are relevant to a particular search query  229 . The relevance engine  215  may be provided with a list of items  236  and one or more indications of relevance (e.g., a search term  246 ). In response, the relevance engine  215  may provide an identifier for each instance of user content  243  for each item  236  that is found to be relevant. 
     The page generator  216  is executed to generate network pages  233  based on user content  243 . The page generator  216  may analyze the search queries  229  to determine the type of network pages  233  to be generated as well as to identify the relevant user content  243  and items  236  to include in the network page  233 . These network pages  233  may be provided by the electronic commerce application  219  in response to requests from client devices  206 . The specific functions of the page generator  216  are described in further detail later in this application. 
     The search engine  217  is executed to evaluate search queries  229  received from various sources, such as client devices  206  or other applications executing in the computing environment  203 . For example, the search engine  217  may evaluate a search query  229  to identify one or more search terms. The search engine  217  could then identify relevant items  236  or network pages  233  based on the search terms identified in the search query  229  as search results  249  for the search query  229 . The search engine  217  could then return the search results  249  to the requesting application or client device  206 . Similarly, the search engine  217  could generate a network page  233  that included the search results  249  and return the network page  233  or network address for the network pages  233  to the requesting application or client device  206 . The specific functions of the search engine  217  are described in further detail later in this application. 
     The electronic commerce application  219  is executed in order to facilitate the online purchase of items  236  over the network  209 . The electronic commerce application  219  also performs various backend functions associated with the online presence of a merchant in order to facilitate the online purchase of items  236  as will be described. For example, the electronic commerce application  219  may generate network pages  233  such as web pages or other types of network content that are provided to clients  206  for the purposes of selecting items for purchase, rental, download, lease, or other form of consumption as will be described. Likewise, the electronic commerce application  219  may also provide network pages  233  to client devices  206  in response to requests received from the client devices  206  for network content. 
     In some embodiments, the search engine  217  may be integrated with the electronic commerce application  219 . For example, the electronic commerce application  219  may expose or integrate the search engine  217  in order to allow for users of client devices  206  to submit a search query  229  to search for items  236  in the item catalog  226 . Similarly, the electronic commerce application  219  may expose or integrate the search engine  217  in order to allow for users of client devices  206  to submit a search query  229  for individual or groups of network pages  233  that are relevant to the search query  229 . 
     The client device  206  is representative of a plurality of client devices that may be coupled to the network  209 . The client device  206  may include, for example, a processor-based system such as a computer system. Such a computer system may be embodied in the form of a personal computer (e.g., a desktop computer, a laptop computer, or similar device), a mobile computing device (e.g., personal digital assistants, cellular telephones, smartphones, web pads, tablet computer systems, music players, portable game consoles, electronic book readers, and similar devices), media playback devices (e.g., media streaming devices, BluRay® players, digital video disc (DVD) players, set-top boxes, smart-televisions, smart picture frames, and similar devices), a videogame console, smart speakers (e.g., AMAZON ECHO®, GOOGLE HOME®, APPLE HOMEPOD®, or similar devices), or other devices with like capability. The client device  206  may include one or more displays  253 , such as liquid crystal displays (LCDs), gas plasma-based flat panel displays, organic light emitting diode (OLED) displays, electrophoretic ink (“E-ink”) displays, projectors, or other types of display devices. In some instances, the display  253  may be a component of the client device  206  or may be connected to the client device  206  through a wired or wireless connection. 
     The client device  206  may be configured to execute various applications such as a client application  256  or other applications. The client application  256  may be executed in a client device  206 , for example, to access network content served up by the computing environment  203  or other servers, thereby rendering a user interface  100  ( FIG. 1 ) on the display  253 . To this end, the client application  256  may include, for example, a browser, a dedicated application, or other executable and the user interface  100  may include a network page, an application screen, or other user mechanism for obtaining user input. The client device  206  may be configured to execute applications beyond the client application  256  such as, for example, email applications, social networking applications, word processors, spreadsheets, or other applications. 
     Next, a general description of the operation of the various components of the networked environment  200  is provided. A more detailed description of the operation of specific components of the networked environment  200  is provided later in the present disclosure. 
     To begin, the page generator  216  identifies a search query  229  for which to generate a network page  233 . For instance, the page generator  216  may generate the network page  233  in response a search query  229  provided by the client application  256  executing on the client device  206 . For example, if a user of the client device  206  submits a search query  229  containing the search terms  246  “best bug spray for camping” to the electronic commerce application  219 , the electronic commerce application  219  could forward the search query  229  to the page generator  216  to cause the page generator  216  to create a network page  233  responsive to the search query  229 . In other instances, the page generator  216  may perform an analysis of previously submitted search queries  229  in the data store  223  to determine whether to generate a network page  233 . For example, if users have submitted a number of search queries  229  containing the search terms  246  “best bug spray for camping,” but no network page  233  responsive to the search queries  229  containing the search terms  246  “best bug spray for camping” exists, then the page generator  216  may determine that a network page  233  is to be generated. 
     The page generator  216  then parses the search query  229  to identify individual search terms  246 . For example, the page generator  216  may identify a first search term  246  in the search query  229  that identifies the category or subcategory of item  236  that is being searched for and a second search term  246  specifying an intended use of the item  236 . For instance, if the search query  229  is “bug spray for camping,” the page generator  216  may determine that the first search term  246  is “bug spray” and the second search term  246  is “for camping” or “camping.” 
     After identifying the search terms  246 , the page generator  216  identifies a number of candidate or potential items  236  that may be responsive to the search query  229 . For example, the page generator  216  may identify a category or subcategory of items  236  in the item catalog  226  that is the closest match for the first one of the search terms  246 . Using the example of the search query  229  “bug spray for camping,” the page generator  216  could identify a category of items in the item catalog labeled “insect repellant” as being the closest match to the search term  246  “bug spray.” 
     The page generator  216  may then select items  236  in the item category based on various criteria. For example, the page generator  216  could select a predefined number of the bestselling items  236  in the item category of “insect repellant.” An item  236  could be considered to be the “best seller” based on various criteria, such as the largest number of total sales through the electronic commerce application  219 , the largest number of sales in a preceding period of time, or some other factor. As another example, the page generator  216  could select a predefined number of the most highly rated items  236 . An item  236  could be considered to be most highly rated if its average score based on user reviews or similar user content  243  is higher than the average score of other items  236 . As a third example, the page generator  216  could select the most highly rated item  236  or the bestselling item  236  and then select an additional number of similar items  236 . An item  236  might be considered similar, for example, if it was purchased by a user after the user viewed the most highly rated item  236  or the bestselling item  236  using the electronic commerce application  219 . Such a similar item need not be in the same category as the most highly rated item  236  or the bestselling item  236 . As another example, an item  236  might be considered to be similar if the item  236  is included in the same search results  249  for one or more of the same search queries  229 . 
     In some instances, the page generator  216  may filter its search for items  236  based on various criteria. For example, the page generator  216  may require that an item  236  has a predefined minimum number of instances of user content  243  (e.g., user reviews, user-submitted answers to user-submitted questions, etc.) associated with the item  236  in order for the item  236  to be selected. As another example, the page generator  216  may require that an item  236  be currently “in stock” or otherwise available for purchase through the electronic commerce application  219 . 
     For each potential or candidate item  236 , the page generator  216  evaluates the suitability of the item  236  for the purpose or use specified by the second search term  246  in the search query  229 . For instance, the page generator  216  may parse each instance of user content  243  for the second search term  246  specifying the intended use of the item  236 . As an example, if the search query  229  were “bug spray for camping,” then the page generator  216  could parse each instance of user content  243  for the presence of the term “camping.” If the second search term  246  is present in an instance of user content  243  (e.g., “camping” is present in a user review), the page generator  216  select a snippet or segment of the instance of the user content  243  that contains the second search term  246  (e.g., selecting a predefined number of characters or words appearing before and after the word “camping” in the user review). 
     The page generator  216  then sends the snippet or segment of the instance of the user content  243  to the sentiment engine  213  for evaluation. In response, the page generator  216  receives an indication of the sentiment. The indication of the sentiment could be represented using a variety of approaches. For example, sentiment could be expressed as a score within a potential range of scores. One end of the range of scores could represent positive sentiment, while the other end of the range of scores could represent negative sentiment. As another example, the indication of the sentiment could be represented as a binary (e.g., positive or negative) or tertiary (e.g., positive, negative, or neutral) result. In some instances, the response that the page generator  216  receives from the sentiment engine  213  could also include a confidence score or interval indicating the margin of error or accuracy of the result provided by the sentiment engine  213 . 
     A snippet or segment of the user content  243  may be used because it will often provide more accurate results compared to using the entire instance of user content  243 . For example, a user review of insect repellant spray may be generally negative because the user review included complaints that the insect repellant was difficult to apply and had an unpleasant smell. However, in spite of the generally negative user sentiment, the user review might contain a very positive statement that the insect repellant spray is great for a specific purpose such as hiking or camping because it is long-lasting and is very effective due to a large percentage of the active ingredient being present in the formula. Therefore, if the search query  229  is “bug spray for camping,” the page generator  216  may more accurately identify potential or candidate items  236  by relying on specific portions of user content  243  most relevant to the search terms  246  in the search query  229 . 
     The page generator  216  may then rank the candidate items  236  based on the results provided by the sentiment engine  213 . For example, the page generator  216  may rank candidate items  236  based on which candidate items  236  have the highest number of instances of user content  243  that contain positive sentiment. As another example, the page generator  216  may rank candidate items  236  based on which candidate item  236  has an instance of user content  243  containing the most positive sentiment. As a third example, the page generator  216  could score each item  236  based on the number of instances of user content  243  that contain positive sentiment and the degree of positive sentiment associated with each instance of user content  243 . For instance, if sentiment is scored by the sentiment engine  213  on a scale of 0-100, with 100 representing the most positive sentiment possible, then the page generator  216  could sum the sentiment score for each instance of user content  243  to generate a total sentiment score for the item  236 . Items  236  could then be ranked based at least in part on sentiment score. An approach like this would allow for lesser known, but very highly regarded, items  236  to be compared with items  236  that are more well-known, but may not be as well regarded. 
     After ranking the candidate items  236  based at least in part on the results provided by the sentiment engine  213 , the page generator  216  selects a predefined number of the candidate items  236  that have the most positive sentiment. The page generator  216  then creates network pages  233  containing the selected items  236 . 
     To create the network page  233 , the page generator  216  may insert content related to the selected items  236  into a network page  233  template. For example, the page generator  216  may add images of the item  236  to the network page  233 . The page generator  216  may also add a portion of the item description  239  to the network page  233 , such as the name, make, and model of the item  236  or an introductory sentence or two extracted from description  239  of the item  236 . The page generator  216  may also add one or two of the segments or snippets of user content  243  associated with the item  236  that were identified as having the most positive sentiment by the sentiment engine  213  to allow a searching user to learn why an item  236  was selected for inclusion in the network page  233 . The network page  233  may then be cached in the data store  223  for responding to future search queries  229 . 
     Meanwhile, the search engine  217  receives search queries  229 . As previously described, each of the search queries  229  may have one or more search terms  246 . The search engine  217  evaluates the search queries  229  to determine the type of search results  249  to provide in response. 
     For example, the search engine  217  may determine that the search query  229  is a targeted search query  229  submitted by a user searching for a specific item  236  or type or class of items  236 . Examples of such targeted search queries  229  include search queries  229  such as “DSLR cameras” or “EXAMPLE BRAND running shoes.” Accordingly, the search engine  217  may return search results  249  that contain a list of items  236  that are most relevant to the targeted search query  229 , such as a list of DSLR cameras selected from the item catalog  226  or a list of EXAMPLE BRAND running shoes selected from the item catalog  226 . 
     As another example, the search engine  217  may determine that the search query  229  is unfocused or untargeted. For instance, the search query  229  might indicate a general type of item  236  and the purpose or intended use of the item  236 , but not specify a specific type or category of items  236 . Examples of such unfocused or untargeted search queries  229  include search queries  229  such as “best sleeping mats for camping” or “cameras for outdoor photography.” In response, the search engine  217  may return search results that include links to a series of network pages  233  containing buying guides based on user content  243 . 
     In some instances, the search engine  217  may combine both approaches. For example, the search engine  217  could return search results  249  that include both individual items  236  as well as links to network pages  233  containing buying guides. This combined approach might be used, for example, if the search query  229  is ambiguous with respect to whether the user is searching for a particular item  236  or category of items  236 , or is instead searching for items  236  suitable for a particular use or purpose. 
       FIG. 3  provides an illustration of an example implementation of the item catalog  226  data structure. As shown, an item catalog  226  may include one or more browse nodes  303  that form a graph or similar data structure. Some browse nodes  303  may be used to represent item  236  categories. A browse node  303  representing an item  236  category may have one or more browse nodes  303  representing a subcategory. In some embodiments, a browse node  303  representing a subcategory may have multiple browse nodes  303  representing more specific subcategories. However, a browse node  303  representing a subcategory may also include one or more browse nodes  303  representing an item  236  within the subcategory. As an application traverses the browse nodes  303  within the item catalog  226 , the application may search for items  236  based on the category or subcategory within the catalog that the browse node  303  for an item  236  is located. 
     As illustrated, a browse node  303  in the item catalog  226  may have multiple parent browse nodes  303  or multiple child browse nodes  303 . For example, an item  236  may be classified in multiple subcategories or categories within the item catalog  226 . For example, the item  236  of “Stay Away Bug Spray” may be in a browse node  303  with parent browse node  303  for the subcategory of “Insect Repellent.” The subcategory browse node  303  could have two parent item category browse nodes  303 , such as “Outdoor Recreation” and “Health and Wellness.” 
       FIG. 4  depicts a flowchart that provides one example of the operation of a portion of the page generator  216  according to various embodiments. It is understood that the flowchart of  FIG. 4  provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of the page generator  216  as described herein. As an alternative, the flowchart of  FIG. 4  may be viewed as depicting an example of elements of a method implemented in the computing environment  203  ( FIG. 2 ) according to one or more embodiments. 
     Beginning with box  403 , the page generator  216  obtains one or more search queries  229  ( FIG. 2 ) to use as a basis for generating a network page  233  ( FIG. 2 ). For example, the page generator  216  may receive a search query  229  forwarded from an electronic commerce application  219  ( FIG. 2 ), which received the search query  229  in turn from a client device  206  ( FIG. 2 ). As another example, the page generator  216  may analyze one or more search queries  229  stored in the data store  223  ( FIG. 2 ) in order to generate a network page  233  for responding to future instances of the search query  229  or similar search queries  229 . 
     At box  403 , the page generator  216  may also process the search query  229  to identify one or more search terms  246  ( FIG. 2 ) present in the search query  229 . For example, the page generator  216  may identify a first search term  246  that identifies an item  236  or category of items  236  in the item catalog  226 . The page generator  216  may also identify a second search term  246  that specifies a desired function or intended use of the item  236 . For example, given the search query  229  “bug spray for camping,” the page generator  216  may determine that a first search term  246  is “bug spray” and that the second search term  246  is “camping.” 
     Next at box  406 , the page generator  216  searches an item catalog  226  ( FIG. 2 ) to identify one or more items  236  that are potential or candidate items  236  to use in generating a network page  233  responsive to the search query  229 . Several approaches may be used, as further described below. Although each approach is described separately, a combination of any number of the approaches may be used to further filter or refine the list of potential or candidate items  236 . 
     The page generator  216  may search an item catalog  226  to identify a browse node  303  ( FIG. 3 ) representing a category or sub-category that most closely matches the first search term  246 . For instance, the page generator  216  may search for a browse node  303  that contains a category or sub-category name that matches the first search term  246 . If no browse node  303  contains a category or sub-category name matching the first search term  246 , then the page generator  216  may select a browse node  303  that most closely matches the first search term  246  from the browse nodes  303  within the item catalog  226 . 
     Then, in some implementations, the page generator  216  selects a predefined number of items  236  classified within the category or subcategory corresponding to the selected browse node  303 . The page generator  216  may select the items  236  based on one or more criteria. For example, the page generator  216  may select the bestselling items  236  based on total sales or on sales volume (e.g., total sales within a predefined time period such as the last week, last month, last year, etc.). As another example, the page generator  216  may select one more items  236  based on an average user rating (e.g., selecting only those items that have an average rating greater than a four out of five). In some of these examples, the page generator  216  may limit the selection of items  236  based at least in part on average user rating to those items  236  with a minimum number of user ratings. 
     However, in other implementations, the page generator  216  may select a preferred item  236  classified within the category or subcategory represented by the selected browse node  303  and then select a number of similar items  236 . The preferred item  236  may be identified through a number of approaches. For instance, the page generator  216  may identify an item  236  that has the highest average user rating for a minimum number of user reviews as being the preferred item  236 . As another example, the page generator  216  may identify the bestselling item  236 , the item  236  with the fewest returns, or the item  236  with the most instances of user content  243  ( FIG. 2 ) associated with the item  236 . In some implementations, several of these factors may be used together to identify the preferred item  236 . For instance, if several items  236  are tied for the highest average user rating, then the bestselling one of those items  236  may be selected as the preferred item  236 . 
     After selecting the preferred item  236 , similar items  236  are identified within the item catalog  226 . An item  236  may be identified as similar through a number of approaches. For example, items  236  that were purchased after a user viewed the preferred item  236  may be considered to be similar. As another example, items  236  that were viewed or added to an electronic shopping cart, but not purchased, may be considered to be similar. As a third example, items  236  that appear in the same sets of search results  249  that contain the preferred item  236  may be considered to be similar. The more sets of search results  249  that contain both the preferred item  236  and a second item  236 , the more likely the second item  236  might be considered to be similar to the preferred item  236 . 
     These similar items  236  need not be classified under the same category or sub-category as the preferred item  236 . However, a similar item  236  that is in a related category or subcategory may be given more weight than a similar item  236  that is classified in an unrelated category or subcategory. For example, if two items  236  are classified in different subcategories, but are classified within the same category of the item catalog  226 , they might be weighted as being more similar than two items  236  classified in both different subcategories and categories. 
     In implementations that search for similar items  236 , the page generator  216  may end up identifying unconventional recommendations. For example, searches for “tents for camping” may result in the page generator  216  identifying both tents and items  236  that may be used for the same purpose (e.g., tarps). These unconventional recommendations may be desired in order to surface to a user items  236  they may not be aware of for a particular purpose. 
     At box  407 , the page generator  216  identifies instances of user content  243  associated with each item  236  that are relevant to the search query  229 . For example, the page generator  216  may provide the list of potential or candidate items  236  to the relevance engine  215  ( FIG. 2 ) along with one or more search terms  246 , such as the second search term  246  indicating the characteristic, purpose, or intended use of the potential or candidate items  236 . The page generator  216  then receives identifiers for each instance of user content  243  associated with each item  236  that is relevant to the search query  229 . 
     Moving on to box  409 , the page generator  216  identifies the user sentiment towards the candidate items  236 . Accordingly, the page generator  216  identifies selects up to a predefined maximum number of instances of user content  243  associated with each one of the candidate items  236  and determines an intent associated with each selected instance of user content  243 . If an item  236  has less than the predefined maximum number of instances of user content  243  that contain the second search term (e.g., where a maximum of ten reviews containing the word “camping” are to be selected, but a tent with twenty-five reviews only has six reviews that contain the word “camping”), then all instances of user content  243  that contain the second search term will be selected by the page generator  216 . 
     A segment, snippet, or portion of each selected instance of user content  243  is then sent to the sentiment engine  213 . The segment, snippet, or portion may include a predefined number of characters or words that precede or follow the second search term  246  in the instance of user content  243 . A segment, snippet, or portion of the instance of user content  243  may be used to identify the sentiment towards the item  236  with respect to the desired use, rather than to identify the sentiment towards the item  236  generally. For example, a user may submit a poor review of an item  236  because it was inadequate for one purpose due to a lack of certain features, but note in a portion of the review of the item  236  that the item  236  would be excellent for another purpose. For instance, a user review of a tent might rate a tent as average because it was inadequate for use at large events (e.g., a first-aid tent or event staff tent at a festival), but note that the tent was or would make an excellent tent for camping. 
     In response to each snippet or segment of user content  243  submitted to the sentiment engine  213 , the page generator  216  may receive an indication of the sentiment for the snippet or segment of user content  243 . The indication of the sentiment could be represented using a variety of approaches. For example, sentiment could be expressed as a score within a potential range of scores. One end of the range of scores could represent positive sentiment, while the other end of the range of scores could represent negative sentiment. As another example, the indication of the sentiment could be represented as a binary (e.g., positive or negative) or tertiary (e.g., positive, negative, or neutral) result. In some instances, the response that the page generator  216  receives from the sentiment engine  213  could also include a confidence score or interval indicating the margin of error or accuracy of the result provided by the sentiment engine  213 . 
     Proceeding next to box  413 , the page generator  216  ranks the candidate or potential items  236  based at least in part on the user sentiment identified for each instance of user content  243  associated with each of the candidate or potential items  236 . A number of approaches may be used to rank the candidate or potential items  236 . For example, the page generator  216  may rank candidate items  236  based on which candidate items  236  have the highest number of instance of user content  243  that contain positive sentiment. As another example, the page generator  216  may rank candidate items  236  based on which candidate item  236  has an instance of user content  243  containing the most positive sentiment. As a third example, the page generator  216  could score each item  236  based on the number of instances of user content  243  that contain positive sentiment and the degree of positive sentiment associated with each instance of user content  243 . For instance, if sentiment is scored by the sentiment engine  213  on a scale of 0-100, with 100 representing the most positive sentiment possible, then the page generator  216  could sum the sentiment score for each instance of user content  243  to generate a total sentiment score for the item  236 . Items could then be ranked based at least in part on sentiment score. An approach like this would allow for lesser known, but very highly regarded, items  236  to be compared with items  236  that are more well-known, but may not be as well regarded. 
     Referring next to box  416 , the page generator  216  selects a predefined minimum number of the highest ranked candidate or potential items  236  for inclusion in a network page  233 . However, if there are not enough items  236  to meet the predefined minimum number, the page generator  216  may perform one of several actions. First, the page generator  216  may repeat the process described for boxes  406 - 413  using an alternative approach to identifying and selecting candidate items  236 . In the alternative, the page generator  216  may simply end the process at this point. However, if a sufficient number of potential or candidate items  236  exist from which the page generator  216  may select the selects a predefined minimum number, then execution proceeds to box  419 . 
     At box  419 , the page generator  216  generates a network page  233 . The network page  233  may include the search query  229  (e.g., “tents for camping” or “sunscreen for the beach”), links to the detail pages for the selected items  236 , as well as one or more instances of user content  243  associated with each of the selected items  236 . For example, for each item  236  included in the network page  233 , the page generator  216  may select an instance of user content  243  that has the highest score of positive sentiment or the best confidence rating or interval associated with the positive sentiment. This could, for instance, be a portion, segment, or snippet of a user review that was determined by the sentiment engine  213  to have the most positive sentiment or be the most likely to have a positive sentiment. 
     In some embodiments, the network page  233  may be created using a template. The template may allow for portions of the description  239  of a selected item  236  to be placed in particular locations to allow for a uniform look and feel. Likewise, the template may reserve specific portions of the network page  233  for the instances of user content  243  associated with each of the selected items  236  that have the most positive sentiment. 
     Then at box  423 , the page generator  216  saves the network page  233  to the data store  223  in order for the network page  233  to be served in response to future search queries  229  submitted by the client device to the electronic commerce application  219 . In some embodiments, the page generator  216  may also return the network page  233  directly to a client device  206  in response to a search query  229  submitted to the client device  206  or provide the network page  233  to the electronic commerce application  219  to provide to the client device  206 . 
       FIG. 5  depicts a flowchart that provides one example of the operation of a portion of the relevance engine  215  according to various embodiments. It is understood that the flowchart of  FIG. 5  provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of the relevance engine  215  as described herein. As an alternative, the flowchart of  FIG. 5  may be viewed as depicting an example of elements of a method implemented in the computing environment  203  ( FIG. 2 ) according to one or more embodiments. 
     To begin, the relevance engine  215  receives the list of candidate or potential items  236  and one or more search terms  246  at box  503 . For example, the relevance engine  215  may receive the second search term  246  identifying the intended use, purpose, or characteristic of the item  236 . This information may be received, for example, from the page generator  216  as it attempts to identify the most relevant items  236  for use in a generating a network page  233 . Other information may also be provided according to various embodiments of the present disclosure. 
     Then, at box  506 , the relevance engine  215  identifies relevant instances of user content  243  for each of the candidate or potential items  236 . The identifier for each instance of user content  243  found to be relevant may be recorded. Relevant instances of user content  243  may be selected through various approaches. 
     For example, the page generator  216  may select those instances of user content  243  that contain the second search term  246 . For instance, if the search query  229  were “shoes for cycling,” the relevance engine  215  may select user reviews or user answers to user-submitted questions that contain the word “cycling” as “cycling” is the second search term  246 . In some embodiments, synonyms of the second search term  246  may also be searched. For example, the relevance engine  215  could also select user reviews or user answers to user-submitted questions that contained “biking” or “bicycling” as these words are synonymous with “cycling.” However, other approaches to determine relevance of a particular instance of user content  243  may also be used according to various embodiments of the present disclosure. 
     Subsequently, at box  509 , the relevance engine  215  returns instances of user content  243  that have been identified as being relevant. For example, for each item  236 , the relevance engine  215  could return a list containing identifiers for each instance of user content  243  found to be relevant to the particular search terms  246  provided. 
       FIG. 6  depicts a flowchart that provides one example of the operation of a portion of the search engine  217  according to various embodiments. It is understood that the flowchart of  FIG. 6  provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the portion of the search engine  217  as described herein. As an alternative, the flowchart of  FIG. 6  may be viewed as depicting an example of elements of a method implemented in the computing environment  203  ( FIG. 2 ) according to one or more embodiments. 
     To begin, the search engine  217  receives a search query  229  ( FIG. 2 ) at box  603 . The search query  229  may be received from a variety of sources. For example, the search engine  217  may receive the search query  229  directly from a client device  206  ( FIG. 2 ). As another example, the search engine  217  may receive the search query  229  from other applications, such as the electronic commerce application  219 . Similarly, the search engine  217  may be integrated into other applications, such as the electronic commerce application  219 , in order to receive search queries  229  from client devices  206 . 
     Next, at box  606 , the search engine  217  parses the search query  229  to identify individual search terms  246  in the search query  229 . For example, the search engine  217  may parse the search query  229  identify all nouns in the search query  229  as search terms  246 . Similarly, the search engine  217  could identify all nouns and verbs, nouns and adjectives, nouns and prepositional phrases, or combinations or variations thereof as search terms  246 . Different embodiments of the present disclosure may use different approaches suitable for the particular embodiment. 
     Proceeding to box  609 , the search engine  217  evaluates the individual search terms  246  to identify appropriate items  236  or network pages  233  for inclusion in the search results  249  for the search query  229 . The items  236  or network pages  233  are then added to the search results  249  for the search query  229 . 
     In some instances, additional information may be used to more accurately identify the search results  249 . For example, the search query  229  may include information indicating the type of search results  249  that would be preferred (e.g., items  236  versus network pages  233  containing buying guides for items  236 ). As another example, the search engine  217  may compare the search terms  246  of search queries  229  previously submitted by a user to the search terms in the current search query  229  to determine the type of search results  249  to return in response to the search query  229 . In some instances, the number of previously submitted search queries  229  considered may be limited to a predefined or specified period of time prior to submission of the search query  229 . The following examples illustrate various approaches to how the search engine  217  may evaluate the search terms  246  of the search query, as well as other information, to determine the search results  249  for the search query  229 . 
     As a first example, the search query  229  may contain information that indicates the express intent of a user. For example, the network page  233  that allows the user to submit a search query  229  to the search engine  213  may include a user interface element such as a radio button, switch, or checkbox, that allows a user to specify whether the user is searching for items  236  or network pages  233  that contain buying guides based on user content  243 . This information could be submitted as a Boolean flag included in the search query  229  to indicate whether search engine  217  should search for items  236  or network pages  233 . The search engine  217  could then perform a search based on the flag. 
     As a second example, the recently submitted search queries  229  of a user may be evaluated to determine whether a user is conducting a targeted search for an item  236 . For example, if a user submits several search queries  229  in a row with similar search terms  246 , this could indicate that the user is not quite sure about what he or she is looking for. This could indicate that the search results  249  should include one or more network pages  233  that contain buying guides for particular items  236 . Various thresholds regarding the number of previously submitted search queries  229  and how recently the search queries  229  have been submitted prior to the current search query  229  being evaluated by the search engine  217  may be used as appropriate for particular implementations. Likewise, if the items  236  in the search results  249  for the previously submitted search queries  229  tend to overlap, this could indicate that the user is unsure of which items  236  to select and that one or more network pages  233  containing buying guides should be surfaced or otherwise included in the search results  249  compiled for the current search query  229 . 
     Then at box  613 , the search engine  217  ranks the search results  249 . Various approaches to ranking the search results  249  may be used. For example, the search engine  217  may rank the search results  249  based at least in part on the frequency that each search term  246  appears within a particular search result  249 . In some instances, the frequency of which synonyms of search terms  246  appear within a particular search result  249  may also be considered. To illustrate, if the search terms  246  include “running” and “shoes,” then the frequency of which the search term  246  “running” and the search term  246  “shoes” appeared in a search result  249  would impact the ranking of the search result  249 . Likewise, the frequency of which the synonym “jogging” for the search term  246  “running” appeared in the search result  249  may also be considered. The search results  249  are then ordered based at least in part on the ranking. 
     Moving on to box  616 , the search engine  217  provides the search results  249  in response to the search query  229 . For example, if the search query  229  were supplied by the electronic commerce application  219 , the search engine  217  may provide the search results  249  to the electronic commerce application  219  in response. Similarly, if the search query  229  were supplied by the client device  206  directly, then the search engine  217  may provide the search results  249  to the electronic commerce application  219  in response. 
     With reference to  FIG. 7 , shown is a schematic block diagram of the computing environment  203  according to an embodiment of the present disclosure. The computing environment  203  includes one or more computing devices  700 . Each computing device  700  includes at least one processor circuit, for example, having a processor  703  and a memory  706 , both of which are coupled to a local interface  709 . To this end, each computing device  700  may include, for example, at least one server computer or like device. The local interface  709  may include, for example, a data bus with an accompanying address/control bus or other bus structure as may be appreciated. 
     Stored in the memory  706  are both data and several components that are executable by the processor  703 . In particular, stored in the memory  706  and executable by the processor  703  are the sentiment engine  213 , the page generator  216 , the electronic commerce application  219 , and potentially other applications. Also stored in the memory  706  may be a data store  223  and other data. In addition, an operating system may be stored in the memory  706  and executable by the processor  703 . 
     It is understood that there may be other applications that are stored in the memory  706  and are executable by the processor  703  as may be appreciated. Where any component discussed herein is implemented in the form of software, any one of a number of programming languages may be employed such as, for example, C, C++,C#, Objective C, Java®, JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Flash®, or other programming languages. 
     A number of software components are stored in the memory  706  and are executable by the processor  703 . In this respect, the term “executable” means a program file that is in a form that may ultimately be run by the processor  703 . Examples of executable programs may be, for example, a compiled program that may be translated into machine code in a format that may be loaded into a random access portion of the memory  706  and run by the processor  703 , source code that may be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory  706  and executed by the processor  703 , or source code that may be interpreted by another executable program to generate instructions in a random access portion of the memory  706  to be executed by the processor  703 , etc. An executable program may be stored in any portion or component of the memory  706  including, for example, random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, Universal Serial Bus (USB) flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components. 
     The memory  706  is defined herein as including both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power. Thus, the memory  706  may include, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, or other memory components, or a combination of any two or more of these memory components. In addition, the RAM may include, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices. The ROM may include, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other like memory device. 
     Also, the processor  703  may represent multiple processors  703  or multiple processor cores and the memory  706  may represent multiple memories  706  that operate in parallel processing circuits, respectively. In such a case, the local interface  709  may be an appropriate network that facilitates communication between any two of the multiple processors  703 , between any processor  703  and any of the memories  706 , or between any two of the memories  706 . The local interface  709  may include additional systems designed to coordinate this communication, including, for example, performing load balancing. The processor  703  may be of electrical or of some other available construction. 
     Although the sentiment engine  213 , the relevance engine  215 , the page generator  216 , the search engine  217 , and the electronic commerce application  219 , and other various systems described herein may be embodied in software or code executed by general purpose hardware as discussed above, as an alternative the same may also be embodied in dedicated hardware or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each may be implemented as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, field-programmable gate arrays (FPGAs), or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein. 
     The flowcharts of  FIGS. 4-6  show the functionality and operation of an implementation of portions of the page generator  216 , relevance engine  215 , and search engine  217 . If embodied in software, each block may represent a module, segment, or portion of code that includes program instructions to implement the specified logical function(s). The program instructions may be embodied in the form of source code that includes human-readable statements written in a programming language or machine code that includes numerical instructions recognizable by a suitable execution system such as a processor  703  in a computer system or other system. The machine code may be converted from the source code through various processes. For example, the machine code may be generated from the source code with a compiler prior to execution of the corresponding application. As another example, the machine code may be generated from the source code concurrently with execution with an interpreter. Other approaches may also be used. If embodied in hardware, each block may represent a circuit or a number of interconnected circuits to implement the specified logical function or functions. 
     Although the flowcharts of  FIGS. 4-6  shows a specific order of execution, it is understood that the order of execution may differ from that which is depicted. For example, the order of execution of two or more blocks may be scrambled relative to the order shown. Also, two or more blocks shown in succession in  FIGS. 4-6  may be executed concurrently or with partial concurrence. Further, in some embodiments, one or more of the blocks shown in  FIGS. 4-6  may be skipped or omitted. In addition, any number of counters, state variables, warning semaphores, or messages might be added to the logical flow described herein, for purposes of enhanced utility, accounting, performance measurement, or providing troubleshooting aids, etc. It is understood that all such variations are within the scope of the present disclosure. 
     Also, any logic or application described herein, including the sentiment engine  213 , the relevance engine  215 , the page generator  216 , the search engine  217 , and the electronic commerce application  219 , that includes software or code may be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor  703  in a computer system or other system. In this sense, the logic may include, for example, statements including instructions and declarations that may be fetched from the computer-readable medium and executed by the instruction execution system. In the context of the present disclosure, a “computer-readable medium” may be any medium that may contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution system. 
     The computer-readable medium may include any one of many physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of a suitable computer-readable medium would include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium may be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). In addition, the computer-readable medium may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other type of memory device. 
     Further, any logic or application described herein, including the sentiment engine  213 , the relevance engine  215 , the page generator  216 , the search engine  217 , and the electronic commerce application  219 , may be implemented and structured in a variety of ways. For example, one or more applications described may be implemented as modules or components of a single application. Further, one or more applications described herein may be executed in shared or separate computing devices or a combination thereof. For example, a plurality of the applications described herein may execute in the same computing device  700 , or in multiple computing devices in the same computing environment  203 . 
     Disjunctive language such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y, or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to each be present. 
     It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiments without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.