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 search engine and from a user, through a first interaction between the user and one or more controls on a graphical user interface of the search engine, a first search parameter sent to the search engine over a network by a client device of the user;
in response to the search engine receiving the second search parameter from the user:
generating, by a uniform resource identifier constructor of the search engine, a first natural language representation that represents the first search parameter; and
encoding, by the uniform resource identifier constructor of the search engine, a first uniform resource identifier in a format that is interpretable by a results generator of the search engine, wherein the uniform resource identifier comprises a path, and wherein the first uniform resource identifier includes the first natural language representation as a portion of the path of the first uniform resource identifier;
identifying, by the results generator of the search engine, a first search result that satisfies the first search parameter based on comparing the first search parameter to data stored in a search index;
transmitting, by the search engine and to the client device over the network, the first search result that satisfies the first search parameter and the first uniform resource identifier for display;
displaying in the graphical user interface (1) the first search result that satisfies the first search parameter, and (2) the first uniform resource identifier;
receiving, by the search engine and from the user, through a subsequent, second interaction between the user and one or more controls on the graphical user interface, a second search parameter that is not represented in the first uniform resource identifier, the second search parameter being sent to the search engine over the network by the client device of the user;
in response to the search engine receiving the second search parameter from the user:
generating, by the uniform resource identifier constructor of the search engine, a second natural language representation that represents the second search parameter;
determining, by the uniform resource identifier constructor of the search engine, an ordinal position in which the second natural language representation is to be added as a new portion of the path relative to a position of the first natural language representation in the first uniform resource identifier according to respective ranking scores of the first and second natural language representations, wherein the ranking scores of some types of search parameters are ranked before other types of search parameters; and
encoding, by the uniform resource identifier constructor of the search engine, an updated uniform resource identifier in the format that is interpretable by the search engine, wherein the updated uniform resource identifier comprises an updated version of the path, and wherein the updated uniform resource identifier includes the new portion of the path for the second natural language representation placed in the ordinal position relative to the portion of the path for the first natural language representation;
identifying, by the results generator of the search engine, a second search result that satisfies the second search parameter and the first search parameter based on comparing the second search parameter to the data stored in the search index;
transmitting, by the search engine and to the client device over the network, the second search result and the updated uniform resource identifier for display; and
displaying in the graphical user interface (1) the second search result that satisfies the first and second search parameters, and (2) the updated uniform resource identifier that includes the portion of the path for the first natural language representation and the portion of the path for the second natural language representation.
2 . The system of claim 1 , the operations further comprising:
providing, by the search engine, a search webpage to the user; and
receiving, by the search engine, multiple search parameters including the first and the second search parameters that were specified through the search webpage.
3 . The system of claim 1 , wherein:
the first and the second natural language representations each comprise one or more words that describe the respective first and second search parameters and one or more respective received filter values that are associated with the respective first and second search parameters.
4 . The system of claim 1 , the operations further comprising:
receiving from the user, through a third interaction between the user and one or more controls on the graphical user interface, a third search parameter;
determining not to represent the third search parameter by a natural language representation;
generating a third uniform resource identifier in which the third search parameter is encoded and represented as a session identifier; and
displaying in the graphical user interface (1) a third search result that satisfies the first and third search parameter, and (2) the third uniform resource identifier.
5 . The system of claim 1 , wherein:
the first search parameter and the second search parameter each satisfy an inclusion criterion;
generating the first natural language representation and generating the second natural language representation are performed by code in the search engine; and
the ranking scores of the first and second natural language representations are determined by code in the search engine.
6 . The system of claim 1 , the operations further comprising:
receiving from the user, before displaying the first search result and the first uniform resource identifier, and instruction to transmit a search query containing the first search parameter to the search engine.
7 . The system of claim 1 , wherein the first uniform resource identifier includes the first natural language representation for the first search parameter, and other query parameters that are not represented by natural language representations.
8 . The system of claim 1 , wherein the first uniform resource identifier includes the first natural language representation for the first search parameter, and no other natural language representations for any other search parameters.
9 . The system of claim 1 , wherein the second interaction comprises a manipulation of a drop-down list on the graphical user interface by the user.
10 . The system of claim 1 , wherein the first search result is displayed on the graphical user interface without the user transmitting the first uniform resource identifier to the search engine.
11 . The system of claim 1 , wherein the first natural language representation is included in a position of the first uniform resource identifier other than in a query parameter or query string.
12 . The system of claim 1 , wherein encoding the first uniform resource identifier comprise encoding a static uniform resource locator.
13 . The system of claim 1 , wherein each search parameter comprises an attribute name and an attribute value.
14 . The system of claim 1 , wherein the first natural language representation and the second natural language representation include one or more text portions that identify a search filter and one or more text portions that identify a search filter value, and wherein the text portions are separated by dashes.
15 . One or more non-transitory storage devices storing instructions that are operable, when executed by one or more computers, to cause the one or more computers to perform operations comprising:
receiving, by a search engine and from a user, through a first interaction between the user and one or more controls on a graphical user interface of the search engine, a first search parameter sent to the search engine over a network by a client device of the user;
in response to the search engine receiving the first search parameter from the user:
generating, by a uniform resource identifier constructor of the search engine, a first natural language representation that represents the first search parameter; and
encoding, by the uniform resource identifier constructor of the search engine, a first uniform resource identifier in a format that is interpretable by a results generator of the search engine, wherein the uniform resource identifier comprises a path, and wherein the first uniform resource identifier includes the first natural language representation as a portion of the path of the first uniform resource identifier;
identifying, by the results generator of the search engine, a first search result that satisfies the first search parameter based on comparing the first search parameter to data stored in a search index;
transmitting, by the search engine and to the client device over the network, the first search result that satisfies the first search parameter and the first uniform resource identifier for display;
displaying in the graphical user interface (1) the first search result that satisfies the first search parameter, and (2) the first uniform resource identifier;
receiving, by the search engine and from the user, through a subsequent, second interaction between the user and one or more controls on the graphical user interface, a second search parameter that is not represented in the first uniform resource identifier, the second search parameter being sent to the search engine over the network by the client device of the user;
in response to the search engine receiving the second search parameter from the user:
generating, by the uniform resource identifier constructor of the search engine, a second natural language representation that represents the second search parameter;
determining, by the uniform resource identifier constructor of the search engine, an ordinal position in which the second natural language representation is to be added as a new portion of the path relative to a position of the first natural language representation in the first uniform resource identifier according to respective ranking scores of the first and second natural language representations, wherein the ranking scores of some types of search parameters are ranked before other types of search parameters; and
encoding, by the uniform resource identifier constructor of the search engine, an updated uniform resource identifier in the format that is interpretable by the search engine, wherein the updated uniform resource identifier comprises an updated version of the path, and wherein the updated uniform resource identifier includes a the new portion of the path for the second natural language representation placed in the ordinal position relative to the portion of the path for the first natural language representation;
identifying, by the results generator of the search engine, a second search result that satisfies the second search parameter and the first search parameter based on comparing the second search parameter to the data stored in the search index;
transmitting, by the search engine and to the client device over the network, the second search result and the updated uniform resource identifier for display; and
displaying in the graphical user interface (1) the second search result that satisfies the first and second search parameters, and (2) the updated uniform resource identifier that includes the portion of the path for the first natural language representation and the portion of the path for the second natural language representation.
16 . The one or more non-transitory storage devices of claim 15 , the operations further comprising:
providing, by the search engine, a search webpage to the user; and
receiving, by the search engine, multiple search parameters including the first and the second search parameters that were specified through the search webpage.
17 . The one or more non-transitory storage devices of claim 15 , wherein:
the first and the second natural language representations each comprise one or more words that describe the respective first and second search parameters and one or more respective received filter values that are associated with the respective first and second search parameters.
18 . The one or more non-transitory storage devices of claim 15 , the operations further comprising:
receiving from the user, through a third interaction between the user and one or more controls on the graphical user interface, a third search parameter;
determining not to represent the third search parameter by a natural language representation;
generating a third uniform resource identifier in which the third search parameter is encoded and represented as a session identifier; and
displaying in the graphical user interface (1) a third search result that satisfies the first and third search parameter, and (2) the third uniform resource identifier.
19 . The one or more non-transitory storage devices of claim 15 , wherein:
the first search parameter and the second search parameter each satisfy an inclusion criterion;
generating the first natural language representation and generating the second natural language representation are performed by code in the search engine; and
the ranking scores of the first and second natural language representations are determined by code in the search engine.
20 . The one or more non-transitory storage devices of claim 15 , the operations further comprising:
receiving from the user, before displaying the first search result and the first uniform resource identifier, and instruction to transmit a search query containing the first search parameter to the search engine.
21 . A computer-implemented method comprising:
receiving, by a search engine and from a user, through a first interaction between the user and one or more controls on a graphical user interface of the search engine, a first search parameter sent to the search engine over a network by a client device of the user;
in response to the search engine receiving the first search parameter from the user:
generating, by a uniform resource identifier constructor of the search engine, a first natural language representation that represents the first search parameter; and
encoding, by the uniform resource identifier constructor of the search engine, a first uniform resource identifier in a format that is interpretable by a results generator of the search engine, wherein the uniform resource identifier comprises a path, and wherein the first uniform resource identifier includes the first natural language representation as a portion of the path of the first uniform resource identifier;
identifying, by the results generator of the search engine, a first search result that satisfies the first search parameter based on comparing the first search parameter to data stored in a search index;
transmitting, by the search engine and to the client device over the network, the first search result that satisfies the first search parameter and the first uniform resource identifier for display;
displaying in the graphical user interface (1) the first search result that satisfies the first search parameter, and (2) the first uniform resource identifier;
receiving, by the search engine and from the user, through a subsequent, second interaction between the user and one or more controls on the graphical user interface, a second search parameter that is not represented in the first uniform resource identifier, the second search parameter being sent to the search engine over the network by the client device of the user;
in response to the search engine receiving the second search parameter from the user:
generating, by the uniform resource identifier constructor of the search engine, a second natural language representation that represents the second search parameter;
determining, by the uniform resource identifier constructor of the search engine, an ordinal position in which the second natural language representation is to be added as a new portion of the path relative to a position of the first natural language representation in the first uniform resource identifier according to respective ranking scores of the first and second natural language representations, wherein the ranking scores of some types of search parameters are ranked before other types of search parameters; and
encoding, by the uniform resource identifier constructor of the search engine, an updated uniform resource identifier in the format that is interpretable by the search engine, wherein the updated uniform resource identifier comprises an updated version of the path, and wherein the updated uniform resource identifier includes a the new portion of the path for the second natural language representation placed in the ordinal position relative to the portion of the path for the first natural language representation;
identifying, by the results generator of the search engine, a second search result that satisfies the second search parameter and the first search parameter based on comparing the second search parameter to the data stored in the search index;
transmitting, by the search engine and to the client device over the network, the second search result and the updated uniform resource identifier for display; and
displaying in the graphical user interface (1) the second search result that satisfies the first and second search parameters, and (2) the updated uniform resource identifier that includes the portion of the path for the first natural language representation and the portion of the path for the second natural language representation.
22 . The method of claim 21 , comprising:
providing, by the search engine, a search webpage to the user; and
receiving, by the search engine, multiple search parameters including the first and the second search parameters that were specified through the search webpage.
23 . The method of claim 21 , wherein:
the first and the second natural language representations each comprise one or more words that describe the respective first and second search parameters and one or more respective received filter values that are associated with the respective first and second search parameters.
24 . The method of claim 21 , comprising:
receiving from the user, through a third interaction between the user and one or more controls on the graphical user interface, a third search parameter;
determining not to represent the third search parameter by a natural language representation;
generating a third uniform resource identifier in which the third search parameter is encoded and represented as a session identifier; and
displaying in the graphical user interface ( 1 ) a third search result that satisfies the first and third search parameter, and ( 2 ) the third uniform resource identifier.
25 . The method of claim 21 , wherein:
the first search parameter and the second search parameter each satisfy an inclusion criterion;
generating the first natural language representation and generating the second natural language representation are performed by code in the search engine; and
the ranking scores of the first and second natural language representations are determined by code in the search engine.
26 . The method of claim 21 , comprising:
receiving from the user, before displaying the first search result and the first uniform resource identifier, and instruction to transmit a search query containing the first search parameter to the search engine.