Uniform resource identifier encoding
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving a query including search parameters; selecting one or more of the search parameters; for each of the selected parameters: generating a natural language representation of the selected parameter, and determining a rank of the selected parameter among the one or more selected parameters; generating a uniform resource identifier comprising the natural language representations of the selected parameters arranged in an order based on the ranks; obtaining one or more search results identified as responsive to the query; and providing the uniform resource identifier and the one or more search results for output.
1 . A system comprising one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:
receiving, by a uniform resource identifier interpreter of a search engine, a uniform resource identifier from a client device over a network, wherein the uniform resource identifier includes a path that includes one or more path segments that are natural language representations of one or more first search parameters that each indicate a criterion for selecting search results, and wherein the uniform resource identifier includes an additional representation of one or more other encoded parameters that (i) are not expressed as natural language representations in the uniform resource identifier and (ii) represent one or more second search parameters that each indicate a criterion for selecting search results, wherein the additional representation is not a natural language representation;
identifying, by the uniform resource identifier interpreter of the search engine, (i) the one or more first search parameters from the one or more path segments that are natural language representations and (ii) the one or more second search parameters using the additional representation of the one or more other encoded parameters that are not natural language representations in the uniform resource identifier;
performing, by a results generator of the search engine, a search by comparing records of a search index with the one or more first search parameters and the one or more second search parameters, wherein the records of the search index comprise keyword data derived from multiple sources over the network, and wherein the search identifies results based at least in part on the keyword data; and
providing, by the search engine, a set of the results of the search over the network for display by the client device.
2 . The system of claim 1 , wherein the additional representation is a session identifier; and
wherein identifying the one or more second search parameters comprises using the session identifier in the uniform resource identifier to obtain the one or more other encoded parameters that represent the one or more second search parameters that are not represented by natural language representations in the uniform resource identifier.
3 . The system of claim 2 , wherein the operations comprise storing, in a session identifier repository, multiple session identifiers corresponding to different search sessions; and
wherein the session identifier repository indicates, for each of the multiple session identifiers, one or more encoded parameters from the search session that corresponds to the session identifier.
4 . The system of claim 3 , wherein the encoded parameters stored in the session identifier repository comprise values for at least one of a user identifier, a location, a time of search, coordinates of a map, a query, or a search history.
5 . The system of claim 1 , the operations further comprising:
displaying the uniform resource identifier;
receiving a user modification of a first natural language representation in the uniform resource identifier to generate a modified uniform resource identifier;
performing a modified search by the search engine using the modified uniform resource identifier as a search request; and
displaying results of the modified search.
6 . The system of claim 5 , wherein:
the first natural language representation comprises one or more words that describe a respective search parameter and one or more filter values that are associated with the respective search parameter; and
receiving a user modification of the first natural language representation comprises receiving a modification of at least one of the one or more filter values.
7 . The system of claim 1 , the operations further comprising formulating a search query based on the identified search parameters, wherein performing the search comprises executing the search query.
8 . The system of claim 7 , wherein executing the search query comprises:
identifying a set of search results response to the search query;
rank the search result in the set of search results; and
returning the ranked set of search results.
9 . The system of claim 1 , wherein the uniform resource identifier was previously generated by the search engine during an earlier browsing session.
10 . The system of claim 1 , wherein the uniform resource identifier is a static uniform resource locator.
11 . The system of claim 1 , wherein the uniform resource identifier is not a dynamic URL.
12 . The system of claim 1 , wherein the path segments are separated by slashes.
13 . The system of claim 1 , wherein the additional representation of the one or more other encoded parameters comprises a session identifier;
wherein the operations include, before receiving the uniform resource identifier, storing, by the search engine, data that associates the session identifier with the one or more other encoded parameters; and
wherein identifying the one or more second search parameters comprises identifying the one or more second search parameters based on the stored data that associates the session identifier with the one or more other encoded parameters.
14 . The system of claim 1 , wherein, in the path of the uniform resource identifier, boundaries of path segments are designated by slashes in the uniform resource identifier;
wherein the one or more other encoded parameters include a first encoded parameter, provided as a single path segment of the uniform resource identifier, that represents multiple different search criteria for selecting search results; and
wherein identifying the second respective search parameters comprises identifying the multiple different search criteria based on the first encoded parameter.
15 . The system of claim 1 , wherein the one or more first search parameters and the one or more second search parameters are search parameters that were specified by interaction of a user with interactive controls on a user interface of a search engine web page provided by the search engine during a previous session of user interaction with the search engine, wherein the uniform resource identifier is generated by the search engine based on the search parameters specified by the interaction of the user with the interactive controls; and
wherein the operations comprise, in response to the search engine receiving the uniform resource identifier, providing, by the search engine, content for a search web page having interactive controls configured with settings that cause the interactive controls to indicate the one or more first search parameters and the one or more second search parameters determined from the uniform resource identifier.
16 . The system of claim 15 , wherein the content for the search web page populates at least one of the interactive controls of the search web page to display a value that specifies the one or more first search parameters determined from the uniform resource identifier or the one or more second search parameters determined from the uniform resource identifier.
17 . The system of claim 1 , wherein providing the set of results of the search over the network for display by the client device comprises providing a list of search results identified by the results generator of the search engine in the search performed using the one or more first search parameters and the one or more second search parameters, wherein the search results in the list are ordered according to a ranking determined based on at least one metric or characteristic of the search results.
18 . The system of claim 17 , wherein the ranking of the search results in the list is based at least in part on a keyword frequency for one or more keywords associated with the search results.
19 . The system of claim 17 , wherein the search results represent entities located at different geographic locations, and wherein the ranking is based at least in part on values describing properties of the entities.
20 . The system of claim 1 , wherein providing the set of results of the search over the network for display by the client device comprises providing data indicating entities selected based on the one or more first search parameters and the one or more second search parameters, wherein the data comprises indications of geographical locations of the entities with respect to a map of a geographical area.
21 . The system of claim 1 , wherein performing the search comprises searching for entities located in a particular geographical region, and wherein the set of results of the search comprises entities located in the particular geographical region.
22 . The system of claim 21 , wherein the particular geographical region is a user-specified geographical region.
23 . The system of claim 1 , wherein the keyword data indicates keywords associated with different entities;
wherein performing the search comprises selecting entities based at least in part on the keyword data; and
wherein providing the results of the search comprises indicating a set of the selected entities that were selected based on based at least in part on the keyword data.
24 . The system of claim 21 , wherein the search index indicates, for each of a plurality of entities, a name of the entity, a geographical location of the entity, and one or more values indicating a property of the entity; and
wherein the entities in the set of selected entities are selected or ranked based at least in part on the names, the geographical locations, or the values indicated by the search index.
25 . The system of claim 1 , wherein the search index comprises information indexed from web pages obtained by a web crawler from the multiple sources over the Internet.
26 . The system of claim 1 , wherein the operations comprise, before performing the search:
using a web crawler to identify and obtain content from a plurality of servers over the network; and
indexing the content using an indexer and storing the indexed content in the search index.
27 . A computer-implemented method comprising:
receiving, by a uniform resource identifier interpreter of a search engine, a uniform resource identifier from a client device over a network, wherein the uniform resource identifier includes a path that includes one or more path segments that are natural language representations of one or more first search parameters that each indicate a criterion for selecting search results, and wherein the uniform resource identifier includes an additional representation of one or more other encoded parameters that (i) are not expressed as natural language representations in the uniform resource identifier and (ii) represent one or more second search parameters that each indicate a criterion for selecting search results, wherein the additional representation is not a natural language representation;
identifying, by the uniform resource identifier interpreter of the search engine, (i) the one or more first search parameters from the one or more path segments that are natural language representations and (ii) the one or more second search parameters using the additional representation of the one or more other encoded parameters that are not natural language representations in the uniform resource identifier;
performing, by a results generator of the search engine, a search by comparing records of a search index with the one or more first search parameters and the one or more second search parameters, wherein the records of the search index comprise keyword data derived from multiple sources over the network, and wherein the search identifies results based at least in part on the keyword data; and
providing, by the search engine, a set of the results of the search over the network for display by the client device.
28 . The method of claim 27 , wherein the additional representation is a session identifier; and
wherein identifying the one or more second search parameters comprises using the session identifier in the uniform resource identifier to obtain the one or more other encoded parameters that represent the one or more second search parameters that are not represented by natural language representations in the uniform resource identifier.
29 . The method of claim 27 , comprising:
displaying the uniform resource identifier;
receiving a user modification of a first natural language representation in the uniform resource identifier to generate a modified uniform resource identifier;
performing a modified search by the search engine using the modified uniform resource identifier as a search request; and
displaying results of the modified search.
30 . The method of claim 29 , wherein:
the first natural language representation comprises one or more words that describe a respective search parameter and one or more filter values that are associated with the respective search parameter; and
receiving a user modification of the first natural language representation comprises receiving a modification of at least one of the one or more filter values.
31 . The method of claim 27 , comprising formulating a search query based on the identified search parameters, wherein performing the search comprises executing the search query.
32 . The method of claim 27 , wherein the uniform resource identifier was previously generated by the search engine during an earlier browsing session.
33 . One or more non-transitory storage devices storing instructions that are operable, when executed by one or more computers, cause the one or more computers to perform operations comprising:
receiving, by a uniform resource identifier interpreter of a search engine, a uniform resource identifier from a client device over a network, wherein the uniform resource identifier includes a path that includes one or more path segments that are natural language representations of one or more first search parameters that each indicate a criterion for selecting search results, and wherein the uniform resource identifier includes an additional representation of one or more other encoded parameters that (i) are not expressed as natural language representations in the uniform resource identifier and (ii) represent one or more second search parameters that each indicate a criterion for selecting search results, wherein the additional representation is not a natural language representation;
identifying, by the uniform resource identifier interpreter of the search engine, (i) the one or more first search parameters from the one or more path segments that are natural language representations and (ii) the one or more second search parameters using the additional representation of the one or more other encoded parameters that are not natural language representations in the uniform resource identifier;
performing, by a results generator of the search engine, a search by comparing records of a search index with the one or more first search parameters and the one or more second search parameters, wherein the records of the search index comprise keyword data derived from multiple sources over the network, and wherein the search identifies results based at least in part on the keyword data; and
providing, by the search engine, a set of the results of the search over the network for display by the client device.
34 . The one or more non-transitory storage devices of claim 33 , wherein the additional representation is a session identifier; and
wherein identifying the one or more second search parameters comprises using the session identifier in the uniform resource identifier to obtain the one or more other encoded parameters that represent the one or more second search parameters that are not represented by natural language representations in the uniform resource identifier.
35 . The one or more non-transitory storage devices of claim 33 , the operations further comprising:
displaying the uniform resource identifier;
receiving a user modification of a first natural language representation in the uniform resource identifier to generate a modified uniform resource identifier;
performing a modified search by the search engine using the modified uniform resource identifier as a search request; and
displaying results of the modified search.
36 . The one or more non-transitory storage devices of claim 35 , wherein:
the first natural language representation comprises one or more words that describe a respective search parameter and one or more filter values that are associated with the respective search parameter; and
receiving a user modification of the first natural language representation comprises receiving a modification of at least one of the one or more filter values.
37 . The one or more non-transitory storage devices of claim 33 , the operations further comprising formulating a search query based on the identified search parameters, wherein performing the search comprises executing the search query.