Query refinements using search data
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for determining query refinements using search data. In one aspect, a method includes receiving a first query and a second query each comprising one or more n-grams for a user session, determining a first set of query refinements for the first query, determining a second set of query refinements from the first set of query refinements, each query refinement in the second set of query refinements including at least one n-gram that is similar to an n-gram from the first query and at least on n-gram that is similar to an n-gram from the second query, scoring each query refinement in the second set of query refinements, selecting a third query from a group consisting of the second set of query refinements and the second query, and providing the third query as input to a search operation.
1 . A system comprising:
one or more memory devices storing instructions; and
one or more processors that are operable to execute the instructions to:
receive a first query for a user session, the first query being generated based on first input of a user at a user device;
receive a second query for the user session, the second query being different from the first query, the second query being subsequent to the first query in the user session without an intervening query, and the second query being generated based on second input of the user at the user device;
determine, based on the first query and the second query, two or more query refinements;
select, based on scores associated with the two or more query refinements, a highest scored query refinement from the two or more query refinements;
cause, in response to selecting the highest scored query refinement, a first search result, that is responsive to the highest scored query refinement, to be provided at the user device; and
receive, responsive to the first search result being provided at the user device, a user indication that the highest scored query refinement is incorrect, the user indication being based on third input that is verbal input of the user at the user device.
2 . The system according to claim 1 , wherein one or more of the processors are further operable to execute the instructions to:
responsive to receiving the user indication that the highest scored query refinement is incorrect:
cause an alternate search result to be provided at the user device.
3 . The system according to claim 2 , wherein the alternate search result is responsive to the second query.
4 . The system according to claim 1 , wherein in scoring each query refinement one or more of the processors are to score each query refinement using historical data.
5 . The system according to claim 1 , wherein the first input of the user is verbal input.
6 . The system according to claim 1 , wherein in selecting, based on scores associated with the two or more query refinements, the highest scored query refinement, one or more of the processors are to select the highest scored query refinement in response to a highest score, of the scores and for the highest scored query refinement, satisfying a threshold score.
7 . The system according to claim 1 , wherein the scores associated with the two or more query refinements reflect respective likelihoods that the query refinements will be received by a search engine after the search engine receives the first query.
8 . A non-transitory computer storage medium encoded with instructions that, when executed by one or more computers, cause the one or more computers to:
receive a first query for a user session, the first query being generated based on first input of a user at a user device;
receive a second query for the user session, the second query being different from the first query, the second query being subsequent to the first query in the user session without an intervening query, and the second query being generated based on second input of the user at the user device;
determine, based on the first query and the second query, two or more query refinements;
select, based on scores associated with the two or more query refinements, a highest scored query refinement from the two or more query refinements;
cause, in response to selecting the highest scored query refinement, a first search result, that is responsive to the highest scored query refinement, to be provided at the user device; and
receive, responsive to the first search result being provided at the user device, a user indication that the highest scored query refinement is incorrect, the user indication being based on third input that is verbal input of the user at the user device.
9 . The non-transitory computer storage medium according to claim 8 , wherein the instructions, when executed by the one or more computers, further cause one or more of the computers to:
responsive to receiving the user indication that the highest scored query refinement is incorrect:
cause an alternate search result to be provided at the user device.
10 . The non-transitory computer storage medium according to claim 9 , wherein the alternate search result is responsive to the second query.
11 . The non-transitory computer storage medium according to claim 8 , wherein in scoring each query refinement one or more of the computers are to score each query refinement using historical data.
12 . The non-transitory computer storage medium according to claim 8 , wherein the first input of the user is verbal input.
13 . The non-transitory computer storage medium according to claim 8 , wherein in selecting, based on scores associated with the two or more query refinements, the highest scored query refinement, one or more of the computers are to select the highest scored query refinement in response to a highest score, of the scores and for the highest scored query refinement, satisfying a threshold score.
14 . A method implemented by one or more processors, the method comprising:
receiving a first query for a user session, the first query being generated based on first input of a user at a user device;
receiving a second query for the user session, the second query being different from the first query, the second query being subsequent to the first query in the user session without an intervening query, and the second query being generated based on second input of the user at the user device;
determining, based on the first query and the second query, two or more query refinements;
selecting, based on scores associated with the two or more query refinements, a highest scored query refinement from the two or more query refinements;
causing, in response to selecting the highest scored query refinement, a first search result, that is responsive to the highest scored query refinement, to be provided at the user device; and
receiving, responsive to the first search result being provided at the user device, a user indication that the highest scored query refinement is incorrect, the user indication being based on third input that is verbal input of the user at the user device.
15 . The method according to claim 14 , further comprising:
responsive to receiving the user indication that the highest scored query refinement is incorrect:
causing an alternate search result to be provided at the user device.
16 . The method according to claim 15 , wherein the alternate search result is responsive to the second query.
17 . The method according to claim 14 , wherein scoring each query refinement comprises using historical data.
18 . The method according to claim 14 , wherein the first input of the user is verbal input.
19 . The method according to claim 14 , wherein selecting, based on scores associated with the two or more query refinements, the highest scored query refinement, comprises selecting the highest scored query refinement in response to a highest score, of the scores and for the highest scored query refinement, satisfying a threshold score.
20 . The method according to claim 14 , wherein the scores associated with the two or more query refinements reflect respective likelihoods that the query refinements will be received by a search engine after the search engine receives the first query.