A. Field of the Invention
The present invention relates generally to information retrieval systems and, more particularly, to systems and methods for highlighting query terms in search results.
B. Description of Related Art
Conventional techniques for searching a hypertext medium, such as the World Wide Web (“web”), are replete with deficiencies. To perform a search on the web, a user typically uses a web browser, such as the Netscape Navigator and Microsoft Internet Explorer browsers. The user enters one or more search terms into the browser. In response, the browser generates a query request to a search engine. The search engine typically returns a list of result links to the browser, which, in turn, displays the list to the user.
To view a document associated with one of the links, the user typically selects the link by, for example, clicking on it using a mouse. Sometimes, the user desires to determine where the search terms are located in the document to determine the document's relevance. Conventional information retrieval systems require that the user perform a word search on the document to locate each occurrence of the search terms.
As a result, there exists a need for mechanisms for highlighting search terms in a retrieved document to aid a user in determining the document's relevance.
Systems and methods, consistent with the present invention, address this and other needs by providing mechanisms for highlighting search terms in retrieved documents to facilitate the determination of the documents' relevance.
In accordance with the purpose of the invention as embodied and broadly described herein, a system highlights search terms in documents distributed over a network. The system generates a search query that includes a search term and, in response to the search query, receives a list of one or more references to documents in the network. The system receives selection of one of the references and retrieves a document that corresponds to the selected reference. The system then highlights the search term in the retrieved document.
In another implementation consistent with the present invention, a web browser includes instructions for obtaining a search term; instructions for generating a search query from the search term; and instructions for obtaining a list of one or more references to documents distributed over a network using the search query. The web browser further includes instructions for retrieving a document corresponding to one of the one or more references; instructions for highlighting each occurrence of the search term in the retrieved document; and instructions for displaying the highlighted document to a user.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an embodiment of the invention and, together with the description, explain the invention. In the drawings,
The following detailed description of the invention refers to the accompanying drawings. The same reference numbers in different drawings identify the same or similar elements. Also, the following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims and equivalents.
Systems and methods, consistent with the present invention, highlight search terms in documents retrieved as a result of a search to aid in the determination of the relevancy of the retrieved documents.
The clients 110 may include devices, such as wireless telephones, personal computers, personal digital assistants (PDAs), lap tops, etc., threads or processes running on these devices, and/or objects executable by these devices. The servers 120-130 may include server devices, threads, and/or objects that operate upon, search, or maintain documents in a manner consistent with the present invention. The clients 110 and servers 120-130 may connect to the network 140 via wired, wireless, or optical connections.
In an implementation consistent with the present invention, the server 120 may include a search engine 125 usable by the clients 110. The servers 130 may store documents accessible by the clients 110.
The processor 220 may include any type of conventional processor or microprocessor that interprets and executes instructions. The main memory 230 may include a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by the processor 220. The ROM 240 may include a conventional ROM device or another type of static storage device that stores static information and instructions for use by the processor 220. The storage device 250 may include a magnetic and/or optical recording medium and its corresponding drive.
The input devices 260 may include one or more conventional mechanisms that permit a user to input information to the client 110, such as a keyboard, a mouse, a pen, voice recognition and/or biometric mechanisms, etc. The output devices 270 may include one or more conventional mechanisms that output information to the user, including a display, a printer, a speaker, etc. The communication interface 280 may include any transceiver-like mechanism that enables the client 110 to communicate with other devices and/or systems. For example, the communication interface 280 may include mechanisms for communicating with another device or system via a network, such as network 140.
As will be described in detail below, the clients 110, consistent with the present invention, perform certain searching-related operations. The clients 110 may perform these operations in response to processor 220 executing software instructions contained in a computer-readable medium, such as memory 230. A computer-readable medium may be defined as one or more memory devices and/or carrier waves.
The software instructions may be read into memory 230 from another computer-readable medium, such as the data storage device 250, or from another device via the communication interface 280. The software instructions contained in memory 230 causes processor 220 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the present invention. Thus, the present invention is not limited to any specific combination of hardware circuitry and software.
The operating system 310 may include conventional operating system software, such as the Windows, Unix, or Linux operating systems. The browser software 320 may include conventional web browser software, such as the Microsoft Internet Explorer or Netscape Navigator browsers.
The browser assistant software 330 may include a plug-in, an applet, a dynamic link library (DLL), or a similar executable object or process. The client 110 may obtain the plug-in from the server 120 or from a third party server, disk, tape, network, CD-ROM, etc. Alternatively, the plug-in may be pre-installed on the client 110.
In another implementation consistent with the present invention, the browser assistant 330 is part of the browser 320. In this implementation, the browser 320 performs the functions of the browser assistant 330. In yet another implementation, the browser assistant 330 is a process separate from and runs concurrently with the browser 320. In this implementation, the browser assistant 330 may interface between the browser 320 and the network 140.
The browser assistant 330 may be automatically activated upon initiation of the browser 320. Alternatively, the browser assistant 330 may be activated when instructed by a user. In either case, the browser assistant 330 may take the form of a graphical user interface, such as a tool bar, software button, or menu, that provides an extension to the browser 320.
The tool bar 410 includes software buttons and/or menus selectable by a user to initiate different functions of the browser assistant 330. In this case, a user may activate a function of the browser assistant 330 by selecting one of the software buttons and/or menus. The software button 420 may be selectable by a user to initiate the browser assistant 330 functionality. In this case, a user may activate a function of the browser assistant 330 by selecting the button using, for example, a mouse. The menu 430 may provide a list of functions that the browser assistant 330 is capable of performing. A user may select from the list to activate the browser assistant 330 and instruct the browser assistant 330 to perform the desired function.
As described in more detail below, the browser assistant 330 may perform many searching-related functions to enhance a user's search experience. The browser assistant 330 may attach to the browser 320 to provide additional functionality to the user.
Returning to
The server 120 may include a bus 510, a processor 520, a memory 530, one or more input devices 540, one or more output devices 550, and a communication interface 560. The bus 510 permits communication among the components of the server 120. The processor 520 may include any type of conventional processor or microprocessor that interprets and executes instructions. The memory 530 may include a RAM or another type of dynamic storage device that stores information and instructions for execution by the processor 520; a ROM or another type of static storage device that stores static information and instructions for use by the processor 520; and/or some other type of magnetic or optical recording medium and its corresponding drive.
The input devices 540 may include one or more conventional mechanisms that permit an operator to input information into the server 120, such as a keyboard, mouse, pen, etc. The output devices 550 may include one or more conventional mechanisms that output information to the operator, including a display, a printer, a speaker, etc. The communication interface 560 may include any transceiver-like mechanism that enables the server 120 to communicate with other devices and systems via a network, such as the network 140.
As will be described in detail below, the server 120, consistent with the present invention, performs certain searching-related operations. The server 120 may perform these operations in response to processor 520 executing software instructions contained in a computer-readable medium, such as memory 530. The software instructions may be read into memory 530 from another computer-readable medium or from another device via the communication interface 560. The software instructions contained in memory 530 causes processor 520 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the present invention. Thus, the present invention is not limited to any specific combination of hardware circuitry and software.
The browser assistant 330 may treat the search terms as a query to a search engine, such as the search engine 125 or a web directory. The browser assistant 330 may generate a request to query the search engine 125 using the search terms and send the request to the search engine 125 [act 620]. In response to the request, the search engine 125 generates data that contains the search results and sends it back to the browser assistant 330 [act 630]. The search engine 125 may provide the search results as a HyperText Markup Language (HTML) document, similar to search results provided by conventional search engines. Alternatively, the search engine 125 may provide the search results according to a protocol agreed upon by the search engine 125 and the browser assistant 330.
In an implementation consistent with the present invention, the search results include references to documents (e.g., web pages), such as links to the documents and possibly a textual description of the links. In another implementation, the search results include references to directory nodes within a hierarchical directory, such as links to the directory nodes and possibly textual descriptions for the directory nodes. In other implementations, the search results include a combination of these references.
The browser assistant 330 receives the list of result links from the search engine 125 [act 640]. If the list of result links takes the form of an HTML document, then the browser assistant 330 may parse the document to determine the links that form the search results.
The browser assistant 330 may present the result links to the user [act 650]. For example, the browser assistant 330 may highlight the search terms in the result links and/or any textual descriptions associated with the result links and present the result links as a web page in a browser window. Alternatively, the browser assistant 330 may present the result links as a list of selectable items within a user interface of the browser assistant 330. In one instance, the user interface of the browser assistant 330 may include a pull-down or pop-up menu. In another instance, the user interface may include a side-bar or a scrolling list.
The user may then select one of the links to retrieve a document corresponding to the link. The user may make the selection, for example, by clicking on one of the links using a pointer, such as a mouse pointer. The browser assistant 330 detects the link selection and retrieves the corresponding document from a server, such as server 130, in the network 140 [acts 660 and 670].
The browser assistant 330 may then highlight the search terms in the document [act 680]. For example, the browser assistant 330 may search the document to locate the search terms. Then for each occurrence of the search terms, the browser assistant 330 may change one or more characteristics of the word(s), such as the font, style, size, color, effect, etc.
The browser assistant 330 may then present the document, with the highlighted search terms, to the user [act 680]. For example, the browser assistant 330 may display the document as a web page in a browser window or via a pop-up window.
The user may then provide one or more search terms to the browser 320 in a conventional manner [act 810]. The browser assistant 330 may record the search terms for use in a manner described below [act 820].
The browser 320 may treat the search terms as a query to the search engine 125 or the web directory. The browser 320 may generate a request to query the search engine 125 using the search terms and send the request to the search engine 125 [act 830]. In response to the request, the search engine 125 generates data that contains the search results and sends it back to the browser 320 [act 840].
As described above, the search results may include links to documents (e.g., web pages) and possibly a textual description of the links, links to directory nodes within a hierarchical directory and possibly textual descriptions for the directory nodes, or a combination of these links.
The browser 320 receives the list of result links from the search engine 125 [act 850]. If the list of result links takes the form of an HTML document, then the browser 320 may parse the document to determine the links that form the search results. The browser 320 may present the result links to the user in a conventional manner [act 860].
The user may then select one of the links to retrieve a document corresponding to the link. The user may make the selection, for example, by clicking on one of the links using a pointer, such as a mouse pointer. The browser 320 detects the link selection and retrieves the corresponding document from a server, such as server 130, in the network 140 [act 870].
The browser assistant 330 may intercept the document [act 880]. The browser assistant 330 may then highlight the search terms in the document and present the highlighted document to the user instead of or in addition to the unhighlighted document [act 890]. For example, the browser assistant 330 may search the document to locate the search terms. Then for each occurrence of the search terms, the browser assistant 330 may change one or more characteristics of the word(s), such as the font, style, size, color, effect, etc.
The clients 910 may include devices, such as wireless telephones, personal computers, PDAs, lap tops, etc., threads or processes running on these devices, and/or objects executable by these devices. The clients 910 may be configured similar to the clients 110 in
The servers 920-930 may include server devices, threads, and/or objects that operate upon, search, or maintain documents in a manner consistent with the present invention. The server 920 may include an enhanced search engine 925 and may be configured similar to the server 120 in
When a user decides to perform a search of the network 940, the user may activate a web browser, such as the browser 320. The user may then provide one or more search terms to the browser 320 in a conventional manner [act 1020]. The browser 320 may treat the search terms as a query to a search engine, such as the search engine 925, or a web directory. The browser 320 may generate a request to query the search engine 925 using the search terms and send the request to the search engine 925 [act 1030]. In response to the request, the search engine 925 generates data that contains the search results and sends it back to the browser 320 [act 1040].
As described above, the search results may include links to documents (e.g., web pages) and possibly a textual description of the links, links to directory nodes within a hierarchical directory and possibly textual descriptions for the directory nodes, or a combination of these links.
The browser 320 receives the list of result links from the search engine 925 [act 1050]. If the list of result links takes the form of an HTML document, then the browser 320 may parse the document to determine the links that form the search results. The browser 320 may present the result links to the user in a conventional manner [act 1060].
The user may then select one of the links to retrieve a document corresponding to the link. The user may make the selection, for example, by clicking on one of the links using a pointer, such as a mouse pointer. The browser 320 detects the link selection and notifies the search engine 925 of which link has been selected [act 1070].
The search engine 925 may then retrieve its saved copy of the document, highlight the search terms in the document, and present the highlighted document to the browser 320 instead of or in addition to the unhighlighted document [act 1080]. For example, the search engine 925 may search the document to locate the search terms. Then for each occurrence of the search terms, the search engine 925 may change one or more characteristics of the word(s), such as the font, style, size, color, effect, etc. Upon receiving the document, the browser 320 may provide the highlighted document to the user [act 1090].
In another implementation consistent with the present invention, the search engine 925 performs the highlighting function off-line. In this case, the search engine 925 may highlight the search terms in the documents corresponding to all of the result links, or a predetermined number of result links, and transmit the highlighted documents, or a predetermined number of the highlighted documents, to the browser 320. Alternatively, the search engine 925 may wait for the user to select one of the links before transmitting the highlighted document(s) to the browser 320.
While the foregoing acts have been described as being performed by the server 720, the acts may be performed by one of the servers 730 in other implementations consistent with the present invention.
Systems and methods, consistent with the present invention, highlight search terms in retrieved documents to aid a user in determining the relevance of the documents and locate relevant information within the documents.
The foregoing description of preferred embodiments of the present invention provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, while a series of acts have been described with regard to
Also, two separate network configurations have been described with regard to
The scope of the invention is defined by the claims and their equivalents.
This application is a continuation of U.S. patent application Ser. No. 09/734,882, filed Dec. 13, 2000, now U.S. Pat. No. 6,839,702, which claims the benefit of U.S. Provisional Application No. 60/171,019, filed Dec. 15, 1999, the disclosures of which are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5220625 | Hatakeyama et al. | Jun 1993 | A |
5644737 | Tuniman et al. | Jul 1997 | A |
5946678 | Aalbersberg | Aug 1999 | A |
5982370 | Kamper | Nov 1999 | A |
6006217 | Lumsden | Dec 1999 | A |
6009459 | Belfiore et al. | Dec 1999 | A |
6012055 | Campbell et al. | Jan 2000 | A |
6098081 | Heidorn et al. | Aug 2000 | A |
6112202 | Kleinberg | Aug 2000 | A |
6154757 | Krause et al. | Nov 2000 | A |
6332148 | Paine et al. | Dec 2001 | B1 |
6397218 | Stern et al. | May 2002 | B1 |
6510406 | Marchisio | Jan 2003 | B1 |
6785670 | Chiang et al. | Aug 2004 | B1 |
6834276 | Jensen et al. | Dec 2004 | B1 |
6839702 | Patel et al. | Jan 2005 | B1 |
6968332 | Milic-Frayling et al. | Nov 2005 | B1 |
Number | Date | Country | |
---|---|---|---|
60171019 | Dec 1999 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09734882 | Dec 2000 | US |
Child | 10965714 | US |