Automatic Information Retrieval
The search engine receives and stores the data set generated by native applications, generates a search result page, and provides a link to the viewing content to start viewing content in the native application, solving the difficulty in using user native application content in the prior art to improve the accuracy of search results in improving the accuracy of search results in the prior art The problem achieves a more comprehensive description and more accurate search results.
Patent Information
- Application Number
- CN202110528199.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2015-10-29
- Filing Date
- 2016-09-23
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2036-09-23
AI Technical Summary
The prior art is difficult to effectively utilize the user's native application content on mobile devices to improve the accuracy of search results.
Receive a collection of data generated by native applications from mobile devices through search engines, including data identifying native applications, representations of viewing content, and links to viewing content, and storing it with viewing content, generating search results pages, and providing them to viewing Links to content to start viewing content in native apps.
It realizes a more comprehensive description and search of native application content, improves the accuracy of search results, reduces the possibility of description errors, and provides better scalability.
Smart Images

Figure CN113407818B_ABST
Abstract
Description
[0001] Description of the case
[0002] This application is a divisional application of Chinese invention patent application No. 201680038242.7, filed on September 23, 2016. Technical Field
[0003] This specification relates to automatic information retrieval, such as by a search engine. Background Art
[0004] Digital content available on the Internet is often consumed by users on mobile devices. For example, mobile devices include native applications that provide users with access rights to digital content. Consumption of digital content is a type of user behavior that can be used to improve the accuracy of search results provided to users. Summary of the invention
[0005] In general, one innovative aspect of the subject matter described in this specification can be embodied as a method of making native application content accessed by a user available to a search engine. For example, in response to receiving a search query related to view content, the search engine can generate search results that include a reference to the view content. Specifically, the search engine can access a data set associated with the native application content within an index, and in response to receiving the search query, the search engine can use the stored data set to generate a search results page that references the view content and provides a link to the view content, which, when enabled, launches the native application.
[0006] Where the systems discussed herein collect personal information about a user or may use personal information, the user may be provided with the following opportunities: control whether a program or feature collects personal information - for example, information about the user's social network, social actions or activities, occupation, preferences of the user, or the user's current location; or control whether and / or how to receive content from a content server that may be more relevant to the user. In addition, before storing or using specific data, the specific data may be anonymized in one or more ways so that personally identifiable information may be removed. For example, the user's identity may be anonymized so that personally identifiable information cannot be determined for the user, or the user's geographic location may be generalized in the case of obtaining location information - such as to a city, ZIP code, or state level, so that the user's specific location cannot be determined. Therefore, the user may control how information about the user is collected and used by the content server.
[0007] Implementations may include one or more of the following features. For example, receiving, by a search engine from a mobile device, a data set generated by a native application on a mobile device, the data set including: (i) data identifying the native application; (ii) a representation of viewing content; and (iii) a link to the viewing content, the link launching the viewing content in the native application when selected; storing, by the search engine, (i) the data identifying the native application and (ii) the link to the viewing content in association with the viewing content; and using the stored data set in generating search results, the search results (i) referencing the viewing content and (ii) including a link to the viewing content, the link launching the viewing content in the native application when selected.
[0008] Other versions include corresponding systems and computer programs encoded on computer storage devices, configured to perform the actions of the methods.
[0009] One or more embodiments may include the following optional features. For example, in some embodiments, search results are returned to the user in response to a received search query. As a further example, the representation of the viewed content includes keywords from the viewed content, or an identifier associated with the viewed content.
[0010] In some embodiments, the data set further includes (iv) information identifying a user of the mobile device.
[0011] In some implementations, the access control list specifies whether viewing content is classified as private content or public content.
[0012] In some implementations, the link to view the content comprises a deep link.
[0013] In some implementations, using the stored data set in generating search results includes: receiving a search query from a second mobile device; identifying the viewing content as a response to the search query; determining that a native application is installed on the second mobile device; and in response to determining that the native application is installed on the second mobile device, generating search results that (i) reference the viewing content and (ii) include a link to the viewing content that, when selected, launches the viewing content in the native application. Alternatively, if it is determined that the native application is not installed on the second mobile device after receiving the search query and identifying the query content as a response to the search query, the method may include: determining another compatible platform to display the associated content on the second mobile device.
[0014] Specific embodiments of the subject matter described in this specification can be implemented to achieve one or more of the following advantages. For example, information stored in an application page index of a native application page can be obtained from the actual application page data, and thus can provide a more comprehensive description of the application content than that provided by metadata external to the native application and describing the native application. This can also provide the following capabilities to search engines: more accurately determine relevant metrics than those based on metadata related metrics describing the native application. Specifically, the application page index of the native application page can provide the search engine with the ability to present surface search results of native applications that take into account the actual data provided within the application page of the native application. This may be more accurate than relying solely on metadata describing the native application such as the title and description of the native application, and can also save content publishers from performing search engine optimization on the metadata to ensure that the native application can be identified in response to a specific query. Therefore, the embodiments of the subject matter described in this specification can provide improved search and retrieval, for example, the retrieved files match the search query more accurately.
[0015] An implementation method of accessing application page data in binary form can reduce the possibility of description errors, such as optical character recognition errors, generated when using technologies that obtain such data. In addition, accessing data in binary form can also identify data that will be hidden from the view, such as when a scrollable element must be driven to move the view within the application environment. The collection of application page data can use native applications as the source of application page data, so the collection of data describing the application can be completed in a more timely manner than collecting metadata from multiple different websites. Similarly, the collection of application page data in this manner may have better scalability than collecting metadata from multiple different websites.
[0016] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other potential features and advantages will be apparent from the description, drawings, and claims.
[0017] Other embodiments of these aspects include corresponding systems, apparatus, and computer programs encoded on computer storage devices, the computer programs configured to perform the actions of the methods. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1 An exemplary system that may be used to index native application data is illustrated.
[0019] Figure 2 An exemplary process that may be used to index native application data is illustrated.
[0020] Figure 3is a block diagram of a computing device that may implement the processes described herein, or portions thereof.
[0021] In the drawings, like reference numerals designate corresponding parts throughout. DETAILED DESCRIPTION
[0022] According to a general implementation, assuming that content consumption on native applications has increased significantly as the available content on mobile devices has increased, search engines will have access to user activity data generated by these native applications. Specifically, in addition to user activity data such as previously submitted search queries, content accessed through a web browser, or user responses to presented search results, search engines can also access user activity data generated by native applications that operate independently of the search engine. When the search engine takes this user activity data into account, it allows search results to be generated to reflect the vast majority of user activities on the mobile device, which improves search query performance.
[0023] Thus, techniques are described for making native application content available to a search engine for generating search results in response to subsequent search queries related to the native application content. Specifically, the search engine may store a data set associated with the native application content in an index and, in response to receiving a relevant search query, use the stored data set to generate a search result set that references the viewing content and provides a link to the viewing content that, when enabled, runs the native application.
[0024] As used herein, native applications can generate application pages to be displayed on a mobile device within the environment of native applications, and can be independent of the application operation on the mobile device. For example, native applications can be applications specifically designed to run on a specific mobile device operating system and machine firmware. Therefore, native applications are different from browser-based applications and browser-rendered resources. Whenever an element or instruction downloaded from a web server is instantiated or rendered, the latter may require all or at least some of the elements or instructions. In addition, browser-based applications and browser-rendered resources can be processed by all mobile devices with web capabilities in the browser, and are therefore not dedicated to the operating system.
[0025] To index data for native applications, the system can instantiate a virtual machine that simulates an operating system running on a mobile device. Within the virtual machine, the system can instantiate native applications that are specific to the operating system. For example, a native application can generate an application page for display on a mobile device within the native application and can operate independently of a browser application on the mobile device.
[0026] The system can access the application page of the native application within the virtual machine. For example, the system can access the page by using an automated process that explores the various menus and options for each application page and each subsequent application page. Alternatively, the system can access a specific application page specified by a specific publisher of the native application.
[0027] For each of the application pages, the system can generate application page data that describes the content of the application page. For example, the viewing content described by the application page data can include text displayed by the mobile device on the application page when the mobile device displays the application page, image data that defines an image of the application page to be rendered in the native application, list / menu data that describes various lists and menus of the application page, or other data that describes other features of the application page.
[0028] The application pages of the native application can be indexed in an index that can be searched by a search engine. For example, the search engine can combine web resource search results that reference web resources that can be rendered in a browser application on a mobile device with native application search results that specify a native application. The native application search results can be generated in part in response to an index search of the application pages of the native application.
[0029] The operation of the system to index application page data and the processing of search results for application pages is described in more detail below.
[0030] Figure 1 An exemplary system 100 that may be used to index native application data is illustrated. In general, a user 102a uses a native application 104a on a first mobile device 106a to access content, which may be sent to a search engine 110 as a data set 108a and stored in an index 120. The search engine 110 may then receive a subsequent search query 108b from a second mobile device 106b and, in response to the received search query 108b, generate a search results page 130. The user 102b of the second mobile device may then provide user input 134 on a link 132 included in the search results page 130, which then runs the native application 104b on the second mobile device 106b. (It should be noted that the terms "first mobile device" and "second mobile device" are used purely for ease of description, and, in principle, the first mobile device 106a and the second mobile device 106b may be the same mobile device - although Figure 1 A subsequent search query 108b is shown sent by a different mobile device 106b to a mobile device 106a that is accessing content using a native application 104a, but the subsequent search query could in principle be sent by the same mobile device 106a that is accessing content using a native application 104a.
[0031] In more detail, mobile devices 106a to 106b can be any type of mobile computing device including a mobile operating system, such as, for example, a smart phone, a tablet computer, or a laptop computer. Native applications 104a to 104b can be mobile applications that are installed on computer-readable storage media of mobile devices 106a to 106b, respectively, and are configured to be executed on the operating system of mobile devices 106a to 106b. For example, native applications 104a to 104b can be applications included in the operating system of mobile devices 106a to 106b, such as email applications, messaging applications, or applications installed from application stores, such as third-party news reader applications. In some cases, native applications 104a to 104b can also be provided by content providers to enable users 102a to 102b to access the viewing content displayed by native applications 104a to 104b, respectively.
[0032] In some embodiments, the native application 104a can extract data including a representation of the viewing content accessed by the user 102a on the native application 104a. The representation of the viewing content can include keywords extracted from the viewing content, or a hyperlink that directs the user 102a to the display of the viewing content on the native application 104a. For example, in some cases, the keyword can be a common term within the viewing content that can be used to identify the viewing content. In other cases, the hyperlink can be a deep link that transmits instructions to the mobile device 106a to execute the native application 104a to display the viewing content.
[0033] In some implementations, the data set 108 may also include user information for the user 102a. The user information may include a hardware device identifier for the mobile device 106a, account information related to a user account or subscription for the native application 104a, or other types of information that enables the search engine 110 to associate the data set 108 with the user 102a. For example, in some instances, demographic information related to the user 102a may be collected to aggregate data collected from a particular type of content available on the native application 104a.
[0034] In some embodiments, the data set 108 may also include an access control list that specifies whether viewing content accessed by, for example, user 102a should be classified as private content or public content. For example, an access control list may identify specific users and specify the access rights allowed, denied, or audited for each user. For example, data classified as private may include usage user information, such as account login and password, payment information, or other types of information that user 102a wishes to keep private. In other examples, data classified as public may include information that can be used to aggregate user activity data from multiple users accessing specific content on native application 104a. For example, data indicating articles read by user 102a, or search queries provided by user 102a on native application 104a can be used to aggregate data from multiple users to determine user activity patterns related to viewing content on native application 104a.
[0035] like Figure 1 As shown in the example of , user 102a can view news-related content on native application 104a, which can be a news reader application that provides news articles from a digital publication to user 102a. As shown, user 102b can use the news reader application to read an article titled "Life on Mars finally a reality." The news reader application can collect data sets 108a representing user activities on native application 104a, such as information related to news articles accessed by user 102a.
[0036] The search engine 110 can be a software system including a search infrastructure for receiving a data set 108 related to content on the native application 104a, and is designed to search for information on the Internet based on the received data set 108a and the search query 108b. For example, the search engine can be coupled to the search infrastructure via a network coupled to the mobile devices 106a to 106b. The search engine 10 can be implemented in software, firmware, hardware, or any combination. For example, in some embodiments, the search engine 110 can be integrated into a server that can communicate with or be part of a web server (not shown). In such an embodiment, the search engine 110 can search for information on the Internet via a corresponding browser running on a remote client device such as, for example, the mobile devices 106a and 106b.
[0037] The search engine 110 can access the received data set 108a to extract information from the data set 108a and store the information in the index 120. For example, the search engine 110 can use a common search engine indexing technique used by the search engine architecture to generate the index 120. The extracted information in the index 120 can be stored in the view content information table 122.
[0038] like Figure 1 As shown in the example in FIG. 1 , the viewing content information table 122 may include information related to the viewing content accessed by the user 102a in the native application 104a. As shown in the figure, for example, the viewing content information table 122 includes a “TIMESTAMP” indicating when the user 102a accessed the viewing content in the native application 104a, a “LINK INFO” indicating the link information used by the native application 104a to load the viewing content, an “APP ID” indicating a unique application identifier associated with the native application 104a, and a “CONTENT TYPE” classifying the type of content appearing on the native application 104a.
[0039] Search engine 110 may also receive search queries from users. Figure 1 As shown in the example in FIG. 1 , the search engine 110 receives a search query 108 b for the term “PLANET” that is sent using the mobile device 106 b. In response to receiving the search query 108 b, the search engine 110 may determine information related to the terms included in the search query 108 b within the view content information table 122 based on comparing the terms included in the search query 108 b with the information included in the index 120. For example, as shown, the search engine 110 may determine that the view content appearing on the native application 104 a is related to the search query 108 b “PLANET” because the view content information table 122 indicates that the title of the news article “Life on Mars finally a reality” includes the related term “MARS”. The search engine 110 may then generate a search results page 130 on the mobile device 106 b in response to receiving the search query 108 b. For example, the search results page 130 may be displayed in a web browser on the mobile device 106 b.
[0040] like Figure 1As shown in the example of , search results page 130 includes a reference to view content in native application 104a based on search engine 110 determining that search query 108 is related to information included in view content information table 122 of index 120. Search results page 130 includes link 132, which can be activated by user input 134. For example, user input 134 can include: for example, "clicking" using a mouse or touch input over the text of link 132. Once link 132 is activated, mobile device 106b runs the view content in native application 104b.
[0041] In some implementations, the link 132 may be a deep link having embedded information that provides a set of computer-implemented instructions to the mobile device 106 b to run the native application 104 b to render content associated with the information included in the view content information table 122 .
[0042] In some implementations, the search engine 110 may perform additional or alternative operations related to the native application 104b in response to receiving the search query 108b. For example, the search engine 110 may initially determine whether the view content in the view content information table 112 is responsive to the search query 108b, and in response to determining that the view content is responsive to the search query 108b, generate a search results page 130. In this case, if the view content is determined to be responsive to the search query 108b, the search engine 110 may only include the link 132 in the search results page 130. For example, if the search query 108b does not include terms related to the information in the view content information table 122, the search engine may ignore the data set 108a in the index 120 when generating the search results page 130.
[0043] like Figure 1 As shown in the example in , search result page 130 includes a hyperlink to a "News Reader" native application that displays a news article titled "Life on Mars finally a reality". Upon receiving user input to activate the hyperlink, mobile device 106b can then run the "News Reader" native application to display the news article "Life on Mars finally a reality". As depicted in the example, system 100 can be used to associate common news article content that may be of interest between users 102a and 102b based on search engine 110 receiving data indicating that users 102a and 102b may be interested in similar topics related to space.
[0044] In some implementations, after user 102b activates link 132, mobile device 106b may then transmit data set 108c to search engine 110, which then updates view content information table 112 of shared content between native applications 104a and 104b. In such implementations, search engine 110 may recursively generate index 120 after subsequent users access associated view content to collect aggregate information of view content based on content from multiple users.
[0045] In some examples, native application 104b may be a different application than native application 104a that displays the same content. In this example, the content provider may provide viewing content on different types of native applications running on the mobile device. For example, the viewing content may be a news article published on multiple mobile platforms and accessed by various native applications.
[0046] In some instances where the native application 104b is not installed on the mobile device 106b when the user 102b activates the link 132, the system 100 may also determine another compatible platform to display the associated content. Figure 1 In the example of FIG. 1 , in addition to the mobile device 106 b running the native application 104 b , the mobile device 106 b may also display the news article on a web browser application on the mobile device 106 b .
[0047] Figure 2 An exemplary process 200 is illustrated that may be used to index native application data. Briefly, process 200 may include receiving a data set (210), storing the data set (220), and using the stored data set (230).
[0048] In more detail, process 200 may include receiving a data set (210). For example, search engine 110 may receive, from mobile device 106a, a data set 108a generated by native application 104a on mobile device 106a. Data set 108a may include data identifying native application 104a, a representation of the viewing content, and a link to the viewing content that, when selected, runs the viewing content in native application 104a. For example, Figure 1 As shown, the viewing content may be a news article displayed on a native application 104a, which may be a news reading application.
[0049] Process 200 may include storing a data set (220). For example, search engine 110 may store data identifying native application 104a and a link to the viewed content in association with the viewed content. Figure 1As shown, the index 120 may include a view content information table 122 that includes information from the received data set 108a. For example, the information may include a timestamp that occurred when the user 102a accessed the view content, information about a link to the view content, a native application identifier that identifies the native application 104a, or a category of the view content.
[0050] Process 200 may include using a stored data set (230). For example, in response to a search query, such as search query 108b from mobile device 106b, search engine 110 may use the stored data set on index 120 to generate search results page 130. For example, search results page 130 may reference view content and may include link 132 that, when selected, runs the view content in native application 104b. A user may select link 132 by using user input 134. In some instances, after user input 134, data set 108c may be transmitted to search engine 110, which then updates index 120 after mobile device 106b accesses native application 104b.
[0051] Figure 3 300 is a block diagram of a computing device 300 that can be used to implement the systems and methods described herein, either as a client or a server or multiple servers. Computing device 300 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.
[0052] The computing device 300 includes a processor 302, a memory 304, a storage device 306, a high-speed interface 308 connected to the memory 304 and a high-speed expansion port 310, and a low-speed interface 312 connected to a low-speed bus 314 and the storage device 306. Each of the components 302, 304, 306, 308, 310 and 312 is interconnected by using various buses and can be mounted on a common motherboard in other ways when appropriate. The processor 302 can process instructions executed within the computing device 300, including: graphical information stored in the memory 304 or on the storage device 306 for display on an external input / output device, such as a display 316 coupled to the high-speed interface 308. In other embodiments, multiple processors and / or multiple buses can be used together with multiple memories and multiple types of memories when appropriate. Similarly, multiple computing devices 300 can be connected together with each device providing a portion of the necessary operations, for example, as a server group, a group of blade servers, or a multi-processor system.
[0053] The computing device 300 can be implemented in a variety of different forms, as shown. For example, the computing device 300 can be implemented as a standard server 320, or can be implemented multiple times in a group of such servers. The computing device 300 can also be implemented as part of a rack server system 324. In addition, the computing device 300 can also be implemented in a personal computer, such as a laptop computer 322. Alternatively, components from the computing device 300 can be combined with other components in a mobile device (not shown). Each of these devices can contain one or more computing devices 300, and the entire system can be composed of multiple computing devices 300 that communicate with each other.
[0054] Various embodiments of the systems and techniques described herein may be implemented in digital electronic circuit systems, integrated circuit systems, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations of these embodiments. Various such embodiments may include embodiments in one or more computer programs that are executable and / or interpretable on a programmable system that includes at least one programmable processor that may be dedicated or general purpose, coupled to receive data and instructions from a storage system, at least one input device, and at least one output device, and to send instructions and data to a storage system, at least one input device, and at least one output device. Various such embodiments may additionally or alternatively include embodiments in a computer-readable medium having stored thereon instructions that, when executed by one or more computers, cause the one or more computers to perform the methods of the present invention.
[0055] The systems and techniques described herein may be implemented in a computing system that includes a back-end component, such as a data server, or includes a middleware component, such as an application server, or includes a front-end component, such as a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described herein, or includes any combination of such back-end components, middleware components, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication, such as a communication network. Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), and the Internet.
[0056] Many embodiments have been described. Nevertheless, it will be appreciated that various modifications may be made without departing from the spirit and scope of the invention. In addition, the logic flows depicted in the accompanying drawings do not require only the particular order or sequential order shown to achieve the desired results. In addition, other steps may be provided, or steps may be removed from the described processes, and other components may be added to or removed from the described systems. Therefore, other embodiments are within the scope of the claims.
Claims
1. A computer-implemented method comprising: executing a particular native application on a mobile device associated with a particular user; sending, from the mobile device to a search engine, a data set generated by the particular native application on the mobile device, the data set comprising: (i) data identifying the particular native application; and (ii) a representation of viewed content, the viewed content being displayed by the particular native application on the mobile device and determined to be viewed by the particular user; executing, on the mobile device, an application different from the particular native application; receiving, at the mobile device, a query as input in the application; sending the query from the mobile device to the search engine; receiving search results from the search engine, the search results including at least one search result referencing the viewed content, the at least one search result having been generated in response to a query by the particular user and the data set generated by the particular native application and sent to the search engine; and The search results are displayed at the mobile device.
2. The method according to claim 1, wherein: The representation of the viewed content includes keywords from the viewed content, or an identifier associated with the viewed content.
3. The method according to claim 1, wherein: The data set further includes an access control list specifying whether the viewing content is classified as private content or public content.
4. The method according to claim 1, wherein: The at least one search result includes a link to the viewing content, the link launching the viewing content in the particular native application when selected.
5. The method according to claim 1, wherein: The application different from the specific native application is a web browser.
6. The method according to claim 1, wherein: The application different from the specific native application is a search application.
7. A mobile device, comprising: Computer hardware, including a communication system, a processor system, and an input / output system; as well as a non-transitory computer-readable medium coupled to the computer hardware and having instructions stored thereon that, when executed by the computer hardware, cause the computer hardware to perform operations comprising: executing a particular native application on a mobile device associated with a particular user; sending, from the mobile device to a search engine, a data set generated by the particular native application on the mobile device, the data set comprising: (i) data identifying the particular native application; and (ii) a representation of viewed content, the viewed content being displayed by the particular native application on the mobile device and determined to be viewed by the particular user; executing, on the mobile device, an application different from the particular native application; receiving, at the mobile device, a query as input in the application; sending the query from the mobile device to the search engine; receiving search results from the search engine, the search results including at least one search result referencing the viewed content, the at least one search result having been generated in response to a query by the particular user and the data set generated by the particular native application and sent to the search engine; and The search results are displayed at the mobile device.
8. The mobile device according to claim 7, wherein: The representation of the viewed content includes keywords from the viewed content, or an identifier associated with the viewed content.
9. The mobile device according to claim 7, wherein: The data set further includes an access control list specifying whether the viewing content is classified as private content or public content.
10. The mobile device according to claim 7, wherein: The at least one search result includes a link to the viewing content, the link launching the viewing content in the particular native application when selected.
11. The mobile device according to claim 7, wherein: The application different from the specific native application is a web browser.
12. The mobile device according to claim 7, wherein: The application different from the specific native application is a search application.
13. A non-transitory computer-readable medium having instructions stored thereon, the instructions, when executed by a mobile device, causing the mobile device to perform operations comprising: executing a particular native application on a mobile device associated with a particular user; sending, from the mobile device to a search engine, a data set generated by the particular native application on the mobile device, the data set comprising: (i) data identifying the particular native application; and (ii) a representation of viewed content, the viewed content being displayed by the particular native application on the mobile device and determined to be viewed by the particular user; executing, on the mobile device, an application different from the particular native application; receiving, at the mobile device, a query as input in the application; sending the query from the mobile device to the search engine; receiving search results from the search engine, the search results including at least one search result referencing the viewed content, the at least one search result having been generated in response to a query by the particular user and the data set generated by the particular native application and sent to the search engine; and The search results are displayed at the mobile device.
Citation Information
Patent Citations
System and method for improving access to search results
CN104067274A
Methods and systems for searching software applications
EP2846273A1