Advanced Search Page with Dynamic Generation of a Search Query String

Systems, methods, and computer software for generating a search query involve displaying a search query entry page that includes multiple fields for entry of search parameters. User input defining at least a portion of a search query for at least one of the fields is received. A formatted search query having a format associated with a predetermined search engine is dynamically generated based on the received user input, and the formatted search query is displayed.

TECHNICAL FIELD

This document generally describes techniques for dynamically generating a search query string corresponding to search parameters received from a user.

BACKGROUND

Web search engines enable searching of the Internet for web pages, documents, or other files. Typical search engines provide a web page for entering search queries. A search query may be constructed from words or terms entered onto a web page by a user, and searches may be conducted for web pages or files that contain the words or terms identified in the search query. Results of a search conducted for a particular query may be ranked and listed on one or more search results web pages.

A basic search web page may include a single text box for a user to type in one or more search terms. Some search engines may support the ability to use various operators for modifying or connecting the search terms to facilitate more robust search capabilities. A help page may also provide guidance as to available operators and potential search strategies. In addition, an advanced search page may provide a more structured form for entering search queries. The advanced search page may provide multiple different search fields, each of which corresponds to a different search operation. For example, one field may be a text entry field for entering terms all of which must appear in each listed result, another field may be a text entry field for entering multiple alternative terms only one of which must appear in each listed result, and another field may be a text entry field for entering an exact phrase that must appear in each listed result.

SUMMARY

This document describes techniques for generating and displaying a search query string corresponding to various search parameters that a user enters into different search fields of a search form, such as an advanced search page, a basic search home page, or a search results page. In general, the search query string may be generated and displayed interactively and/or essentially simultaneously with the user's entry of search parameters into the search fields. The search query string may combine all of the search parameters, including the search terms and their respective search operations, into a single string and may be formatted according to the requirements of a predetermined search language.

In one implementation, user input is received for one or more fields of a search query entry page. The search query entry page includes multiple fields for entry of search parameters, and the received user input defines at least a portion of a search query. A formatted search query is dynamically generated based on the received user input, and the formatted search query has a format associated with a predetermined search engine.

Some implementations may include one or more of the following features. The search query entry page and the formatted search query are displayed. An edit of the displayed formatted search query is received, and the edit is applied to the formatted search query. The edited formatted search query is displayed, and a search is performed with the edited formatted search query. User input for two or more of the fields is received, and the received user input for the two or more fields defines at least a portion of the search query. The search query entry page is an advanced search query entry page, a basic search query entry page, or a search results page. Each of the fields includes a distinct data entry field corresponding to a different search operation. The different search operations include a list of terms that must all be found in the search results, a list of terms for which at least one of the terms must be found in the search results, a list of terms that must not be found in the search results, an exact phrase, a date limitation, a language limitation, a file type limitation, a web site limitation, a domain limitation, and/or a location limitation for one or more search terms.

Some of the fields are text boxes adapted to receive text entry. The formatted search query is displayed as the formatted search query is dynamically generated. A search is performed with the predetermined search engine using the formatted search query. The user input defines multiple search parameters, and each search parameter is associated with at least one available search query operation. The available search query operations and the search query string are displayed on a client user interface. The search query is generated and displayed substantially simultaneously with receiving the user input. The search query is displayed in a text box.

In another implementation, a web page including multiple query component input fields is generated, and the web page is adapted to display a formatted search query in response to receiving user input to the query component input fields. The formatted search query are generated based on the user input to the query component input fields, and the web page is transmitted to a client device for display and for receiving user input.

Some implementations may include one or more of the following features. The web page includes at least one script adapted to generate and display the formatted search query. The script can be adapted to generate the formatted search query by combining the user input to the query component input fields in a predetermined sequence or in a sequence corresponding to a sequence of user input.

The described techniques may be implemented as a computer-implemented method, a system, software, or instructions stored on a machine-readable medium.

DETAILED DESCRIPTION

Systems, techniques, and software may be implemented to facilitate generating and displaying formatted search query strings that correspond to search parameters from the various fields of an advanced search form. These techniques may be used, for example, in connection with an optional advanced search web page of an Internet search engine. The search parameters may include search terms that are entered in the fields of the advanced search form alone or as modified by operators corresponding to each of the fields. For example, each field of the advanced search form may represent a different potential search operation that may be performed on or using the search terms entered into the search field. The formatted search query string may be a single string that combines all of the search parameters according to a search language format used by a particular search engine.

The formatted search query string may be generated while search terms and other search parameters are entered into the advanced search form by a user. In addition, the formatted search query string may be displayed as it is generated. Thus, the formatted search query string may be displayed at the same time and on the same page or on the same user interface as a user is formulating the overall search query. By generating the formatted search query string substantially simultaneously with the user's entry of search terms and selection of search parameters, the user may be able to efficiently learn how certain search operations can be specified in the search language format. In other words, the advanced search page may illustrate how to manually enter one or more search operations, such that the user may be able to more quickly enter search queries in the future without using the advanced search option. The user may also be able to efficiently learn how to construct relatively complex search queries in the search language format. Particularly as the number of available advanced search options increase, the ability to learn to construct complex search queries or to at least perform certain specialized search operations may become even more beneficial because it may allow a user to avoid having to visually and/or electronically navigate through large numbers of available search operation fields, particularly for search operations that the user employs on a regular basis.

In some implementations, a user may be permitted to directly modify the formatted search query string after it has been completely or even partially generated, instead of requiring the user to make any modifications to the individual fields of the advanced search form. Such modifications to the formatted search query string may also be reflected in the individual advanced search form fields by automatically making corresponding changes to the fields. The ability to directly modify the formatted search query string may allow for more efficient or convenient searching. On the other hand, if the user modifies the search query by modifying the information entered into one or more of the fields of the advanced search form, the user may be able to observe how the modifications change the formatted search query string. Either way, the user may be able to efficiently learn how to construct queries in the format of the applicable search language.

FIG. 1is a block diagram of a system100for displaying a formatted search query corresponding to search parameters entered into fields of an advanced search page. The system100includes a server105that supports a search engine110. The search engine110may be accessed across a network150from multiple client devices160, each of which may be located locally or remotely from the server105. The search engine110may be accessed by the client devices160to perform searches for web pages, documents, or other files available from the server105or from other servers155accessible through the network150or through other networks or connections (not shown). In some implementations, the search engine110may be supported by multiple servers in, for example, a distributed server architecture.

The server105includes a processor115and a memory120that may support the functionality of the search engine110. In particular, the processor115may execute software code125stored in the memory120to carry out the operations of the search engine110. The memory120may also store data defining the content and operations of web pages associated with the search engine110, including, for example, a basic search page130and an advanced search page135. When a request for the basic search page130is received at the server105from a client device160, the processor115retrieves the basic search page130and transmits the basic search page130to the client device160. Similarly, when a request for the advanced search page135is received at the server105from a client device160, the processor115retrieves the advanced search page135and transmits the advanced search page135to the client device160. The basic search page130and the advanced search page135may incorporate one or more scripts140that may be transmitted to the user device160along with the respective search pages130and135. The scripts140may be used for executing specialized functions, such as automatically generating and displaying a formatted search query corresponding to the search parameters defined on the advanced search page135.

Each client device160includes a user interface, such as a display screen165, for displaying or otherwise presenting information such as the search pages130and135to a user. The search pages130and135may be presented using a web browser on the client device160. The client device160may also include one or more input devices170, such as a touch screen, a mouse, and a keyboard, for receiving user input. When the client device160receives the basic search page130, the basic search page130may be displayed on the display screen165. The basic search page130may include a field for receiving user input defining a search query. The basic search page130may also include a link to the advanced search page135.

When the client device160requests and receives the advanced search page135(e.g., by clicking on a link on the basic search page130), the advanced search page may be displayed on the display screen165. The advanced search page135may include a plurality of search query component fields, each of which may relate to a different search operation. The advanced search page135may also include a text box for displaying a formatted search query corresponding to a combination of search parameters entered into the search query component fields. As a user uses the input devices170to enter search terms and other search parameters in the search query component fields, one or more scripts140associated with the advanced search page135may operate to automatically generate a formatted search query and display the formatted search query in the designated text box. The text box need not include a visible boundary or outline but can simply be a designated area of the advanced search page135.

In some implementations, as an alternative to, or in addition to, scripts that automatically generate and display the formatted search query, other techniques for generating and displaying the formatted search query may be used. For example, search terms and other parameters entered into the search query component fields can be sent to the server105, which can update the advanced search page135using software code125executed on processor115and return the updated advanced search page135to the client device160.

Once a search query is generated in either the basic or advanced search page130or135, the search query can be submitted to the server105. The processor115and associated software code125stored in the memory120and defining the operation of the search engine110can be used to conduct a search based on the search query. For example, the search engine may be the Google™ search engine (www.google.com) or any other search engine. A result list may be generated and transmitted to the client device160for display on the display screen165.

FIGS. 2A-2Care example screenshots of an advanced search web page200that can be used to enter search terms and parameters while displaying a formatted search query on the same web page200. The advanced search page includes a first text entry field205for specifying a list of one or more words that must all be included (i.e., an AND operation), a second text entry field210for specifying an exact phrase that must be included (i.e., an exact phrase operation), a third text entry field215for specifying a list of words for which one or more must be included (i.e., an OR operation), and a fourth text entry field220for specifying a list of one or more words that must not be included in any web page results (i.e., a NOT operation). Other search fields include a first drop-down menu field225for specifying language parameter, a second drop-down menu field230for specifying a file type parameter, and a fifth text entry field235for identifying a specific web site to search within. A link240to other available search operations is also included. Other search operations may include date limitations (e.g., a date range; a specific year, month, or day; and the like), domain limitations (e.g., “.org” domains), and location limitations (e.g., in the title) for one or more search terms. In some implementations, search parameters may be selected using radio buttons, checkboxes, alphanumeric data entry fields, numeric data entry fields, numeric ranges, date fields, date ranges, language limitations, file format limitations, coded information entry fields, other constrained data entry fields, or other user interface components. Typically, users may enter search terms and/or parameters in only some of the available query component fields, while leaving other fields blank.

The advanced search web page200includes a search button245that a user can select to initiate the search (e.g., when the search query is complete) and an area250a,250b, or250cfor displaying a formatted search query string that corresponds to the search terms and other parameters specified in the various fields of the advanced search web page200. The display area for the formatted search query string can be located, for example, at the top of the advanced search web page200(at250aas inFIG. 2A), at the bottom of the advanced search web page200above the search button245(at250bas inFIG. 2B), or at the bottom of the advanced search web page200below the search button245(at250cas inFIG. 2C). Other locations on the advanced search web page200, on a standard search query page, or on a search results page are also possible. Furthermore, locations other than on the advanced search web page200are possible, such as in a pop-up window, in another static window, or in a toolbar.

FIG. 3is a screenshot of an advanced search web page300that illustrates an example of a formatted search query305generated based on search terms entered into the individual search operation fields205,210,215, and220of the advanced search page300. In the illustrated example, the formatted search query is formatted according to the Google™ search language format. Also in this example, the search parameters are placed in a predetermined sequence in the formatted search query305according to the sequence of the advanced search operation fields205,210,215, and220. In some implementations, the sequence of search parameters in the formatted search query string may depend, at least in part, on the order in which the search terms and parameters are entered onto the advanced search web page300. In other implementations, the sequence of search parameters in the formatted search query string may be based on some combination of predetermined sequencing rules and the order in which search terms and parameters are entered by a user.

The formatted search query string may be generated and displayed at least substantially simultaneously with the user's entry of search terms and parameters into the advanced search web page300. In some implementations, there may be no perceptible delay between entering a character in one of the individual search operation fields205,210,215, and220and displaying the corresponding change in the formatted search query string. In other implementations, there may be a greater delay, but modifications to the formatted search query string may generally be displayed quickly enough for a user to recognize the connection between changes in the individual search operation fields205,210,215, and220and corresponding changes to the formatted search query string.

FIG. 4is a screenshot of an alternative advanced search web page400. In this implementation, instead of including a plurality of individual search operation fields, the advanced search web page400includes a single search text box405and a plurality of links for different available advanced search operations. For example, the illustrated advanced search web page400includes an “exact phrase” link410, an “exclude words” link415, a “file type” link420, and a “specific web site” link425. Links for other available options could also be included. After a user selects one of the available links410,415,420, or425, the corresponding search operation is applied to search terms that are entered into the search text box405while the selected link remains active. In the Figure, the user has chosen link410(search for phrase) and the query405has quotes around the phrase “George Washington.” In some implementations, a warning may be presented to the user if the user attempts to enter search terms or parameters that are not appropriate for a particular, active search operation (or in the case of the advanced search forms depicted inFIGS. 2A-2C, for a particular search operation field).

FIG. 5is a flow diagram of a process500for dynamically displaying a search query corresponding to components of an advanced search form. A request for a basic search page is received (505). The request may be received from a client device, such as a desktop or laptop computer, a workstation, a mobile handheld device, or other device. Typically, searches performed using the basic search page are based on a search query that the user enters into a single search query field. In some cases, however, the basic search page may include more than one search query field. The basic search page may include a link or button that allows a user to request an advanced search form.

A request for an advanced search form may be subsequently received (510). The request may be received from a client device when a user selects the appropriate link or button on the basic search page or from a different client device using a direct link to the advanced search form. The advanced search form is returned in response to the request (515). The advanced search form may be provided by a server or a plurality of distributed servers that store the advanced search form and/or that support a search engine associated with the advanced search form. The advanced search form generally includes multiple fields for entry of search parameters. Typically, the advanced search form includes a greater quantity of search query fields than the basic search form. Each field of the advanced search form is a distinct data entry field and may correspond to a distinct search operation (e.g., a Boolean search operation or other search constraint operation).

The advanced search form is displayed (520) on, for example, a user device. The advanced search form may be displayed on a display screen using browser software on the user device. User input for one or more of the fields is received (525). The received user input defines at least a portion of a search query. For example, the received user input for each field may define one of a plurality of search parameters. Generally, user input is received for more than one of the fields on the advanced search form and the received user input defines at least a portion of an overall search query.

A formatted search query is interactively and/or dynamically generated based on the received user input (530). The formatted search query may be automatically generated and generally has a format associated with a predetermined search engine (e.g., a search language format required by the search engine). The formatted search query may be a Boolean search query generated by combining multiple search parameters corresponding to the various fields of the advanced search form in which the user enters data.

The formatted search query is displayed (535) on, for example, the user device. The formatted search query may be generated and displayed substantially simultaneously with the entry of user input (at525). A user may modify the formatted search query (540). Modifications may be made directly to the formatted search query or to the individual data entry fields (545), in which case corresponding changes are made to the displayed formatted search query. Modifications may include deleting search terms or search parameters from the search query. Modifications and the display thereof (540and545) can be repeated multiple times for as many edits as the user makes to the query.

A search is conducted using the predetermined search engine based on the formatted search query (550). Search results are generally returned to the requesting user device for display on a search results page.

The processes and logic flows described in this specification, including the method steps of the invention, can be performed by one or more programmable processors executing one or more computer programs to perform functions of the invention by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

Although a few implementations have been described in detail above, other modifications are possible. Moreover, other mechanisms for dynamically generating and displaying a search query string may be used. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. Other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.