In one embodiment, a server-side process operating on a server includes crawling of one or more websites for possible answers to a query and adding the possible answer entities into a data structure of answer entities to queries. The server-side process also includes serving a requested Web page with an added search box that is displayed by a client coupled to the server. As a user types one or more characters at the client, the client sends the characters, portion-by-portion, e.g., character-by-character to the server-side process. In response, the server-side process searches the index for possible answers to the (so-far-typed) query, and provides to the client a list of answers (rather than queries) to be displayed by the client. Each additional character entered may modify the provided list of answers. The client selecting a listed answer navigation directly to the answer.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method of operating a client processing system that includes one or more client processors, a character input mechanism, and a display, the method comprising: (A) accepting from a user a request for a Web page of a website; (B) sending the request to a server processing system coupled to the client processing system, wherein at least one of: the server processing system comprises a source of websites, and the server processing system is coupled to a source of websites, wherein responsive to receiving the request, the server processing system: provides the requested Web page of the website or another Web page of the website, ascertains whether the requested Web page or website thereof is included in a pre-determined answer data structure stored in or for the server processing system, and upon ascertaining that the requested Web page or website thereof is included in the pre-determined answer data structure, modify the provided Web page by adding a search user interface element (search UI) for display with or in the provided Web page; (C) accepting the server processing system-provided Web page of the website including any search UI added by the server processing system for display with or in the provided Web page; (D) displaying the accepted Web page on the display, including any accepted search UI added for display with or in the provided Web page; (E) thereafter: (E1) accepting, one by one, one or more characters of a search query from a user via the character input mechanism; (E2) sending the accepted characters on-the-fly portion-by-portion to the server processing system as the user enters the characters, such that at any time, the sent characters from the user form an initial part of one or more queries and would eventually form all of a query for carrying out a search via the website; and (E3) receiving from the server processing system, in response to the sending of each portion, a list of answer entities that are possible answers to the one or more queries whose initial part matches the so-far-sent initial part, wherein the list of answer entities is a result of the server processing system's looking up the pre-determined data structure of pre-determined answer entitles to the one or more queries whose initial part matches with the so-far-sent initial part, and wherein for each pre-determined query of a plurality of pre-determined queries on a plurality of Web pages of websites, the pre-determined data structure of answer entities comprises: one or more pre-determined answer entities for the pre-determined query, and for an answer entity residing in a Web page that is in a hierarchy of Web pages, the context of each answer entity for the query, the context of the answer entity comprising a parent answer entity that includes the title of the parent Web page in the hierarchy and a link on a parent Web page; and (E4) displaying the list of answer entities together with the context for each answer entity that is stored with its respective context in the data structure of answer entities, wherein each answer entity in the list includes a selection mechanism, such that the user may select a particular answer entity from the list, wherein the list of answer entities may change as a result of the user entering each additional portion until the complete query is entered, and wherein an answer entity for a query is a Web page or portion thereof that is an answer to the query.
A method for providing autocomplete answers to search queries involves a client-side system with a processor, input mechanism, and display. The client requests a webpage from a server. The server adds a search UI element to the webpage if it's in a pre-built data structure of websites with pre-determined answers. The client displays the webpage with the search UI. As the user types characters in the search UI, the client sends these characters to the server in real-time. The server searches its pre-built data structure for possible answers matching the entered characters and sends a list of answer entities (not queries) back to the client. The client displays this list, including context information such as parent page titles and links. Answer entities can be web pages or portions thereof. Selecting an answer entity navigates the user directly to the answer.
2. A method as recited in claim 1 , wherein displaying the list of answer entities includes the client processing system displaying a drop down menu containing the list of answer entities and the selection mechanism for each answer entity, and wherein the client processing system is operative to accept a selection from the user, the accepting causing the client processing system to send the accepted selection to be server processing system that in response, sends the answer entity of the accepted selection to the client processing system, causing the display of the client processing system to navigate to the answer entity.
Building upon the method of providing autocomplete answers (as described in claim 1), the client displays the list of answer entities in a dropdown menu, each with a selection mechanism. When a user selects an answer entity from the dropdown, the client sends this selection to the server. The server then sends the selected answer entity back to the client, causing the client's display to navigate directly to that answer entity.
3. A method as recited in claim 1 , wherein the client processing system is configured to display in the list of answers the answer entity with a title and the context for those answer entities that are stored with their respective context in the data structure of answer entities, and wherein each displayed answer entity is one or two lines long such that a plurality of answer entities may be displayed simultaneously.
Building upon the method of providing autocomplete answers (as described in claim 1), the client system displays the answer entity along with its title and context (if available in the server's data structure). The display limits each answer entity to one or two lines, allowing multiple answer entities to be displayed simultaneously within the list of suggestions.
4. A method as recited in claim 1 , wherein the user selecting an answer entity causes navigating to the Web page containing the answer entity, and further responsive to the answer entity being a portion of the Web page, to automatically scroll down and indicate the relevant portion of the Web page containing the answer entity.
Building upon the method of providing autocomplete answers (as described in claim 1), when a user selects an answer entity, the client navigates to the web page containing the answer entity. If the answer entity is a portion of the web page, the client automatically scrolls down to and highlights the relevant portion containing the answer.
5. A method as recited in claim 1 , wherein the server processing system is coupled to the client processing system by a network.
Building upon the method of providing autocomplete answers (as described in claim 1), the client and server processing systems communicate with each other over a network.
6. A method as recited in claim 1 , wherein the server processing system is coupled to the client processing system by the Internet.
Building upon the method of providing autocomplete answers (as described in claim 1), the client and server processing systems communicate with each other over the Internet.
7. A method of operating a server processing system that includes one or more server processors, wherein at least one of: the server processing system comprises a source of websites, and the server processing system is coupled to a source of websites, the method comprising: (A) for each of a plurality of websites that includes one or more Web pages, for each of a set of one or more queries, crawling the Web pages in the website and extracting one or more answer entities that for the query, and for an answer entity residing in a Web page that is in a hierarchy of Web pages, a context for said answer entity, the context of the answer entity comprising a parent answer entity that includes the title of the parent Web page and a link on a parent Web page; (B) indexing each extracted answer entity, including creating an index entry and storing the index entry in an index data structure that is searchable according to the query of the answer entity; (C) thereafter, (C1) accepting a request for a Web page of a website from a client processing system coupled to the server processing system; (C2) ascertaining whether the requested Web page or the website is of one of the plurality of websites that was crawled, (C3) upon ascertaining that the requested Web page or the website is of one of the plurality of websites that was crawled, modifying the Web page by adding a search user interface element (“search UI”) to be displayed in or with the requested Web page; (C4) sending the requested Web page including, any added search UI to the client processing system to be displayed; (C5) thereafter (C5.1) accepting on the fly, portion-by-portion, characters of a search query from the client processing system as a result of a user of the client processing system entering the characters, such that at any point in time, the portions form a so-far-accepted initial part of the query and would eventually form all of the search query for carrying out a search via the requested Web page or website; (C5.2) searching the index data structure for matches with the so-far-accepted initial part of the query to determine a list of answer entities that are possible answers to the so-far-accepted initial part of the query, and further determining the context for each answer entity that is in the list and that was extracted with the answer entity during the crawling; and (C5.3) sending the list of answer entities that are possible answers to the so-far-sent initial part of the query for display at the client processing system with a selection mechanism for each displayed answer entity, such that the client processing system can accept a selection of a particular answer entity from the list, the sending comprising sending the context for each answer entity in the list that was extracted with the answer entity during the crawling, wherein the list of answer entities may change as a result of the receiving each additional portion of one or more characters until the complete query is entered, and wherein an answer entity for a query is a Web page or portion thereof that is an answer to the query.
A server-side method for generating autocomplete suggestions involves crawling websites and extracting "answer entities" for various queries, storing associated context (parent page titles and links for hierarchical pages). The server indexes these answer entities, creating a searchable data structure. When a client requests a webpage, the server checks if the page was crawled. If so, it adds a search UI element to the page before sending it to the client. As the client user types a search query, the server receives the characters in real-time, searches the index for matching answer entities, and sends a list of these entities (with context) back to the client for display with selection mechanisms. The list updates with each entered character.
8. A method as recited in claim 7 , wherein the search, causes a search box that can accept user input to be displayed, and further, responsive to the client receiving the list of answer entities, causes the list of answer entities to be displayed with the selection mechanisms for the answer entities of the list and the context for those answer entities for which the context is sent, the method further comprising: accepting from the client processing system a selection of a particular answer entity; and in response to accepting the selection, sending the particular answer entity of the accepted selection to the client processing system, in order to cause the client processing system to display the particular answer entity.
Expanding on the server-side autocomplete method (as described in claim 7), the server sends code for a search box to the client. The client displays the search box and, upon receiving the list of answer entities from the server, displays them with selection mechanisms and context. When the client selects an answer entity, it sends the selection back to the server, which then responds by sending the selected answer entity's data back to the client, which then displays the selected answer.
9. A method as recited in claim 8 , wherein the particular answer entity is a portion of a particular Web page, and wherein the sending of the answer entity of the accepted selection to the client processing system includes sending a mechanism to cause the client processing system to automatically scroll down and indicate the relevant portion of the Web page containing the particular answer entity.
Expanding on the server-side autocomplete method (as described in claim 8), if the selected answer entity is a portion of a webpage, the server sends a mechanism to the client that causes the client to automatically scroll to and highlight that specific portion of the webpage.
10. A method as recited in claim 7 , wherein the client processing system is configured to display for an answer entity in the list of answers: a title, and the context in the case the context was sent to the client processing system, and wherein each displayed answer entity in the list is one or two lines long such that a plurality of answer entities may be displayed simultaneously.
Expanding on the server-side autocomplete method (as described in claim 7), the client displays a title and context (if sent by the server) for each answer entity in the list. Each answer entity is limited to one or two lines, allowing for the simultaneous display of multiple options.
11. A method as recited in claim 7 , wherein the entries of the index data structure are ranked.
Expanding on the server-side autocomplete method (as described in claim 7), the entries in the index data structure are ranked based on relevance or other criteria.
12. A method as recited in claim 7 , further comprising, from time to time, updating the index data structure.
Expanding on the server-side autocomplete method (as described in claim 7), the index data structure is updated periodically to reflect changes in website content or user behavior.
13. A method as recited in claim 12 , wherein the updating comprises repeating the crawling and indexing steps.
Expanding on the server-side autocomplete method (as described in claim 12), the update process involves repeating the original crawling and indexing steps to refresh the data.
14. A method as recited in claim 12 , wherein the entries of the index data structure are ranked, and wherein the updating comprises modifying the ranking of entries.
Expanding on the server-side autocomplete method (as described in claim 12), where the entries in the index are ranked, the updating process includes modifying the ranking of the entries based on new data or algorithms.
15. A method as recited in claim 7 , further comprising accumulating search patterns, and updating the index data structure upon the accumulated search patterns meeting a pre-defined criterion.
Expanding on the server-side autocomplete method (as described in claim 7), the system accumulates data on user search patterns. The index data structure is updated when these patterns meet predefined criteria, potentially improving the relevance of autocomplete suggestions.
16. A method as recited in claim 7 , further comprising, after accepting at least a portion of the query, upon encountering an event, initiating an action, including sending code to the client processing system to display a message.
Expanding on the server-side autocomplete method (as described in claim 7), after receiving part of a user query, the server can trigger actions based on certain events. This includes sending code to the client to display messages.
17. A method as recited in claim 16 , wherein the event is that no answers are found in the index data structure, and wherein initiating the action includes sending code to the client processing system to display a message that results for the query were not found.
Expanding on the server-side autocomplete method (as described in claim 16), the event triggering an action is when no answers are found in the index for the user's query. In this case, the server sends code to the client to display a "no results found" message.
18. A method as recited in claim 17 , the message further includes a request to make contact and/or provide information.
Expanding on the server-side autocomplete method (as described in claim 17), the "no results found" message also includes a request for the user to provide contact information or additional details about their query.
19. A method as recited in claim 16 , wherein the event includes, after accepting a selection from the list of answers, that the selected answer is one of a set of particular answers that require initiating a respective action.
Expanding on the server-side autocomplete method (as described in claim 16), the event is triggered when the user selects an answer from the list that belongs to a specific set of answers that require a particular action to be initiated.
20. A method as recited in claim 7 , wherein the server processing system is coupled to the client processing system by a network.
Expanding on the server-side autocomplete method (as described in claim 7), the client and server processing systems communicate with each other over a network.
21. A method as recited in claim 7 , wherein the server processing system is coupled to the client processing system by the Internet.
Expanding on the server-side autocomplete method (as described in claim 7), the client and server processing systems communicate with each other over the Internet.
22. A method as recited in claim 7 , wherein the server processing system is coupled to the Internet, and wherein the Internet includes at least part of the source of websites.
Expanding on the server-side autocomplete method (as described in claim 7), the server processing system is connected to the Internet, which also serves as a source of websites for crawling.
23. A non-transitory computer-readable medium containing instructions that when executed by one or more processors of a server processing system that is coupled to a client processing system—and that at least one of: includes a source of websites and is coupled to a source of websites, cause carrying out a method comprising: (A) for each of a plurality of websites that includes one or more Web pages, for each of a set of one or more queries, crawling the Web pages in the website and extracting one or more answer entities that for the query, and for an answer entity residing in a Web page that is in a hierarchy of Web pages, a context for said answer entity, the context of the answer entity comprising a parent answer entity that includes the title of the parent Web page and a link on a parent Web page; (B) indexing each extracted answer entity, including creating an index entry and storing the index entry in an index data structure that is searchable according to the query of the answer entity; (C) thereafter, (C1) accepting a request for a Web page of a website from a client processing system coupled to the server processing system; (C2) ascertaining whether the requested Web page is of one of the plurality of websites that was crawled, (C3) upon ascertaining that the requested Web page or the website is of one of the plurality of websites that was crawled, modifying the Web page by adding a search user interface element (“search UI”) to be displayed in or with the requested Web page; (C4) sending the requested Web page including, any added search UI to the client processing system to be displayed; (C5) thereafter (C5.1) accepting on the fly, portion-by-portion, characters of a search query from the client processing system as a result of a user of the client processing system entering the characters, such that at any point in time, the portions form a so-far-accepted initial part of the query and would eventually form all of the search query for carrying out a search via the requested Web page or website; (C5.2) searching the index data structure for matches with the so-far-accepted initial part of the query to determine a list of answer entities that are possible answers to the so-far-accepted initial part of the query, and further determining the context for each answer entity that is in the list and that was extracted with the answer entity during the crawling; and (C5.3) sending the list of answer entities that are possible answers to the so-far-sent initial part of the query for display at the client processing system with a selection mechanism for each displayed answer entity, such that the client processing system can accept a selection of a particular answer entity from the list, the sending comprising sending the context for each answer entity in the list that was extracted with the answer entity during the crawling, wherein the list of answer entities may change as a result of the receiving each additional portion of one or more characters until the complete query is entered, and wherein an answer entity for a query is a Web page or portion thereof that is an answer to the query.
A non-transitory computer-readable medium stores instructions for a server to generate autocomplete suggestions. The server crawls websites, extracts "answer entities" for queries, and stores their context. It indexes these entities into a searchable data structure. When a client requests a page, the server checks if it's been crawled, and if so, adds a search UI before sending the page. As the user types a query, the server receives characters in real-time, searches the index, and sends a list of answer entities (with context) to the client, which displays them with selection options. The list updates dynamically with each character typed.
24. A non-transitory computer-readable medium as recited in claim 23 , wherein the search UI comprises code that when executed on the client processing system, causes a search box that can accept user input to be displayed, and further, responsive to the client receiving the list of answer entities, causes the list of answer entities to be displayed with the selection mechanisms for the answer entities of the list and the context for those answer entities for which the context is sent, and wherein the instructions when executed by at least one of the processors further cause the server processing system to: accept from the client processing system a selection of a particular answer entity; and in response to accepting the selection, send the particular answer entity of the accepted selection to the client processing system, in order to cause the client processing system to display the particular answer entity.
Building upon the computer-readable medium description (as described in claim 23), the search UI code displays a search box on the client. When the client receives the list of answer entities, it displays them with selection mechanisms and context. Furthermore, the instructions on the medium cause the server to accept a selection from the client and send the selected answer entity back to the client for display.
25. A non-transitory computer-readable medium as recited in claim 23 , wherein the entries of the index data structure are ranked.
Building upon the computer-readable medium description (as described in claim 23), the entries in the index data structure are ranked.
26. A non-transitory computer-readable medium as recited in claim 23 , further comprising, from time to time, updating the index data structure.
Building upon the computer-readable medium description (as described in claim 23), the instructions on the medium further cause the server to update the index data structure periodically.
27. An apparatus comprising: one or more processors; and storage containing instructions and an index data structure; wherein the apparatus is coupled to a client processing system, wherein at least one of: the apparatus includes a source of websites, and the apparatus is coupled to a source of websites, wherein the instructions, when executed by at least one of the one or more processors, cause carrying out a method comprising: (A) for each of a plurality of websites that includes one or more Web pages, for each of a set of one or more queries, crawling the Web pages in the website and extracting one or more answer entities that for the query, and for an answer entity residing in a Web page that is in a hierarchy of Web pages, a context for said answer entity, the context of the answer entity comprising a parent answer entity that includes the title of the parent Web page and a link on a parent Web page; (B) indexing each extracted answer entity, including creating an index entry and storing the index entry in the index data structure that is searchable according to the query of the answer entity; (C) thereafter, (C1) accepting a request for a Web page or of a website from a client processing system coupled to the server processing system; (C2) ascertaining whether the requested Web page or the website is of one of the plurality of websites that was crawled, (C3) upon ascertaining that the requested website or Web page is of one of the plurality of websites that was crawled, modifying the Web page by adding a search user interface element (“search UI”) to be displayed in or with the requested Web page; (C4) sending the requested Web page including, any added search UI to the client processing system to be displayed; (C5) thereafter (C5.1) accepting on the fly, portion-by-portion, characters of a search query from the client processing system as a result of a user of the client processing system entering the characters, such that at any point in time, the portions form a so-far-accepted initial part of the query and would eventually form all of the search query for carrying out a search via the requested Web page or website; (C5.2) searching the index data structure for matches with the so-far-accepted initial part of the query to determine a list of answer entities that are possible answers to the so-far-accepted initial part of the query, and further determining the context for each answer entity that is in the list and that was extracted with the answer entity during the crawling; and (C5.3) sending the list of answer entities that are possible answers to the so-far-sent initial part of the query for display at the client processing system with a selection mechanism for each displayed answer entity, such that the client processing system can accept a selection of a particular answer entity from the list, the sending comprising sending the context for each answer entity in the list that was extracted with the answer entity during the crawling, wherein the list of answer entities may change as a result of the receiving each additional portion of one or more characters until the complete query is entered, and wherein an answer entity for a query is a Web page or portion thereof that is an answer to the query.
An apparatus (server) includes processors, storage, instructions, and an index data structure. The server is coupled to a client and has access to website content. The instructions cause the server to crawl websites, extract "answer entities" and their context, and index them for searching. Upon client request, the server checks if a page was crawled, adds a search UI if so, and sends the page. As the user types in the UI, the server receives the characters, searches the index, and sends a list of answer entities (with context) to the client for display and selection.
28. An apparatus as recited in claim 27 , wherein the search UI comprises code that when executed on the client processing system, causes a search box that can accept user input to be displayed, and further, responsive to the client receiving the list of answer entities, causes the list of answer entities to be displayed with the selection mechanisms for the answer entities of the list and the context for those answer entities for which the context is sent, and wherein the instructions when executed by at least one of the one or more processors, further cause: accepting from the client processing system a selection of a particular answer entity; and in response to accepting the selection, sending the particular answer entity of the accepted selection to the client processing system, in order to cause the client processing system to display the particular answer entity.
Expanding on the apparatus description (as described in claim 27), the search UI displays a search box. After receiving the list of potential answers the client displays them with selection mechanisms. Further, the instructions cause the server to accept a selection from the client and send the selected answer entity back to the client for display.
29. An apparatus as recited in claim 27 , wherein the entries of the index data structure are ranked.
Expanding on the apparatus description (as described in claim 27), the entries in the index data structure are ranked.
30. An apparatus as recited in claim 27 , wherein the instructions when executed by at least one of the processors, further cause, from time to time, updating the index data structure.
Expanding on the apparatus description (as described in claim 27), the instructions cause the server to update the index data structure periodically.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
February 26, 2014
July 4, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.