Generating Search Results Using Current Software Application States
Techniques include receiving a search query and an indication of a current application (app) state of a software app executing on a user device from the device and identifying app state records based on the query and, e.g., the indication. In this example, each app state record includes an app access mechanism (AAM) and app state information (ASI). The AAM references a software app and indicates operations for the app to perform. The ASI describes an app state of the software app after performing the operations. In some examples, the techniques further include generating result scores for the identified app state records based on the indication and selecting one or more of the records based on the scores. The techniques also include selecting one or more AAMs from the identified (and, e.g., selected) app state records and transmitting the AAMs to the user device as search results.
1 . A method comprising:
receiving a search query from a user device;
receiving an indication of a current application (app) state of a native app executing on the user device from the device;
identifying one or more app state records based on the search query and based on the indication, each app state record including an app access mechanism (AAM) and app state information (ASI), wherein the AAM references a native app and indicates one or more operations for the app to perform, and wherein the ASI describes an app state of the app after the app has performed the one or more operations;
selecting the one or more AAMs from the identified one or more app state records; and
transmitting the selected one or more AAMs to the user device.
2 . The method of claim 1 , wherein the indication of the current app state indicates one or more terms associated with the current app state, and wherein identifying the one or more app state records based on the indication comprises identifying each record based on one or more matches between the one or more terms associated with the current app state and one or more terms of the ASI included in the record.
3 . The method of claim 1 , wherein the indication of the current app state indicates one or more categories associated with the current app state, wherein each of the identified one or more app state records indicates one or more categories associated with the app state described by the ASI included in the record, and wherein identifying the one or more app state records based on the indication comprises identifying each record based on one or more matches between the one or more categories associated with the current app state and the one or more categories indicated by the record.
4 . The method of claim 3 , wherein the one or more categories associated with the current app state comprise one or more categories associated with the native app executing on the user device.
5 . The method of claim 3 , wherein the one or more categories indicated by at least one of the identified one or more app state records comprise one or more categories associated with the native app referenced by the AAM included in the record.
6 . The method of claim 3 , wherein the indication of the current app state indicates one or more terms associated with the current app state, the method further comprising identifying the one or more categories associated with the current app state based on one or more matches between the one or more terms associated with the current app state and one or more terms included in a category data store.
7 . The method of claim 1 , wherein the indication of the current app state indicates one or more entities associated with the current app state, wherein each of the identified one or more app state records indicates one or more entities associated with the app state described by the ASI included in the record, and wherein identifying the one or more app state records based on the indication comprises identifying each record based on one or more matches between the one or more entities associated with the current app state and the one or more entities indicated by the record.
8 . The method of claim 7 , wherein the indication of the current app state indicates one or more terms associated with the current app state, the method further comprising identifying the one or more entities associated with the current app state based on one or more matches between the one or more terms associated with the current app state and one or more terms included in an entity data store.
9 . The method of claim 1 , wherein identifying the one or more app state records based on the search query comprises identifying each record based on one or more matches between one or more terms of the search query and one or more terms of the ASI included in the record.
10 . The method of claim 1 , wherein the indication of the current app state comprises one or more of the following:
one or more of textual data, numerical data, and machine-readable data that describe the state;
an app state identifier (ID) included in an app state record that specifies the current app state, wherein the app state ID is configured to identify the app state record;
an AAM that references the native app executing on the user device and indicates one or more operations for the app to perform, and wherein the app performing the one or more operations sets the app into the current app state; and
an indication of one or more operations performed by a user of the user device with respect to the native app executing on the user device to set the app into the current app state.
11 . The method of claim 1 , wherein receiving the indication of the current app state comprises one of the following:
receiving the indication and determining the current app state using the indication and a version of the native app executing at a search system; and
receiving the indication and determining the current app state using the indication and a virtual machine (VM) version of the native app executing at a search system.
12 . A method comprising:
receiving a search query from a user device;
receiving an indication of a current application (app) state of a native app executing on the user device from the device;
identifying one or more app state records based on the search query, each app state record including an app access mechanism (AAM) and app state information (ASI), wherein the AAM references a native app and indicates one or more operations for the app to perform, and wherein the ASI describes an app state of the app after the app has performed the one or more operations;
generating a result score for each of the identified one or more app state records based on the indication;
selecting one or more app state records from the identified one or more app state records based on the one or more result scores;
selecting the one or more AAMs from the selected one or more app state records; and
transmitting the selected one or more AAMs to the user device.
13 . The method of claim 12 , wherein the indication of the current app state indicates one or more terms associated with the current app state, and wherein generating the result score for each of the identified one or more app state records based on the indication comprises generating the result score based on one or more matches between the one or more terms associated with the current app state and one or more terms of the ASI included in the record.
14 . The method of claim 12 , wherein the indication of the current app state indicates one or more categories associated with the current app state, wherein each of the identified one or more app state records indicates one or more categories associated with the app state described by the ASI included in the record, and wherein generating the result score for each of the identified one or more app state records based on the indication comprises generating the result score based on one or more matches between the one or more categories associated with the current app state and the one or more categories indicated by the record.
15 . method of claim 12 , wherein the indication of the current app state indicates one or more entities associated with the current app state, wherein each of the identified one or more app state records indicates one or more entities associated with the app state described by the ASI included in the record, and wherein generating the result score for each of the identified one or more app state records based on the indication comprises generating the result score based on one or more matches between the one or more entities associated with the current app state and the one or more entities indicated by the record.
16 . The method of claim 12 , wherein generating the result score for each of the identified one or more app state records based on the indication comprises generating the result score using the current application state as a scoring feature input into a machine-learned relevance (MLR) model.
17 . The method of claim 16 , further comprising generating the result score for each of the identified one or more app state records using each of one or more of the search query and the record as a scoring feature input into the MLR model.
18 . The method of claim 16 , wherein the MLR model comprises one or more of a gradient-boosted decision tree and a logistic probability formula.
19 . A system comprising one or more computing devices configured to:
receive a search query from a user device;
receive an indication of a current application (app) state of a native app executing on the user device from the device;
identify one or more app state records based on the search query and based on the indication, each app state record including an app access mechanism (AAM) and app state information (ASI), wherein the AAM references a native app and indicates one or more operations for the app to perform, and wherein the ASI describes an app state of the app after the app has performed the one or more operations;
select the one or more AAMs from the identified one or more app state records; and
transmit the selected one or more AAMs to the user device
20 . A system comprising one or more computing devices configured to:
receive a search query from a user device;
receive an indication of a current application (app) state of a native app executing on the user device from the device;
identify one or more app state records based on the search query, each app state record including an app access mechanism (AAM) and app state information (ASI), wherein the AAM references a native app and indicates one or more operations for the app to perform, and wherein the ASI describes an app state of the app after the app has performed the one or more operations;
generate a result score for each of the identified one or more app state records based on the indication;
select one or more app state records from the identified one or more app state records based on the one or more result scores;
select the one or more AAMs from the selected one or more app state records; and
transmit the selected one or more AAMs to the user device.