Search method, search system and machine-readable medium
By matching and presenting search results in real time in the search system, combining the keywords of image selection, the lag problem of search results presentation in the existing technology is solved, the functions of instant search results and unlimited search pages are realized, and the user experience and system are improved. efficiency.
Patent Information
- Application Number
- CN202110525737.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2014-12-31
- Filing Date
- 2015-12-29
- Publication Date
- 2024-12-27
- Estimated Expiration
- 2035-12-29
AI Technical Summary
The existing search system needs to select the "Enter" key after the user enters the search string to obtain the search results, resulting in a lag time, and accessing previous search results requires reloading through the back button.
Dynamic content delivery is realized in the search system. By receiving image selection in the search results input by the user, the keywords associated with the image are determined and attached to the search string are matched and presented in real time without user selection. Enter key, and the matching image is presented on the client device, and the previous level search results are automatically appended under the scrolling indication.
It realizes the presentation of instant search results and unlimited search result pages, reduces user interaction and resource use, improves search efficiency and user experience, and reduces the demand for network traffic and computing resources.
Smart Images

Figure CN113076461B_ABST
Abstract
Description
[0001] This application is a divisional application of invention patent application No. 201580071685.1 entitled “Infinite Search Results Page” entered into China by PCT international application PCT / US2015 / 067881 with an application date of December 29, 2015.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims priority to U.S. Patent Application No. 14 / 588,222, filed on December 31, 2014, the entire contents of which are incorporated herein by reference. Technical Field
[0004] The present disclosure relates generally to data analysis and, in certain example embodiments, to providing dynamic content delivery. Background Art
[0005] Typically, when a user performs a search, the user must enter a search string and then select the "Enter" key. Once the "Enter" key is selected, the search system obtains the entire search string and performs a search for entries that match the entire search string. Thus, there is a lag time between the user entering the search string and selecting the "Enter" key and obtaining the search results. In addition, in order to access previous search results, the user must reload the previous search results by selecting the back button. Summary of the invention
[0006] In some embodiments of the present disclosure, a method for refining dynamic content in a search system is provided. The method may include: receiving a selection of one of the images in the results of a current search; determining one or more keywords associated with the selected image; appending the determined one or more keywords to a search string of the current search; determining a match for the appended search string; obtaining the matched image; and causing the matched image to be presented on a client device.
[0007] In some other embodiments of the present disclosure, a search system is provided. The search system may include a processor and a memory. The memory stores instructions, which, when executed by the processor, configure the processor to execute the above method.
[0008] In some other embodiments of the present disclosure, a machine-readable medium carrying instructions is provided. When the instructions are executed by at least one processor of a machine, the machine executes the above method. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The various figures in the drawings illustrate only example embodiments of the invention and are not to be considered limiting of the scope of the invention.
[0010] Figure 1 is a block diagram illustrating an example embodiment of a network architecture for a system for providing a dynamic content delivery search system.
[0011] Figure 2 is a block diagram illustrating an example embodiment of a publishing system.
[0012] Figure 3 is a block diagram of an example embodiment of a search engine.
[0013] Figures 4A-4G is an example user interface for a dynamic content delivery search system.
[0014] Figure 5 is a flow chart of an example method for providing dynamic content in a search system.
[0015] Figure 6 is a flow chart of an example method for refining dynamic content in a search system.
[0016] Figure 7 is a flow diagram of an example method for providing an unlimited search results page (SRP).
[0017] Figure 8 is a simplified block diagram of a machine in the example form of a computing system within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. DETAILED DESCRIPTION
[0018] The following description includes systems, methods, techniques, instruction sequences and computer program products that embody illustrative embodiments of the present invention. In the following description, for the purpose of explanation, many specific details are set forth to provide an understanding of the various embodiments of the subject matter of the invention. However, it will be apparent to those skilled in the art that the embodiments of the subject matter of the invention can be implemented without these specific details. In general, known instruction examples, protocols, structures and techniques are not described in detail.
[0019] The example embodiments described herein provide systems and methods for providing dynamic search content to users in an efficient and fast manner. The example embodiments allow a user to enter a search string, including one or more keywords, into a search bar. While the user is entering (e.g., typing or speaking) the search string, the dynamic content delivery search system is already acquiring the keywords and instantly performing matching processing to determine the results that match the keywords. This is done without requiring the user to select, for example, an "enter" key. Therefore, once the user completes input of the entire search string, the search results are queued for presentation to the user without requiring the user to select the "enter" key, and can automatically "surface" around the search bar. Accordingly, because the matching process is being performed before the user has even completed input of the entire search string, and potential results are queued (e.g., in a memory or cache) for immediate delivery when the search string is completed, there is no lag time when presenting the results.
[0020] In an example embodiment, search results for a current level of a search are presented on a search results page displayed on a client device. A scroll indication applied to the presentation of the current level of search results is detected. Based on the direction of the scroll indication, the search results for the current level are scrolled in the indicated direction on the search results page. A determination is made as to the end of the presentation of the current level of search results having been reached in response to the scrolling. In response, the search results for a previous level are appended to the end of the presentation of the current level of search results to cause a continuous presentation of the search results page.
[0021] Therefore, one or more methods described herein are conducive to performing searches and presenting corresponding search results. Previous search results are appended to the end of the current search result set, so that there is no need for the user to backtrack (e.g., select a "back" button or reload a page with previous search results). When considering these effects as a whole, one or more methods described herein may no longer require certain workloads or resources that would otherwise be involved in providing content for a search request. The computing resources used by one or more machines, databases, or devices (e.g., in the network environment 100) can be reduced. Examples of such computing resources include processor cycles, network traffic, memory usage, data storage capacity, power consumption, and cooling capabilities.
[0022] refer to Figure 1 , shows an example embodiment of a client-server based high-level network architecture 100 for providing a dynamic content delivery search system. In one example, a networked system 102 forms a network server-side function and is coupled to one or more client devices 110, 112 via a communication network 104 (e.g., the Internet, a wireless network, a cellular network, or a wide area network (WAN)). For example, Figure 1Shown is a browser (e.g., as provided by Redmond, Washington Internet developed by the company A web client 106 operated by a web browser) and a programmable client 108 executed on each client device 110, 112.
[0023] Each of the client devices 110, 112 may include a mobile phone, a desktop computer, a laptop computer, or any other communication device that a user may use to access the networked system 102. In some embodiments, each client device (e.g., client device 110) may include a display module (not shown) to display information (e.g., in the form of a user interface). In other embodiments, the client device may include one or more of a touch screen, an accelerometer, a camera, a microphone, and a global positioning system (GPS) device, etc. The client devices 110, 112 may be a user's device that is used to trigger information processing, perform searches, and receive results from a dynamic content delivery search system provided by the networked system 102. In one embodiment, the networked system 102 includes or is linked to a network-based marketplace that manages digital goods, publishes publications including product listings for products available on the network-based marketplace, and manages payments for these market transactions.
[0024] Application program interface (API) server 114 and web server 116 are coupled to one or more application servers 118 and provide programming and web interfaces, respectively, to one or more application servers 118. Application servers 118 may host one or more publishing systems 120, which may include one or more modules, applications, or engines and may be implemented as hardware, software, firmware, or any combination thereof. Application servers 118 are in turn coupled to one or more database servers 122 that facilitate access to one or more information storage repositories or databases 124. In one embodiment, database 124 is a storage device that stores content (e.g., product listings, store information, advertisements, videos) that can be searched by a dynamic content delivery search system.
[0025] In an example embodiment, the publishing system 120 publishes content on a network (e.g., the Internet). In this way, the publishing system 120 provides a number of publishing functions and services to users accessing the networked system 102. In an example embodiment, the publishing system 120 is a market environment through which users can purchase products listed thereon. However, it should be noted that in alternative embodiments, the publishing system 120 can be associated with a non-market environment such as an information (e.g., search engine) or social networking environment. Figure 2 1 and 2. The publishing system 120 will be discussed in more detail.
[0026] Although the release system 120 Figure 1 102, it should be understood that in alternative embodiments, the publishing system 120 may form part of a separate and distinct service from the networking system 102. Figure 1 The example network structure 100 of the embodiment employs a client-server architecture, and those skilled in the art will appreciate that the present disclosure is not limited to such an architecture. The example network structure 100 may be equally well applied in, for example, a distributed or peer-to-peer architecture system. The publishing system 120 may also be implemented as a stand-alone system or stand-alone software program operating on a separate hardware platform that does not necessarily have networking capabilities. For example, the publishing system 120 together with the database 124 may be entirely on a client device (e.g., the client device 112), or the publishing system 120 may be on the client device and may access a separate database 124.
[0027] Now refer to Figure 2 , in one embodiment, an example block diagram of multiple components provided within a publishing system 120 of a networked system 102 is shown. In this embodiment, the publishing system 120 includes a content delivery search system associated with a network-based marketplace in which items (e.g., goods or services) can be offered for sale. These items can include digital goods (e.g., currency, licenses) as well as physical goods. The publishing system 120 can be hosted on dedicated or shared server machines (not shown) that are communicatively coupled to enable communication between the server machines. The multiple components themselves are communicatively coupled to each other directly or indirectly and to various data sources (e.g., via appropriate interfaces) to allow information to be passed between components or to allow components to share and access common data. In addition, the components can access one or more databases 124 via one or more database servers 122.
[0028] The publishing system 120 can provide numerous publishing, listing, and price setting mechanisms, wherein sellers (e.g., individuals, stores, companies) can list goods or services for sale (or publish information related to goods or services), buyers can express interest or intent to purchase such goods or services, and prices can be set for transactions involving goods or services. To this end, the publishing application 120 can include at least one publishing engine 202 and one or more auction engines 204, and the auction engine 704 supports auction-style listing and price setting mechanisms (e.g., English auctions, Dutch auctions, second-highest-bid auctions, Chinese auctions, multiple auctions, reverse auctions, etc.).
[0029] The store engine 206 allows sellers to combine listings in a "virtual" store that can be branded or personalized by the seller. Such a virtual store can also provide promotions, incentives, and features that are specific and personalized to the seller. In one example, a seller can offer multiple items as Buy-It-Now items in a virtual store, offer multiple items for sale or auction, or a combination of the two. Sellers can also provide other content through their stores. For example, a seller can provide a recipe or video (e.g., showing how to make or use an item).
[0030] Navigation of publishing system 120 may be facilitated by navigation engine 208. For example, a browser module (not shown) of navigation engine 208 allows user 106 to browse various search results, categories, directories, or inventory data structures based on which content may be categorized within publishing system 120. Various other navigation applications within navigation engine 208 may be provided to supplement the browsing application.
[0031] To make the content available via the networked system as visually informative and engaging as possible, the publishing system 120 may include an imaging engine 210 that enables users to upload images or videos for inclusion in a publication and to include the images or videos within a viewed publication. The imaging engine 210 may also receive image data from a user as a search query and utilize the image data (e.g., metadata) to identify items depicted or described by the image data. According to an example embodiment, the imaging engine 210 may use images or other digital content obtained from a third-party media hosting site.
[0032] The content creation engine 212 allows users (e.g., sellers) to easily create publications, content, or item listings. In one embodiment, the content is related to goods or services that users (e.g., sellers) wish to trade via the publication system 120. In other embodiments, users can create content that is an advertisement or other form of publication (e.g., an instructional video).
[0033] The content management engine 214 allows users to manage these publications or content. In particular, in the case where a particular user has created or published a large amount of content, managing these contents may be a challenge. The content management application 214 provides a number of functions (e.g., automatic relisting, inventory level monitoring, etc.) to help users manage these contents.
[0034] The search engine 216 performs searches in the networked system 102 for content matching the query, appends keywords to the search string, queues the search results, and manages the presentation of the search results. These searches are performed on the fly as the user is entering the search string. Once the user has completed the search string, the results can be queued for presentation to the user (e.g., cached) without the user having to select an "enter" button or key. Figure 3 216 will be discussed in more detail.
[0035] Although the various components of the publishing system 120 have been defined with respect to various individual modules and engines, those skilled in the art will recognize that many items may be combined or organized in other ways, and that not all modules or engines need to be present or implemented, according to example embodiments. Figure 2 Not all components of the publishing system 120 are included. Generally, components, protocols, structures, and techniques that are not directly related to the functionality of the example embodiments (e.g., pricing engine, dispute resolution engine, loyalty promotion engine, personalization engine) are not specifically shown or discussed. The descriptions given herein only provide various example embodiments to assist the reader in understanding the systems and methods used herein.
[0036] Figure 3 Shown is an example block diagram of multiple components provided within a search engine 216 of a publishing system 120, in one embodiment. The search engine 216 includes a dynamic content delivery search system that performs instant matching of keywords in a search string as the user is entering the search string, and queues the search results so that they are immediately presented to the user upon completion of the entry of the search string. The search engine 216 also allows the user to simply append keywords to the search string by selecting an image corresponding to the displayed category, subcategory, or item of interest. In addition, the search engine 216 provides an infinite search results page (SRP) that appends the search results of the previous level to the bottom or end of the search results of the current level. To achieve these operations, the search engine 216 includes a query input module 302, a matching module 304, a result module 306, and a user interface module 308 that are all communicatively coupled together.
[0037] As those skilled in the art of computers and the Internet understand, Figure 2 and Figure 3 Each component (e.g., module or engine) shown may represent a set of logic (e.g., executable software instructions) and corresponding hardware (e.g., memory and processor) for executing the set of logic. Figure 2 and Figure 3Each component (e.g., module or engine) shown in is communicatively coupled (via appropriate interfaces) to other components and various data sources, allowing information to be passed between components or allowing components to share and access common data. In addition, Figure 2 and Figure 3 Each of the components shown may be hosted on dedicated or shared server machines that are communicatively coupled together to enable communications between the server machines.
[0038] The query input module 302 manages operations involving entering a search string in a search box that is displayed on a user interface presented to the user. Thus, the query input module 302 detects when a search string is being entered into the search box and identifies one or more keywords of the search string. For example, once the user enters the first keyword in the search string, the query input module 302 detects the entry of the keyword (e.g., detects a space after a series of letters or detects a selection of the space bar), identifies the keyword, and passes the keyword to the matching module 304. This process continues for each additional keyword of the search string. The query input module 302 also manages operations involving appending keywords to the search string based on selections made from previously presented search results, which will be discussed in more detail below.
[0039] The matching module 304 performs a matching process to determine matches with one or more keywords in the search string in real time. In an example embodiment, the matching module 304 receives a first keyword detected by the query input module 302 and performs a first matching process to derive results that match the first keyword. Subsequently, if the query input module 302 detects a second keyword in the search string, the matching module 304 uses the second keyword to refine the matching results derived from the first keyword. The matching process continues until each keyword from the search string has been covered in the matching process. The end of the search string can be detected, for example, by a space or pause in the input of any additional keywords.
[0040] The results module 306 manages operations involving processing search results before presenting the results to the user. In an example embodiment, the results module 306 determines the level of the current search or previous search or search results. Based on the level of the current search or previous search or search results, different versions of content can be retrieved to be presented to the user. For example, if the level of the previous search results is at the category level (e.g., furniture), the current search results constructed from the previous search results (e.g., refining the previous search results or search strings) can be at the subcategory level (such as sofas). In other embodiments, the level of the current search or previous search is provided to the query input module 302 so that the query input module 302 determines one or more keywords to be attached to the previous search string, which will be discussed in more detail below.
[0041] The user interface module 308 manages operations for causing the search results to be presented to the user (e.g., on a display of the user's client device). In an example embodiment, the user interface module 308 causes the search results to be presented in a graphical format on one or more sides of a search bar or box. Accordingly, the user interface module 308 accesses images of the search results and sends instructions and data to the user's client device (e.g., client device 110) to present such a user interface. The user interface module 308 also manages appending previous search results to the end of the current set of search results so that the user does not need to backtrack (e.g., select a "back" button or reload a page with previous search results).
[0042] Figure 4A-4G is an example user interface presented by the dynamic content delivery search system (eg, via user interface module 308). Figure 4A A user interface 400 is shown that includes a home page where a user begins a search query. As shown, the user interface 400 includes a search bar 402 where a user can enter a search string.
[0043] The user interface 400 also provides a plurality of content, shown as images, from which the user can select content to be appended to the current search string. In the event that the user is known to the publishing system 120 (e.g., via a cookie recorded by the publishing system 120), the plurality of content can be personalized for the user. For example, the content displayed on the home page can include categories of items that the user has previously purchased, has previously performed searches for, owns, has shown interest in, or any combination thereof.
[0044] Reference now Figure 4B, the user has entered "summer cocktail" as the search string. In response, as the user types "summer cocktail," various images corresponding to categories related to "summer cocktail" "surface" or display around the search bar 402. In some embodiments, various results may be displayed as each keyword of the search string is entered. For example, after the user types "summer," a set of images may be displayed around the search bar 402. As the user continues to enter the remainder of the search string (e.g., types "cocktail"), the images displayed around the search bar 402 are refined to display categories corresponding to "summer cocktail." In other embodiments, images are not displayed until the user has completed entering the search string. However, as the user is entering keywords, the search engine 216 dynamically curates and creates search results based on what the user is entering in the search bar 402, thereby queuing the search results on the back end (e.g., the publishing system 120). As more keywords are appended in the search bar 402, the queued search results are refined. As a result, search results may be returned more quickly than in embodiments where processing of the search string does not occur until after the user selects the "Enter" key.
[0045] like Figure 4B As shown in the example user interface of , the various categories of search results include, for example, glasses, drinking glasses, women's clothing, men's clothing, wine glasses, and furniture. The user can select an image corresponding to one of these categories to refine the search. For example, the user can select image 404 corresponding to a drinking glass. By selecting the image, one or more keywords associated with the selected image are appended to the search string. For example, the query input module 302 determines one or more keywords based on metadata associated with the selected image (e.g., properties describing the items in the image). The one or more keywords are appended to the search string by the user interface module 308 and used by the matching module 304 to refine the current search results. Now refer to Figure 4C , the search bar 402 now shows the addition of the keyword "glasses", resulting in a new search string "summer cocktail glasses." Thus, the selection of a visual representation or image may be used to refine the search.
[0046] The one or more keywords attached to the search string depend on the level of the current search. In one embodiment, each of the displayed images is tagged (e.g., tagged with additional metadata) to indicate the current level in the search. For example, the returned results of "summer cocktail" represent categories (visual category representation). Therefore, the search engine 216 will detect that the image corresponding to "glass beverage cup" has the label "category". Therefore, selecting "glass beverage cup" from the category level will indicate to the search engine 216: attach keywords corresponding to the category level, and return results in the subcategory (e.g., goods, stores) corresponding to the glass beverage cup. In addition, if the current level is a subcategory of glass beverage cups, the selection of the image showing the glass beverage cup will cause the keywords corresponding to the subcategory level to be attached, and return results at the item level (e.g., individual items available for purchase).
[0047] As in Figure 4C As shown in , images corresponding to the search string "summer cocktail glasses" are now displayed around the search bar 402. The images may correspond to subcategories related to summer cocktail glasses. For example, Figure 4C , images corresponding to the type of glass beverage cup, accessories related to the glass beverage cup, and ingredients related to the cocktail are shown.
[0048] In addition, Figure 4C 406 corresponding to a video 408 related to a glass beverage cup is shown. If the user selects the image 406, the video 408 starts playing. Figure 4D As shown. Figure 4D In the example user interface of , video 408 is associated with a store that sells glass beverage cups (e.g., Brooklyn Glass & Mercantile Company) and can, for example, show how to make a cocktail. In addition, search bar 402 can be repositioned (e.g., moved to the top of the user interface) so that video 408 is displayed.
[0049] Another selection of the image 406 (or the now playing video 408) results in, for example, displaying the full screen 410 of the video 408, as shown in FIG. Figure 4E The search bar 402 remains in the relocated position (e.g., moved to the top of the user interface) so that the full screen 410 is displayed. Figure 4C Selection of image 406 in may cause video 408 to be played in full screen 410, such as Figure 4E shown.
[0050] In addition, one or more keywords linked to the selected image 406 are appended in the search bar 402. In this example, "from Brooklyn Glass & Mercantile Co." is appended to "summer cocktail glasses." Appending keywords associated with Brooklyn Glass & Mercantile Co. causes the search engine 216 to further refine the previous search results, even if the user has not yet requested further refinement (e.g., the user only indicated to play the video). Thus, the further refined search results can be queued and ready to be presented before the user indicates a desire for more precise search results associated with Brooklyn Glass & Mercantile Co.
[0051] Based on further selection of video 408 (or an image corresponding to video 408), further refined search results (e.g., items related to summer cocktail glasses from Brooklyn Glass & Merchandise Co.) are presented, such as Figure 4F In one embodiment, the items displayed in the further refined search are presented in a scrollable user interface. In other embodiments, the items may be displayed in other formats (e.g., grid form, list form). The displayed items may include, for example, products for sale and recipes.
[0052] The user can scroll through the further refined search results. For example, if the display is on a touch screen device (e.g., a tablet computer), the user can scroll up through the further refined search results by swiping upward. At the end of the further refined search results, the previous search results from the previous level continue to be shown. Thus, as the user continues to scroll upward, the refined Brooklyn Glass & Merchandise Company results are pushed out of the user interface, and search results based on the search string "summer cocktail glasses" are presented as part of the continuously scrolling user interface, such as Figure 4GAs shown. In addition, the search bar 402 shows the current search string. Therefore, the search string has changed to indicate "summer cocktail glasses". If the user scrolls down the search results from this point, the refined search results for "summer cocktail glasses from Brooklyn Glass & Mereantile Co" will be redisplayed and the search bar 402 will change accordingly. As a result, an infinite search results page (SRP) is provided by the search engine 216. Therefore, the search engine 216 knows where you came from (e.g., the previous level of search results) and appends it to the bottom of the current level of search results. This avoids the use of the back button and the need to reload the page containing the previous search results in response to selection of the back button. The infinite SRP processing will be discussed in detail below.
[0053] Figure 5 5 is a flow chart of an example method 500 for providing dynamic search content in a search system. In an example embodiment, the search engine 216 dynamically performs matching as a search string is being entered in a search box or bar, and queues search results for presentation. The user does not need to select the "enter" key in order to obtain a result. Therefore, the input of the search string is detected in operation 502. The query input module 302 detects the input of the search string being entered into the search bar substantially in real time (e.g., detecting keystrokes, characters, or numbers).
[0054] In operation 504, keywords of the search string are identified. In an example embodiment, the query input module 302 identifies each keyword as it is being entered into the search bar. For example, once the user enters the first keyword of the search string, the query input module 302 detects and identifies the first keyword (e.g., "summer"). In one embodiment, the query input module 302 detects the completion of the input of the first keyword based on a space after the keyword.
[0055] The keyword is then passed to the matching module 304, where matches to the keyword are determined in real time in operation 506. In an exemplary embodiment, the matching module 304 receives the keyword detected by the query input module 302 and performs a matching process to derive results that match the keyword. As a result, matching results that match the keyword are determined and are ready to be presented to the user (e.g., queued for delivery).
[0056] In operation 508, it is determined whether a next keyword is present in the search string. For example, the query input module 302 determines whether a next or subsequent keyword is entered for the search string. If a next keyword is detected, the method returns to operation 504, whereupon the next keyword (e.g., "cocktail") is identified and used in operation 506 to refine the previous matching results based on the first keyword.
[0057] This matching process continues until every keyword from the search string has been included in the matching process. The addition of each keyword refines the previous matching results. In this way, the matching process becomes significantly faster, and each iteration requires less processing power because the next keyword is matched with a smaller set of previous matching results.
[0058] Once it is detected that there are no more keywords (e.g., the input of the search string is complete), the final matching image of the search result is accessed in operation 510. Therefore, the user interface module 308 accesses the image from a database or repository storing the posted information (e.g., database 124). The image may include images from a third party or repository, images from a directory, images uploaded by various entities through the imaging engine 210, or any combination of these images.
[0059] In operation 512, the search results are caused to be displayed on the user's client device (e.g., client device 110). In an example embodiment, the user interface module 308 sends instructions and data (e.g., image data) to the user's client device to present a user interface, whereby an image of the search results is displayed (e.g., above, below, or around a search bar). It should be noted that although images providing visual representations of the search results are discussed as being displayed as search results, alternative embodiments may present other forms of search results. For example, the search results may be provided in a list format (with or without associated images).
[0060] Reference now Figure 6, a flow chart of an example method for refining dynamic content is shown. In an example embodiment, the search engine 216 may append additional keywords to the search string based on the user's selection of the current search results. This may be advantageous, for example, when the user does not know what a particular item is called, how to describe a particular item, or the name of a store or organization associated with a particular item. Conversely, the user may refine a more general search using images depicting items of interest to the user. In some embodiments, method 600 may be performed based on the user having entered a search string and having received search results based on the entered search string. The search results are displayed in the form of an image that presents a visual representation of a particular search result. Alternatively, the search results may be displayed based on a user's selection of a search string on a home page that displays images of various categories (e.g., such as Figure 4A As shown) to perform method 600.
[0061] In operation 602, a selection of one of the images is received. In an example embodiment, the input query module 302 receives the selection of the image and accesses metadata associated with the selected image.
[0062] In operation 604, the level of the current search and the selected image is determined. For example, a determination may be made as to whether the selected image is a broad category image or whether the selected image is a specific project image. The one or more keywords to be appended to the search string or the search results to be returned depend on the level of the current search. In one embodiment, when the selected image is caused to be displayed to the user, the selected image is labeled to indicate the current level in the search (e.g., category level, subcategory level). In this embodiment, the level of the search is determined based on the tags.
[0063] In operation 606, one or more keywords are determined and appended to the search string. The one or more keywords may be determined from metadata associated with the selected image based on the current search level. For example, if the current search level presents (category) results for "summer cocktail" and the user selects an image corresponding to a Pottery Barn cocktail glass, the keyword to be appended is "glass". However, if the current search level presents (subcategory) results for "summer cocktail glasses" and the same image corresponding to a Pottery Barn cocktail glass is selected, the keyword to be appended may be "Pottery Barn", resulting in the search string "summer cocktail glasses from Pottery Barn". In another example, if the current search level presents a Pottery Barn store based on the search string "summer cocktail glasses from Pottery Barn", and the user selects the same image, the type of glass depicted in the image from Pottery Barn (e.g., "classic margarita") may be appended. In an example embodiment, the user interface module 308 causes one or more keywords to be added to the search string displayed in the search bar. The input query module 302 also provides the one or more keywords to the matching module 304.
[0064] In operation 608, the matching module 304 determines a match for the appended search string. Thus, the previous search results are refined by the appended keywords to obtain refined search results at a lower search level than the previous search. The refinement of the previous search results using the appended keywords is performed without any other action by the user other than selecting an image (e.g., no "enter" key is required).
[0065] In operation 610, the final matching images of the search results are accessed. Therefore, the user interface module 308 accesses the images from a database or repository storing the published information (e.g., database 124). The images may include images from a third party or repository, images from a catalog, images uploaded by various entities through the imaging engine 210, or any combination of these images.
[0066] In operation 612, the search results are caused to be displayed on the user device of the user. In an example embodiment, the user interface module 308 sends instructions and data (e.g., image data) to the user's client device to present a user interface whereby images of the search results are displayed (e.g., above, below, or around a search bar).
[0067] Figure 7 700 is a flow chart of an example method 700 for providing an infinite search results page (SRP). In an example embodiment, the search engine 216 provides an infinite search results page (SRP) by appending the search results of the previous level to the bottom or end of the search results of the current level. This process avoids the use of a back button and does not require reloading a page containing previous search results in response to a selection of a back button. The operations of the method 700 are performed by the user interface module 308.
[0068] In operation 702, a current level of search results (e.g., search results for "summer cocktail glasses from the Brooklyn Glass & Mercantile Co.") is caused to be presented on a user device. In an example embodiment, the user interface module 308 causes the search results to be presented in a graphical format by sending instructions and data to the user's client device to present such a scrollable user interface. For each result, the search results may include text, an image, or a combination of both. The method 700 assumes that at least one initial search and a refinement of the initial search have been performed, and that the current level of search results to be presented are based on the refined search results.
[0069] In operation 704, a scroll indication is detected. For example, a user may swipe upward on a touch screen displaying the current level of search results. In response, in operation 706, the user interface module 308 causes the search results to scroll in the direction of the scroll indication.
[0070] In operation 708, it is determined whether the end of the search results for the current level (e.g., search results for "summer cocktailglasses from the Brooklyn Glass & Mercantile Co.") has been reached. If the end of the search results for the current level has not been reached, the user interface continues to monitor the scroll indication and causes scrolling search results to be presented in the direction of the scroll indication.
[0071] However, if the end of the search results for the current level is reached, the user interface module 308 appends the search results for the previous level (e.g., the search results for "summer cocktail glasses") to the bottom or end of the search results for the current level. Thus, the search engine 216 understands the relationship between all items in the search results for the current level with respect to the entire total search results. If the search results for the current level (e.g., sports-sports category-baseball) reach the end, the user interface module 308 returns the search results to the previous level (e.g., sports-sports category).
[0072] The appending of previous search results does not require providing a new page to present the previous search results. Instead, the previous search results are retrieved from the cache and added to the end of the current search results, thus leveraging the cache experience and reducing processing requirements.
[0073] Figure 8 800 is a component illustrating a machine 800 capable of reading instructions 824 from a machine-readable medium 822 (e.g., a non-transitory machine-readable mechanism, a machine-readable storage medium, a computer-readable storage medium, or any suitable combination thereof) and performing, in whole or in part, any one or more of the methods discussed herein, according to some example embodiments. Specifically, Figure 8 A machine 800 is shown in the example form of a computer system (e.g., a computer) in which instructions 824 (e.g., software, programs, applications, applet, apps, or other executable code) may be executed in whole or in part to cause the machine 800 to perform any one or more of the methodologies discussed herein.
[0074] In alternative embodiments, the machine 800 operates as a standalone device or can be connected (e.g., networked) to other machines. In a networked deployment, the machine 800 can operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 800 can be a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), a cellular phone, a smart phone, a web appliance, a network router, a network switch, a bridge, or any machine capable of executing instructions 824 that specify actions to be taken by the machine, either sequentially or otherwise. In addition, although only a single machine is shown, the term "machine" should also be construed to include a collection of machines that independently or jointly execute instructions 824 to perform any one or more of the methodologies discussed herein.
[0075] The machine 800 includes a processor 802 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), or any suitable combination thereof) configured to communicate with each other via a bus 808, a main memory 804, and a static memory 806. The processor 802 may include microcircuits that may be temporarily or permanently configured by some or all of the instructions 824, so that the processor 802 may be configured to perform any one or more of the one or more methods described herein in whole or in part. For example, a collection of one or more microcircuits of the processor 802 may be configured to execute one or more modules (e.g., software modules) described herein.
[0076] The machine 800 may also include a graphics display 810 (e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, a cathode ray tube (CRT), or any other display capable of displaying graphics or video). The machine 800 may also include an alphanumeric input device 812 (e.g., a keyboard or keypad), a cursor control device 814 (e.g., a mouse, a touch pad, a trackball, a joystick, a motion sensor, an eye tracking device, or other pointing instrument), a storage unit 816, a signal generating device 818 (e.g., a sound card, an amplifier, a speaker, a headphone jack, or any suitable combination thereof), and a network interface device 820.
[0077] The storage unit 816 includes a machine-readable medium 822 (e.g., a tangible and non-transitory machine-readable storage medium) having stored therein instructions 824 that implement any one or more of the methods or functions described herein. The instructions 824 may also reside, in whole or in part, within the main memory 804, within the processor 802 (e.g., within a cache of the processor), or both before or during execution by the machine 800. Thus, the main memory 804 and the processor 802 may be considered machine-readable media (e.g., tangible and non-transitory machine-readable media).
[0078] In some example embodiments, the machine 800 may be a portable computing device (e.g., a smartphone or tablet computer) and have one or more additional input components (e.g., sensors or meters). Examples of such input components include an image input component (e.g., one or more cameras), an audio input component (e.g., a microphone), a direction input component (e.g., a compass), a position input component (e.g., a global positioning system (GPS) receiver), an orientation component (e.g., a gyroscope), a motion detection component (e.g., one or more accelerometers), an altitude detection component (e.g., an altimeter), and a gas detection component (e.g., a gas sensor). Input obtained by any one or more of these input components may be accessible and available for use by any of the modules described herein.
[0079] As used herein, the term "memory" refers to a machine-readable medium capable of temporarily or permanently storing data, and may be considered to include, but not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. Although the machine-readable medium 822 is shown as a single medium in the example embodiment, the term "machine-readable medium" should be considered to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) capable of storing instructions. The term "machine-readable medium" should also be considered to include any medium or combination of multiple media capable of storing instructions, the instructions being executed by a machine (e.g., machine 800) so that when the instructions are executed by one or more processors of the machine (e.g., processor 802), the machine performs any one or more of the methods described herein. Therefore, "machine-readable medium" refers to a single storage device or device, as well as a "cloud-based" storage system or storage network comprising multiple storage devices or devices. Therefore, the term "machine-readable mechanism" should be considered to include, but not limited to, one or more data warehouses in the form of solid-state memory, optical media, magnetic media, or any appropriate combination thereof.
[0080] Furthermore, a tangible machine-readable medium is non-transitory in that it does not implement a propagating signal. However, labeling a tangible machine-readable medium as "non-transitory" should not be interpreted to mean that the medium cannot be moved - the medium should be considered to be movable from one physical location to another. Furthermore, since the machine-readable medium is tangible, the medium can be considered a machine-readable device.
[0081] The instructions 824 may also be sent or received using a transmission medium over a communication network 826 via the network interface device 820 and utilizing any of a number of known transmission protocols (e.g., HTTP). Examples of communication networks include a local area network (LAN), a wide area network (WAN), the Internet, a mobile phone network, a plain old telephone (POTS) network, and wireless data networks (e.g., WiFi and WiMax networks). The term "transmission medium" shall be deemed to include any intangible medium capable of storing, encoding, or carrying instructions for execution by a machine, and includes digital or analog communication signals or other intangible media to facilitate communication of such software.
[0082] In this specification, plural instances may implement components, operations or structures described as singular instances. Although the individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed simultaneously, and there is no need to perform the operations in the order shown. The structures and functions shown as separate components in the example configuration may be implemented as combined structures or components. Similarly, the structures and functions shown as single components may be implemented as separate components. These and other variations, modifications, additions and improvements fall within the scope of this subject matter.
[0083] Certain embodiments are described herein as including logic or multiple components, modules, or mechanisms. A module may constitute a software module (e.g., code embodied on a machine-readable medium or in a transmission signal) or a hardware module. A "hardware module" is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., stand-alone computer systems, client computer systems, or server computer systems) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by an element (e.g., an application or an application portion) to operate as a hardware module that performs specific operations described herein.
[0084] In some embodiments, the hardware module can be implemented mechanically, electronically, or any appropriate combination thereof. For example, the hardware module can include a dedicated circuit or logic that is permanently configured to perform a specific operation. For example, the hardware module can be a dedicated processor, such as a field programmable gate array (FPGA) or an ASIC. The hardware module can also include programmable logic or circuits that are temporarily configured by software to perform a specific operation. For example, the hardware module can include software contained in a general-purpose processor or other programmable processor. It should be understood that the decision to implement the hardware module mechanically, with a dedicated and permanently configured circuit, or with a temporarily configured circuit (e.g., configured by software) can be based on cost and time considerations.
[0085] Therefore, the phrase "hardware module" should be understood to cover tangible entities, which are physically constructed, permanently configured (e.g., hard-wired), or temporarily configured (e.g., programmed) to operate in a specific manner or perform specific operations described herein. As used herein, a "hardware-implemented module" refers to a hardware module. Considering an embodiment in which a hardware module is temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each of the hardware modules at any one time. For example, if a hardware module includes a general-purpose processor that is configured by software to be a special-purpose processor, the general-purpose processor can be configured as different special-purpose processors (e.g., including different hardware modules) at different times. Therefore, software can configure a processor, for example, to constitute a specific hardware module at one time and a different hardware module at another time.
[0086] Hardware modules can provide information to other hardware modules and receive information from other hardware modules. Therefore, the described hardware modules can be viewed as being communicatively coupled. If multiple hardware modules exist simultaneously, communication can be achieved by signal transmission (e.g., through appropriate circuits and buses) between two or more hardware modules. In embodiments where multiple hardware modules are configured or instantiated at different times, communication between such hardware modules can be achieved, for example, by storing and obtaining information in a memory structure accessible to multiple hardware modules. For example, a hardware module can perform an operation and store the output of the operation in a storage device coupled to it in communication. Another hardware module can then access the memory device later to obtain and process the stored output. The hardware module can also initiate communication with an input or output device and can operate on a resource (e.g., a collection of information).
[0087] The various operations of the example methods described herein may be performed, at least in part, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, a "processor-implemented module" refers to a hardware module implemented using one or more processors.
[0088] Similarly, the methods described herein may be at least partially processor-implemented, where a processor is an example of hardware. For example, at least some of the operations of the method may be performed by one or more processors or processor-implemented modules. In addition, one or more processors may also be operable to support performing related operations in a "cloud computing" environment or as "software as a service" (SaaS). For example, at least some of the operations may be performed by a computer (as an example of a machine including a processor) group, which may be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interfaces (APIs)).
[0089] The execution of certain operations may be distributed among one or more processors and may not reside in a single machine, but may be arranged in multiple machines. In some example embodiments, one or more processors or processor-implemented modules may be located in a single geographic location (e.g., in a home environment, an office environment, or a server farm). In other example embodiments, one or more processors or processor-implemented modules may be distributed in multiple geographic locations.
[0090] Some parts of the subject matter discussed herein can be presented with algorithms or symbolic representations of operations on data, which are stored as bits or binary digital signals in machine memory (e.g., computer memory). Such algorithms or symbolic representations are examples of techniques used by ordinary technicians in the field of data processing technology to convey the essence of their work to other technicians in the field. As used herein, "algorithm" is a self-consistent sequence of operations or similar processing that leads to a desired result. In this context, algorithms and operations involve physical operations on physical quantities. Usually but not necessarily, such an amount can take the form of electrical, magnetic or optical signals that can be stored, accessed, transmitted, combined, compared or otherwise manipulated by a machine. Sometimes, mainly due to common usage, it is convenient to use words such as "data", "content", "bit", "value", "element", "symbol", "character", "item", "number", "digital" to refer to such signals. However, these words are merely convenient tags and should be associated with appropriate physical quantities.
[0091] Unless otherwise specifically stated, discussions herein using words such as "process," "calculate," "compute," "determine," "present," "display," and the like may refer to the action or process of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or any combination thereof), registers, or other machine components that receive, store, send, or display information. Furthermore, unless otherwise specifically stated, as is common in patent literature, the terms "a" or "an" herein are used to include one or more than one instance. Finally, as used herein, unless otherwise specified, the conjunction "or" refers to a non-exclusive "or."
[0092] The following numbered examples are embodiments.
[0093] 1. A machine-readable medium carrying instructions that, when executed by at least one processor of a machine, cause the machine to perform operations comprising:
[0094] causing search results of the current level of the search to be presented on a search results page displayed on a client device;
[0095] detecting a scroll indication applied to presentation of the current level of search results;
[0096] causing the presentation of the search results of the current level to be scrolled based on the direction of the scroll indication;
[0097] determining that an end of presentation of the current level of search results has been reached responsive to the scrolling; and
[0098] The previous level of search results are appended to the end of the presentation of the current level of search results to cause a continuous presentation of search result pages.
[0099] 2. The machine-readable medium of example 1, wherein appending the previous level of search results occurs without user interaction.
[0100] 3. The machine-readable medium of example 1 or example 2, wherein appending the previous level of search results comprises accessing a cache storing the previous level of search results.
[0101] 4. The machine-readable medium of any one of Examples 1 to 3, wherein appending the previous level of search results occurs without requiring a reload of a search results page.
[0102] 5. The machine-readable medium of any one of Examples 1 to 4, wherein the operation further comprises: in response to appending the previous level of search results, updating the search terms in the search bar to correspond to the previous level of search results.
[0103] 6. The machine-readable medium of any of examples 1 to 5, wherein the operations further comprise:
[0104] receiving another scroll instruction in a direction opposite to the direction of the scroll instruction while causing presentation of the additional search results of the previous level; and
[0105] Based on the other scroll instruction in the opposite direction, a redisplay of the current level of search results is caused.
[0106] 7. The machine-readable medium of Example 6, wherein the operation further comprises: updating the search terms in the search bar to correspond to the search results of the current level.
[0107] 8. A computer-implemented method comprising:
[0108] causing search results of the current level of the search to be presented on a search results page displayed on a client device;
[0109] detecting a scroll indication applied to presentation of the current level of search results;
[0110] causing the presentation of the search results of the current level to be scrolled based on the direction of the scroll indication;
[0111] determining that an end of presentation of the current level of search results has been reached responsive to the scrolling; and
[0112] The search results of the previous level are appended to the end of the presentation of the search results of the current level by the hardware processor to cause continuous presentation of the search result pages.
[0113] 9. The method of example 8, wherein appending the previous level of search results occurs without user interaction.
[0114] 10. The method of example 8 or example 9, wherein appending the previous level of search results comprises accessing a cache storing the previous level of search results.
[0115] 11. A method according to any one of Examples 8 to 10, wherein appending the previous level of search results occurs without reloading the search results page.
[0116] 12. The method according to any one of Examples 8 to 11 further includes: in response to appending the search results of the previous level, updating the search terms in the search bar to correspond to the search results of the previous level.
[0117] 13. The method of any one of Examples 8 to 12, further comprising:
[0118] receiving another scroll instruction in a direction opposite to the direction of the scroll instruction while causing presentation of the additional search results of the previous level; and
[0119] Based on the other scroll instruction in the opposite direction, a redisplay of the current level of search results is caused.
[0120] 14. The method according to Example 13 further includes: updating the search items in the search bar to correspond to the search results of the current level.
[0121] 15. A system comprising:
[0122] A user interface module includes one or more hardware processors and is configured to:
[0123] causing search results of the current level of the search to be presented on a search results page displayed on a client device;
[0124] detecting a scroll indication applied to presentation of the current level of search results;
[0125] causing the presentation of the search results of the current level to be scrolled based on the direction of the scroll indication;
[0126] determining that an end of presentation of the current level of search results has been reached responsive to the scrolling; and
[0127] The previous level of search results are appended to the end of the presentation of the current level of search results to cause a continuous presentation of search result pages.
[0128] 16. The system of example 15, wherein the user interface module appends the previous level of search results without user interaction.
[0129] 17. The system of example 15 or example 16, wherein the user interface module appends the previous level of search results by accessing a cache storing the previous level of search results.
[0130] 18. A system according to any one of Examples 15 to 17, wherein the user interface module appends the previous level of search results without reloading the search results page.
[0131] 19. A system according to any one of Examples 15 to 18, wherein the user interface module is further configured to: in response to appending the previous level of search results, update the search items in the search bar to correspond to the previous level of search results.
[0132] 20. The system of any one of examples 15 to 19, wherein the user interface module is further configured to:
[0133] receiving another scroll instruction in a direction opposite to the direction of the scroll instruction while causing presentation of the additional search results of the previous level; and
[0134] Based on the other scroll instruction in the opposite direction, a redisplay of the current level of search results is caused.
[0135] Although an overview of the inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of the embodiments of the inventive subject matter. These embodiments of the inventive subject matter are referred to herein, either individually or collectively, by the term "invention", which is merely for convenience and is not intended to actively limit the scope of the present application to any single invention or inventive concept (if more than one is actually disclosed).
[0136] The illustrated embodiments are described herein in sufficient detail to enable those skilled in the art to implement the disclosed teachings. Other embodiments may be utilized and derived from these embodiments, so that structural and logical substitutions and changes may be made without departing from the scope of the present disclosure. Therefore, this “specific implementation” should not be considered limiting, and the scope of the various embodiments is limited only by the full scope of the appended claims and the equivalents of the claims.
[0137] As used herein, the term "or" may be interpreted as an inclusive or exclusive meaning. In addition, multiple instances may be provided for resources, operations, or structures described herein as a single instance. In addition, the boundaries between various resources, operations, modules, engines, and data stores are arbitrary to some extent, and specific operations are shown in the context of a specific illustrative configuration. Other allocations of functions are conceivable and may fall within the scope of various embodiments of the present invention. In general, the structures and functions presented as separate resources in the example configuration may be implemented as a combined structure or resource. Similarly, the structures and functions presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within the scope of embodiments of the present invention as represented by the appended claims. Therefore, the specification and the drawings should be regarded as illustrative rather than restrictive.
Claims
1. A method for refining dynamic content in a search system, comprising: receiving a selection of one of the images in the results of the current search; determining one or more keywords associated with the selected image; appending the determined one or more keywords to the search string of the current search; Determining a match for the appended search string; Acquire the matched image; as well as The matching images are caused to be presented on the client device.
2. The method according to claim 1, further comprising: Determines the level of the current search, The determining of one or more keywords associated with the selected image includes: determining one or more keywords from metadata associated with the selected image according to a current search level.
3. The method according to claim 2, further comprising: Marks the selected images to indicate the current level of the search.
4. The method according to any one of claims 1 to 3, wherein: The refinement is performed without any other action by the user other than selecting the image.
5. A search system comprising: processor, and A memory storing instructions, which, when executed by the processor, cause the processor to be configured to: receiving a selection of one of the images in the results of the current search; determining one or more keywords associated with the selected image; appending the determined one or more keywords to the search string of the current search; Determining a match for the appended search string; Acquire the matched image; as well as The matching images are caused to be presented on the client device.
6. The search system according to claim 5, wherein: The processor is further configured to: determines the level of the current search, and The determining of one or more keywords associated with the selected image includes: determining one or more keywords from metadata associated with the selected image according to a current search level.
7. The search system according to claim 6, wherein the processor is further configured to: Marks the selected images to indicate the current level of the search.
8. A machine-readable medium carrying instructions that, when executed by at least one processor of a machine, cause the machine to perform operations comprising: receiving a selection of one of the images in the results of the current search; determining one or more keywords associated with the selected image; appending the determined one or more keywords to the search string of the current search; Determining a match for the appended search string; Acquire the matched image; as well as The matching images are caused to be presented on the client device.
9. The machine-readable medium of claim 8, in, The operation also includes: determining the level of the current search, The determining of one or more keywords associated with the selected image includes: determining one or more keywords from metadata associated with the selected image according to a current search level.
10. The machine-readable medium of claim 8, wherein the operations further comprise: Marks the selected images to indicate the current level of the search.
Citation Information
Patent Citations
Method and system for providing anonymized data from a database
US20150067881A1
Endless search result page
US20160188615A1
Dynamic search suggestion and category specific completion
CN102667768A
Image retrieval device and program
JP2012230544A
System and method of providing search result according to search intention of user
KR1020110092897A
