The present disclosure relates generally to providing search suggestions within a network environment cloud infrastructure client instance (also referred to herein as a client instance or instance).
This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Organizations, regardless of size, rely upon access to information technology (IT) and data and services for their continued operation and success. A respective organization's IT infrastructure may have associated hardware resources (e.g. computing devices, load balancers, firewalls, switches, etc.) and software resources (e.g. productivity software, database applications, custom applications, and so forth). Over time, more and more organizations have turned to cloud computing approaches to supplement or enhance their IT infrastructure solutions.
Cloud computing relates to the sharing of computing resources that are generally accessed via the Internet. In particular, a cloud computing infrastructure allows users, such as individuals and/or enterprises, to access a shared pool of computing resources, such as servers, storage devices, networks, applications, and/or other computing based services. By doing so, users are able to access computing resources on demand that are located at remote locations, which resources may be used to perform a variety of computing functions (e.g., storing and/or processing large quantities of computing data). For enterprise and other organization users, cloud computing provides flexibility in accessing cloud computing resources without accruing large up-front costs, such as purchasing expensive network equipment or investing large amounts of time in establishing a private network infrastructure. Instead, by utilizing cloud computing resources, users are able redirect their resources to focus on their enterprise's core functions.
A cloud-based information technology platform may include a virtual server that enables aspects of a client instance. One or more software applications running in the client instance may enable a user to search for information by, for example, entering a search query into a search field provided in the application and returning search results based on the search query. However, it may be tedious or inefficient, particularly in cases where the user is accessing the client instance via a mobile device, for the user to enter a full or complete search query.
A summary of certain embodiments disclosed herein is set forth below. It should be understood that these aspects are presented merely to provide the reader with a brief summary of these certain embodiments and that these aspects are not intended to limit the scope of this disclosure. Indeed, this disclosure may encompass a variety of aspects that may not be set forth below.
As presently disclosed, a cloud-based information technology platform may include a virtual server that enables a network environment cloud infrastructure client instance (also referred to herein as a client instance or instance). A software application (e.g., a browser application, a productivity suite application, a map application, a mobile application, and so forth) running in the client instance may enable a user to search for information by, for example, entering a search query into a search field and returning search results based on the search query. To create a more user-friendly experience, particularly in the case where the user is accessing the client instance via a mobile device, the application may suggest search queries (also referred to herein as search suggestions) as the user is entering the search query. That is, the application may suggest the search suggestions based on a partial search query.
The search suggestions may include user search suggestions that are based on previous search queries performed by the user and instance search suggestions that are based on previous search queries performed on the instance. In some embodiments, the application may filter the instance search suggestions based on filter criteria associated with the user or a device being employed by the user, such as an interface (e.g., mobile or web portal) used by the user, a search context (e.g., associated with a software application or page at which the search query is entered), user group that the user belongs to, domain used by the user, and so on. The application may remove or downweight search suggestions that include blacklisted terms. The application running on the client instance may rank the search suggestions (e.g., based on frequency and/or recency) and enable the user to select those ranked search suggestions that meet or exceed a threshold. In this manner, the application may provide relevant search suggestions to the user without the user having to enter a full search query, saving time and providing a better user experience.
Various refinements of the features noted above may exist in relation to various aspects of the present disclosure. Further features may also be incorporated in these various aspects as well. These refinements and additional features may exist individually or in any combination. For instance, various features discussed below in relation to one or more of the illustrated embodiments may be incorporated into any of the above-described aspects of the present disclosure alone or in any combination. The brief summary presented above is intended only to familiarize the reader with certain aspects and contexts of embodiments of the present disclosure without limitation to the claimed subject matter.
Various aspects of this disclosure may be better understood upon reading the following detailed description and upon reference to the drawings in which:
One or more specific embodiments will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and enterprise-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
As used herein, the term “computing system” refers to an electronic computing device such as, but not limited to, a single computer, virtual machine, virtual container, host, server, laptop, and/or mobile device, or to a plurality of electronic computing devices working together to perform the function described as being performed on or by the computing system. As used herein, the term “medium” refers to one or more non-transitory, computer-readable physical media that together store the contents described as being stored thereon. Embodiments may include non-volatile secondary storage, read-only memory (ROM), and/or random-access memory (RAM). As used herein, the term “application” refers to one or more computing modules, programs, processes, workloads, threads and/or a set of computing instructions executed by a computing system. Example embodiments of an application include software modules, software objects, software instances and/or other types of executable code.
As presently disclosed, a cloud-based information technology platform may include a virtual server that enables a network environment and supports aspects of a service provider cloud infrastructure client instance (also referred to herein as a client instance or instance). A software application running in the client instance may enable a user to search for information by, for example, entering a search query into a search field and returning search results based on the search query. To create a more user-friendly experience, particularly in the case where the user is accessing the client instance via a mobile device, the application may suggest search queries (also referred to herein as search suggestions) as the user is entering the search query. That is, the application may suggest the search suggestions based on a partial search query.
The search suggestions may include user-based search suggestions that are based on previous search queries performed by the user and instance-based search suggestions that are based on previous search queries performed on the instance (e.g., within a organization or organizational unit associated with that instance). In some embodiments, the application may filter the search suggestions based on filter criteria associated with the user, such as an interface (e.g., mobile or web portal) used by the user, a search context (e.g., associated with a software application or page at which the search query is entered), a user group that the user belongs to, a domain used by the user, and so on. The application may remove or downweight (e.g., lower the rank of) the search suggestions that include blacklisted terms. The application may rank the search suggestions (e.g., based on frequency and/or recency) and enable the user to select those ranked search suggestions that meet or exceed a threshold. In this manner, the application may provide relevant search suggestions to the user without the user having to enter a full search query, saving time and providing a better user experience.
With the preceding in mind, the following figures relate to various types of generalized system architectures or configurations that may be employed to provide services to an organization in a multi-instance framework and on which the present approaches may be employed. Correspondingly, these system and platform examples may also relate to systems and platforms on which the techniques discussed herein may be implemented or otherwise utilized. Turning now to
For the illustrated embodiment,
In
To utilize computing resources within the platform 16, network operators may choose to configure the data centers 18 using a variety of computing infrastructures. In one embodiment, one or more of the data centers 18 are configured using a multi-tenant cloud architecture, such that one of the server instances 26 handles requests from and serves multiple customers. Data centers 18 with multi-tenant cloud architecture commingle and store data from multiple customers, where multiple customer instances are assigned to one of the virtual servers 26. In a multi-tenant cloud architecture, the particular virtual server 26 distinguishes between and segregates data and other information of the various customers. For example, a multi-tenant cloud architecture could assign a particular identifier for each customer in order to identify and segregate the data from each customer. Generally, implementing a multi-tenant cloud architecture may suffer from various drawbacks, such as a failure of a particular one of the server instances 26 causing outages for all customers allocated to the particular server instance.
In another embodiment, one or more of the data centers 18 are configured using a multi-instance cloud architecture to provide every customer its own unique customer instance or instances. For example, a multi-instance cloud architecture could provide each customer instance with its own dedicated application server and dedicated database server. In other examples, the multi-instance cloud architecture could deploy a single physical or virtual server 26 and/or other combinations of physical and/or virtual servers 26, such as one or more dedicated web servers, one or more dedicated application servers, and one or more database servers, for each customer instance. In a multi-instance cloud architecture, multiple customer instances could be installed on one or more respective hardware servers, where each customer instance is allocated certain portions of the physical server resources, such as computing memory, storage, and processing power. By doing so, each customer instance has its own unique software stack that provides the benefit of data isolation, relatively less downtime for customers to access the platform 16, and customer-driven upgrade schedules. An example of implementing a customer instance within a multi-instance cloud architecture will be discussed in more detail below with reference to
Although
As may be appreciated, the respective architectures and frameworks discussed with respect to
By way of background, it may be appreciated that the present approach may be implemented using one or more processor-based systems such as shown in
With this in mind, an example computer system may include some or all of the computer components depicted in
The one or more processors 202 may include one or more microprocessors capable of performing instructions stored in the memory 206. Additionally or alternatively, the one or more processors 202 may include application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and/or other devices designed to perform some or all of the functions discussed herein without calling instructions from the memory 206.
With respect to other components, the one or more busses 204 include suitable electrical channels to provide data and/or power between the various components of the computing system 200. The memory 206 may include any tangible, non-transitory, and computer-readable storage media. Although shown as a single block in
With the preceding background discussion in mind,
As illustrated in process block 232, a processor 202 receives a partial search query from a user, such as via a dynamic process by which a growing character string is provided as the partial search query input as a user enters a search. For example,
Turning back to
In process block 236, the processor 202 also determines instance-based search suggestions based on previous search queries performed on the client instance 102 (which may be associated with a respective organization or enterprise or a department or other sub-unit within such an organization) and the partial search query 262. In particular, the previous search queries performed on the instance 102 may include search queries performed by other users on the instance 102. The processor 202 may store previous search queries performed by users on the instance 102 (e.g., in the memory 206 or a database in communication with the application on which the search is being performed). For example,
In some embodiments, the processor 202 may generate search suggestions (including the user-based search suggestions and the instance-based search suggestions) based on, for example, the table 263 of previously performed search queries in
In some cases, the processor 202 may generate the search suggestions 269 in the table 268 of
As such, the processor 202 may determine the previous search queries performed on the client instance 102 that include the partial search query 262. For example, the previous search queries performed on the client instance 102 may include the search query “best colors for office”, and, accordingly, the processor 202 may determine that this previous search query is an instance search suggestion because it includes the partial search query 262 “b”.
In some embodiments, the processor 202 may ensure that the search suggestions do not include those that have blacklisted terms. That is, certain terms may be prohibited due to a variety of reasons, such as suitability, security, confidentiality and so on. The processor 202 may store the blacklisted terms (e.g., in the memory 206 or other suitable data store). In some cases, the blacklisted terms may include blacklisted formats that are associated with terms that may be prohibited. For example, a blacklisted format may include three numbers, followed by a hyphen, followed by two numbers, followed by a hyphen, followed by four numbers (e.g., “XXX-XX-XXXX”) because this format is associated with social security numbers which may be prohibited for security and/or confidentiality reasons.
As such, and turning back to
In process block 242, the processor 202 receives one or more instance filter criteria. The instance filter criteria may include any suitable criteria used to filter the instance search suggestions to generate more relevant search suggestions for the user. For example, the instance filter criteria may be associated with the interface (e.g., mobile or web portal) used by the user. As illustrated in
In additional or alternative embodiments, the instance filter criteria may be associated with a search context (e.g., associated with a software application or page at which the search query is entered). For example, the web portal 21 of
The instance filter criteria may also or alternatively be associated with a user group (e.g., a company, organization, department, regional office, location, user role, and so on) that the user belongs to. For example, the user may be an employee at a certain company. As such, the instance filter criteria may include search queries that were performed by other users of the same company. As another example, the user may have a role (e.g., as defined by the client instance 102) as a system administrator. As such, the instance filter criteria may include search queries that were performed by other users having the role of system administrator. In this manner, the processor 202 may filter the instance search suggestions using the instance filter criteria to generate search suggestions relevant to the user's role.
In some cases, the client instance 102 may include multiple domains, such that the client instance 102 may provide different services on each domain. As such, the client instance 102 may provide a first service to users of a first domain, and a second service to users of a first domain. In such multi-domain instances, data of one domain may not be accessible to users of another domain, and vice versa. In such cases, the instance filter criteria may be associated with the domain at which the search query was performed. For example, in
Turning back to
In process block 246, the processor 202 receives one or more ranking criteria. The ranking criteria may be any suitable criteria used to rank the search suggestions, such as frequency of the search queries being performed, recency or how recently the search queries were last performed, frequency of the search queries being performed in a recent period of time (e.g., to determine what search queries are currently trending), and so on. Any suitable period of time may be used to determine what search queries are currently trending, such as determining the search queries performed in the last day, week, month, six months, year, five years, and so on. In some embodiments, the ranking criteria may include the instance filter criteria received in process block 242.
In process block 248, the processor 202 ranks the user search suggestions based on the one or more ranking criteria. For example, if the ranking criteria includes the frequency of the search queries being performed, then the processor 202 ranks the user search suggestions based on the frequency of each search suggestion being performed.
In process block 250, the processor 202 ranks the instance search suggestions based on the one or more ranking criteria. For example, if the ranking criteria includes the frequency of the search queries being performed in a recent period of time (e.g., in a recent period of time), then the processor 202 ranks the instance search suggestions based on the frequency of each search suggestion being performed in the recent period of time. While the processor 202 is described as ranking the user search suggestions and the instance search suggestions using the same ranking criteria, it should be understood that different ranking criteria may be used to rank the user search suggestions when compared to ranking the instance search suggestions. For example, in some embodiments, the ranking criteria may include the instance filter criteria received in process block 242. As such, the processor 202 may rank the instance search suggestions based on, for example, whether the instance search suggestions have the same search context as the partial search query 262 received in process block 242. As illustrated in
In process block 252, the processor 202 enables the user to select the user-based search suggestions and the instance search suggestions that meet or exceed a threshold. In particular, the processor 202 may determine those user search suggestions that meet or exceed a threshold and those instance-based search suggestions that meet or exceed a threshold. The thresholds may include any suitable threshold used to display or provide a reasonable number of search suggestions to the user. The threshold used to evaluate the user search suggestions may be the same or different than the threshold used to evaluate the instance search suggestions. For example, the threshold may include the top two ranked user search suggestions and the top two ranked instance search suggestions. As such, the processor 202 may enable the user to select the top two ranked user search suggestions and the top two ranked instance search suggestions. As another example, the threshold may include the top two ranked user search suggestions and the top one percent of ranked instance search suggestions. As such, the processor 202 may enable the user to select the top two ranked user search suggestions and the top one percent of ranked instance search suggestions.
The processor 202 may enable the user to select the user search suggestions and the instance search suggestions by displaying or providing the search suggestions in a drop down list or menu and performing a search using the search suggestion when the search suggestion is selected by the user. For example, in
The example search suggestions shown in
In some embodiments, the client interface 102 may include the capability of disabling having search queries contribute to search suggestions. For example, a system administrator may search for a legacy component, but may desire that the search query not contribute to future search suggestions to avoid having other users attempt to install or purchase the legacy component. As such, the system administrator may disable having his search query contribute to search suggestions.
The specific embodiments described above have been shown by way of example, and it should be understood that these embodiments may be susceptible to various modifications and alternative forms. It should be further understood that the claims are not intended to be limited to the particular forms disclosed, but rather to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this disclosure.
The techniques presented and claimed herein are referenced and applied to material objects and concrete examples of a practical nature that demonstrably improve the present technical field and, as such, are not abstract, intangible or purely theoretical. Further, if any claims appended to the end of this specification contain one or more elements designated as “means for [perform]ing [a function]. . .” or “step for [perform]ing [a function]. . . ”, it is intended that such elements are to be interpreted under 35 U.S.C. 112(f). However, for any claims containing elements designated in any other manner, it is intended that such elements are not to be interpreted under 35 U.S.C. 112(f).