1. Technical Field
The present teaching relates to methods, systems, and programming for content search. Particularly, the present teaching is directed to methods, systems, and programming for content search on a user device.
2. Discussion of Technical Background
Online content search is a process of interactively searching for and retrieving requested information via a search application running on a local user device, such as a computer or a mobile device (handheld or portable device), e.g., a smart phone, tablet, music player, handled gaming console, global positioning system (GPS), from online databases. Content search is conducted through search engines, which are programs running at a remote server and searching documents for specified keywords and return a list of the documents where the keywords were found.
Apparently, the current mobile search experience is disjointed in the prior art as shown in
Therefore, there is a need to provide an improved solution for content search on a user device to solve the above-mentioned problems.
The present teaching relates to methods, systems, and programming for content search. Particularly, the present teaching is directed to methods, systems, and programming for content search on a user device.
In one example, a method, implemented on at least one machine each of which has at least one processor, storage, and a communication platform connected to a network for content search, is disclosed. A user interface configured based on context information is presented within a host application. A plurality of selectable search results are then fetched based on the context information and a query received from a user through the user interface. An input associated with a selection of one or more selectable search results is received from the user through the user interface. The user interface is updated based on the plurality of selectable search results. In response to the selection, the one or more selected search results are provided to the host application with the context information.
In another example, a method, implemented on at least one machine each of which has at least one processor, storage, and a communication platform connected to a network for content search, is disclosed. Context information including user attributes and/or content features is provided to an integrated search module. A user interface of the integrated search module configured based on the context information is then arranged. One or more search results are received with the context information from the integrated search module. The one or more search results are processed based on the context information. The processed one or more search results are eventually provided to a user. The one or more search results are selected from a plurality of selectable search results by the user through the user interface. The plurality of selectable search results are fetched by the integrated search module based on the context information and a query received from the user through the user interface.
In a different example, a system for content search is disclosed. The system comprises a host application and an integrated search module. The integrated search module comprises a user interface controller and a search result controller. The user interface controller is configured to present, within the host application, a user interface configured based on context information. The search result controller is configured to fetch a plurality of selectable search results based on the context information and a query received from a user through the user interface. The search result controller is also configured to receive an input associated with a selection of one or more selectable search results from the user through the user interface. The user interface is updated based on the plurality of selectable search results. The search result controller is further configured to, in response to the selection, provide the one or more selected search results to the host application with the context information.
In another example, an apparatus is disclosed. The apparatus comprises one or more processors, a memory, a communication platform, and one or more input/output devices. The one or more processors are configured to execute a host application and an integrated search module. The memory is configured to store the host application and the integrated search module. The integrated search module, when executed by the one or more processors, causes the apparatus to perform a series of steps. A user interface configured based on context information is presented within a host application. A plurality of selectable search results are then fetched based on the context information and a query received from a user through the user interface. An input associated with a selection of one or more selectable search results is received from the user through the user interface. The user interface is updated based on the plurality of selectable search results. In response to the selection, the one or more selected search results are provided to the host application with the context information. The host application, when executed by the one or more processors, causes the apparatus to perform a series of steps. The one or more selected search results are processed by the host application based on the context information. The processed one or more search results are presented to the user. The communication platform is configured to send the query and the context information to a search engine and receive the plurality of selectable search results from the search engine. The one or more input/output devices are configured to interact with the user through the user interface.
Other concepts relate to software for content search. A software product, in accord with this concept, includes at least one machine-readable non-transitory medium and information carried by the medium. The information carried by the medium may be executable program code data regarding parameters in association with a request or operational parameters, such as information related to a user, a request, or a social group, etc.
In one example, a machine readable and non-transitory medium having information recorded thereon for content search recorded thereon, wherein the information, when read by the machine, causes the machine to perform a series of steps. A user interface configured based on context information is presented within a host application. A plurality of selectable search results are then fetched based on the context information and a query received from a user through the user interface. An input associated with a selection of one or more selectable search results is received from the user through the user interface. The user interface is updated based on the plurality of selectable search results. In response to the selection, the one or more selected search results are provided to the host application with the context information.
The methods, systems, and/or programming described herein are further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. However, it should be apparent to those skilled in the art that the present teachings may be practiced without such details. In other instances, well known methods, procedures, systems, components, and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present teachings.
The present disclosure describes method, system, and programming aspects of efficient and effective content search on a user device. The method and system as disclosed herein aim at improving the end-users' search experience and providing an end-to-end search solution to application developers. For end-users, the method and system allow host applications to provide contextual information that would improve the accuracy of the search. Upon the display of the results, users can interact and select one or more results, which the method and system then return the semantic data of the selected result for the host application to provide continuous and seamless processing to complete users' current tasks. The method and system provide a fast way for users to obtain a correct result by bringing search within the host application and reducing time spent on disambiguation. As to the developers of the host applications, the method and system as disclosed herein significantly reduce the implementation time of an integrated search function.
Additional advantages and novel features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The advantages of the present teachings may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.
The integrated search module 304 may be, for example, a software library in the form of compiled binary that can be integrated in the host application 302 by third-party developers of the host application 302 on various mobile operating systems, e.g., iOS, Android, Windows Phone, etc. The library may include application programming interfaces (APIs) allowing developers of the host application 302 to configure user interfaces, e.g., a search box, and other functionalities and features of the integrated search module 304, as descried in detail below. In this example, the integrated search module 304 may collect context information associated with the search from the host application 302, other components of the user device 306, and the user 308. The context information includes any information related to the user and/or the search content (search results) and that facilitates the search performed by the integrated search module 304 and the current user tasks performed by the host application. The context information may include user attributes such as but not limited to user's personal data, demographic data, interest, location, online activity history. The context information may also include content features such as category, topic, and timeliness of the desired search results. The context information may be entered by the user 308, retrieved and analyzed from user activity log files stored on the user device 306 or online, or fetched from the host application 302. In this example, the nature of the host application 302 (e.g., the type and characters of the host application 302) may be part of the context information. For example, a music layer application suggests that the categories of the desired search results include at least artists and music records. As noted above, in some examples, a single integrated search Module 304 may serve multiple host applications 302. In these examples, more context information may be collected from the multiple host applications 302 and combined across the multiple host applications 302 to serve even more relevant search results.
Search queries along with the associated context information are sent to one or more search engines 310, which return one or more selectable search results for the user 308 to perform a selection-based search. Each of the selectable search results may be an object with one or more attributes. For example, a selectable point of interest (POI) may contain multiple static attributes such as phone number, address, name, hours of operation, and dynamic attributes, such as weather. Different from the browsing-based search, at least one selectable search result is not associated with a webpage, i.e., does not contain a hyperlink, such that clicking on that search result would not cause further navigation of the search, but instead, would cause the search result being selected and returned to the host application 302. In this example, the user 308 performs a full selection-based search, i.e., all the returned search results are selectable and do not contain hyperlinks. It is understood that, in other examples, the user 308 may perform a partial selection-based search or a hybrid selection-browsing based search. That is, a selectable search result may optionally contain a destination hyperlink in addition to other attributes. This link is not necessarily activated as part of the user's search experience. Rather, it may be used by the host application 302 to enable post search contextual processing experience. In one example, some of the returned search results are selectable only while other search results contain hyperlinks. In another example, the user 308 may choose to either select/transfer a search result to the host application 302 if the result is clear and desirable, or further browse from the search result if necessary. In any event, the selected contextual result(s), i.e., the selected search result(s) with associated context information, e.g., semantic data, are provided directly by the integrated search module 304 to the host application 302 without user intervention. The host application 302 then may process the one or more selected search results based on the context information and present the processed search results to the user 308. In other words, the host application 302 completes the user's 308 current tasks based on the selected contextual result(s) in a continuous and seamless manner.
The search context controller 406 in this example is responsible for organizing all the context information collected by the search manager 404 into categories and converting them into part of the user interface configuration 414. The context information categories may include POI, movie, spelling, language translation, image, local information, and video, to name a few. Corresponding user interface configuration 414 may be determined based on the context information categories. Referring now to
Referring back to
The search manager 404 in this example serves as a coordinator of the integrated search module 304 and as an interface between the host application 302 and the integrated search module 304, for example, for collecting context information from the host application 302 and providing selected contextual results to the host application 302. The details of the search manager 404 are described in
The search query controller 508 in this example is configured to extract search query from the user's input, e.g., typing in the search box, via the search user interface 402. The extracted search query, along with the associated context information, is fed into the search result controller 510 for generating a search request to the search engine 310. It is understood that the search query and its associated context information may be generated synchronously or asynchronously. In one example, the context information may be continuously collected and generated once the host application 302 is launched regardless of whether a search query is received. Once the search query is received, the most-recent context information is automatically associated with the search query in an asynchronous manner. In another example, the context information may be collected once the user starts to type in the search box or configure the search, e.g., select the selection mode or presentation details, in a synchronous manner. The search result controller 510 is also configured to forward the received selectable results 416 to the user interface controller 512. The user interface controller 512 is responsible for creating the search user interface 402 in accordance with the user interface configuration 414 and updating the search user interface 402 with the selectable results 416.
As discussed above, a partial selection-based search or a hybrid selection-browsing based search may be applied in the example shown in
At block 808, processing may continue where the user interface within the host application 302 is updated based on the plurality of selectable search results, for example, by the integrated search module 304. All the selectable search results may be presented through the user interface for the user to select. At block 810, an input associated with a selection of one or more selectable search results is received from the user through the user interface, for example, by the integrated search module 304. Moving to block 812, in response to the selection, the one or more selected search results are provided for example, by the integrated search module 304 to the host application 302 with the context information. That is, the selected contextual search results are forwarded directly to the host application 302 without user intervention. At block 814, the one or more selected search results are processed by the host application 302 based on the context information. At block 814, the processed one or more search results are presented to the user within the host application 302. That is, the selected contextual search results facilitate the host application 302 to complete the current user tasks in a continuous and seamless manner. Although the processing in
Users 308 may be of different types such as users connected to the network 902 via different user devices 306 having the integrated search module 304, including for example, desktop computers 306-1, laptop computers 306-2, a built-in device in a motor vehicle 306-3, or a mobile device 306-4. The user devices 306 may send a request associated with a search query and context information to the search engine 310 via the network 902 based on user's 308 inputs and receive query results from the search engine 310. The search engine 310 in this example may work as backend support to provide desired query results to the user devices 306. That is, the user devices 306 in this example may use the search engine 310 as a vendor to process a search query in the user request.
The content sources 904 include multiple content sources 904-1, 904-2, . . . , 904-3. A content source may correspond to a web site hosted by an entity, whether an individual, a business, or an organization such as USPTO.gov, a content provider such as cnn.com and Yahoo.com, a social network website such as Facebook.com, or a content feed source such as TWITTER or blogs. The search engine 310 and the user devices 306 may access information from any of the content sources 904-1, 904-2, . . . , 904-3. For example, the search engine 310 may fetch content, e.g., websites, through its web crawler to build a search index. The host applications 302 on the user devices 306 may obtain any additional information to provide context information for search or any necessary content for completing the current user tasks.
To implement the present teaching, computer hardware platforms may be used as the hardware platform(s) for one or more of the elements described herein. The hardware elements, operating systems, and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to implement the processing essentially as described herein. A computer with user interface elements may be used to implement a personal computer (PC) or other type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming, and general operation of such computer equipment and as a result the drawings should be self-explanatory.
The computer 1400, for example, includes COM ports 1402 connected to and from a network connected thereto to facilitate data communications. The computer 1400 also includes a central processing unit (CPU) 1404, in the form of one or more processors, for executing program instructions. The exemplary computer platform includes an internal communication bus 1406, program storage and data storage of different forms, e.g., disk 1408, read only memory (ROM) 1410, or random access memory (RAM) 1412, for various data files to be processed and/or communicated by the computer, as well as possibly program instructions to be executed by the CPU. The computer 1400 also includes an I/O component 1414, supporting input/output flows between the computer and other components therein such as user interface elements 1416. The computer 1400 may also receive programming and data via network communications.
Hence, aspects of the method of distributed machine learning, as outlined above, may be embodied in programming. Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Tangible non-transitory “storage” type media include any or all of the memory or other storage for the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide storage at any time for the software programming.
All or portions of the software may at times be communicated through a network such as the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another. Thus, another type of media that may bear the software elements includes optical, electrical, and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, which may be used to implement the system or any of its components as shown in the drawings. Volatile storage media include dynamic memory, such as a main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that form a bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium; punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
Those skilled in the art will recognize that the present teachings are amenable to a variety of modifications and/or enhancements. For example, although the implementation of various components described above may be embodied in a hardware device, it can also be implemented as a software only solution—e.g., an installation on an existing server. In addition, the units of the host and the client nodes as disclosed herein can be implemented as a firmware, firmware/software combination, firmware/hardware combination, or a hardware/firm ware/software combination.
While the foregoing has described what are considered to be the best mode and/or other examples, it is understood that various modifications may be made therein and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.
Number | Name | Date | Kind |
---|---|---|---|
7100123 | Todd et al. | Aug 2006 | B1 |
7308439 | Baird et al. | Dec 2007 | B2 |
7797301 | Baird et al. | Sep 2010 | B1 |
7966352 | Madan et al. | Jun 2011 | B2 |
8099436 | Baird et al. | Jan 2012 | B2 |
20020188603 | Baird et al. | Dec 2002 | A1 |
20060271520 | Ragan | Nov 2006 | A1 |
20090132969 | Mayer | May 2009 | A1 |
20110047137 | Baird et al. | Feb 2011 | A1 |
20110099464 | Marashi et al. | Apr 2011 | A1 |
20120089587 | Baird et al. | Apr 2012 | A1 |
20120221565 | Bartomeli et al. | Aug 2012 | A1 |
20120260158 | Steelberg | Oct 2012 | A1 |
20120323704 | Steelberg et al. | Dec 2012 | A1 |
Number | Date | Country | |
---|---|---|---|
20130275456 A1 | Oct 2013 | US |