A number of web-based or cloud-based services allow users to collaborate, share information, and join different groups that cater to their interests. For example, social networking services allow users to connect via “friends” or “connections.” Likewise, cloud-based cross-platform synchronization systems allow users to connect by sharing specific files or groups of files. In either service, finding users, groups of users, or specific files can be laborious because current search methods are archaic.
Current searching methods require a user to type in a search term and select search filtering criteria by checking boxes (or other similar means) that then limit the search results by facet (e.g., “company,” “name,” or “school”). In other searching methodologies, the user must understand a complicated search nomenclature (e.g., Boolean type searching) and enter one or more complicated search strings to located information stored in a data set. Some existing searching methods suggest search terms as a user types a term in a search box, but they are limited to the facet associated with the search box chosen by the user. The present disclosure recognizes and addresses the foregoing considerations, and others, of prior art system and methods.
A computer-implemented method, according to various embodiments, may provide a user of a service with the ability to facilitate communications between a particular user in a group and one or more other users in the group. In various embodiments, the method may include receiving a search term from a user and searching one or more data sets for one or more suggested search terms. The suggested search terms may contain the search term received from the user and may be associated with one or more system-designated facets. The method may then display the suggested search term(s) and the associated system-designated facets as suggested search term-facet combinations. The method may allow the user to select a suggested search term-facet combination. In response to the user selecting a suggested search term-facet combination, the method may initiate a search of a second data set based on the selected search term-facet combination.
A system, in various embodiments, for searching a data set may include at least one processor, memory operatively coupled to the at least one processor, and a second data set stored in memory. The processor may be configured to receive a search term from a user and search one or more data sets for the suggested search terms that contain the received search term and associated system-designated facets. The processor may also be configured to rank and display the suggested search terms and their associated system-designated facets as suggested search term-facet combinations. The processor may be configured to receive, from the user, a selection of one of the displayed search term-facet combinations and initiate a search of a second data set based on the selected search term-facet combination.
A system, in various embodiments, for performing a search may include at least one processor and a display that is operatively coupled to the at least one processor (hereinafter “the processor”). One or more data sets may be operatively coupled to the processor. The Processor may be configured to receive a search term from a user and search one or more data sets for entries that contain the received search term and that are associated with one of a plurality of system-designated facets. The processor may be configured to form a suggested search term-facet combination by pairing each entry that contains the received search term with the system-designated facet that is associated with the entry. The processor may also be configured to display the suggested search term-facet combinations and initiate a search of a second data set that is operatively coupled to the processor based on a selected one of the displayed search term-facet combinations.
Various embodiments of a computer system for a social networking site that facilitates communication between a particular member of a group and a subset of members of the group are described below. In the course of this description, reference will be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Various embodiments now will be described more fully hereinafter with reference to the accompanying drawings. It should be understood that the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Like numbers refer to like elements throughout.
System Overview
A system, according to various embodiments, enables a user to enter a search term in a search box. The system receives the search term and initiates a search in one or more data sets for entries that contain the entered search term and that are also associated with one or more system designated facets. The system may be configured to use each of the entries that contain the received search term to form suggested search term/facet combinations that may be used to search for entries in another data set. The system may be configured to form a suggested search term/facet combination by associating one or more entries found in the one or more data sets with a respective system designated facet that was associated with the entry in the one or more data sets. In various embodiments, the system may be configured to rank the suggested search term/facet combinations based on the number of times a suggested search term/facet combination is found in the one or more data sets. Thus, in some embodiments, the system will only present the top four ranked suggested search term/facet combinations to the user. Once the user selects one of the suggested search term/facet combinations, the system may be configured to search another data set for entries that contain the selected search term/facet combination. A system configured to carry out the above described search methodology is advantageous since it allows a user to enter a search term and receive one or more suggested search terms that are associated with a respective system designated facet. Such a system (1) speeds up a user's ability to formulate searches, (2) reduces the user's need to understand a particular system's search nomenclature and (3) may provide the user with suggested search terms that the user may not have formulated on their own.
The above described search methodology may be implemented in many different systems. For example, according to various embodiments, the above described search methodology may be implemented in a system that is adapted for providing a social networking site that allows users to join and interact with different groups of other users. Particular user groups may, for example, be formed based upon the personal or professional interests of the users, the users' educational backgrounds, or any other suitable criteria. Examples of social networking sites on which various methods described herein may be used include Facebook®, Twitter®, MySpace®, LinkedIn®, and any other social networking site. Moreover, the above described search methodology may be used in any type of system that allows a user of the system to search for data contained in a data set. Other examples of systems include a synchronized file system such as the Dropbox™ Service of Dropbox, Inc. of San Francisco, Calif.
In various embodiments, the above described search methodologies allow a user to search using free text searching that allows users to search for other members based on information included within user profiles for members on the site. By searching on specific fields from within the users' profiles, a user may filter the member group down to a subgroup of members that meet certain criteria important to the searcher. For example, a user may begin to type in the search term “Emory.” As the user types in “Em” the system may begin to suggest search terms and associated facets that may be system designated. The system may suggest search terms/facet designations including “Emory Jones—Name,” “Emory University—School,” and “Emersion, Inc.—Company.” The user can then select a suggested search term/facet combination for the system to use to perform a search in a data set that contains relevant information (e.g., in the case of a social networking site, member profile information to find members whose profiles contain the selected search term/facet combination).
Exemplary Technical Platforms
As will be appreciated by one skilled in the relevant field, the present invention may be, for example, embodied as a computer system, a processor configured to carry out a method, or a computer program product. Accordingly, various embodiments may take the form of an entirely hardware embodiment or an embodiment combining software and hardware aspects. Furthermore, particular embodiments may take the form of a computer program product stored on a computer-readable storage medium having computer-readable instructions (e.g., software) embodied in the storage medium. Various embodiments may take the form of web-implemented computer software. Any suitable computer-readable storage medium may be utilized including, for example, hard disks, compact disks, DVDs, optical storage devices, and/or magnetic storage devices.
Various embodiments are described below with reference to block diagrams and flowchart illustrations of methods, apparatuses (e.g., systems) and computer program products. It should be understood that each element of the block diagrams and/or flowcharts, and combinations of elements in the block diagrams and flowcharts, respectively, may be implemented by a computer executing computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create means for implementing the functions specified in the flowchart block or blocks. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner such that the instructions stored in the computer-readable memory produce an article of manufacture that is configured for implementing the function specified in the flowchart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
Accordingly, elements of either the block diagrams and/or flowcharts support combinations of mechanisms for performing the specified functions, combinations of steps for performing the specified functions, and program instructions for performing the specified functions. It should also be understood that each element of the block diagrams and/or flowcharts, and combinations of elements in the block diagrams and/or flowcharts, can be implemented by special purpose hardware-based computer systems that perform the specified functions or steps, or combinations of special purpose hardware and other hardware executing appropriate computer instructions.
Exemplary System Architecture
In particular embodiments, computer 200 may be connected (e.g., networked) to other computers in a LAN, an intranet, an extranet, and/or the Internet. Computer 200 may operate in the capacity of a server or a client computer in a client-server network environment, or as a peer computer in a peer-to-peer (or distributed) network environment. Computer 200 may be personal computer (PC) 104, tablet PC 102, handheld device 106, Personal Digital Assistant (PDA), web appliance, or any computer capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that computer. Further, while only a single computer is illustrated, the term “computer” shall also be taken to include any collection of computers that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The exemplary computer 200 includes processing device 202, main memory 204 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), static memory 206 (e.g., flash memory, static random access memory (SRAM), etc.), and data storage device 218, which communicate with each other via bus 232.
Processing device 202 represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 202 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. Processing device 202 may be configured to execute processing logic 226 for performing various operations and steps discussed herein.
Computer 200 may further include network interface device 208. Computer 200 also may include video display unit 210 (e.g., a liquid crystal display (LCD) or cathode ray tube (CRT)), alphanumeric input device 212 (e.g., a keyboard), cursor control device 214 (e.g., a mouse), and signal generation device 216 (e.g., a speaker).
Data storage device 218 may include non-transitory computer-accessible storage medium 230 (also known as a non-transitory computer-readable storage medium or a non-transitory computer-readable medium) on which is stored one or more sets of instructions (e.g., the method steps embodied in a search & communication module 222) embodying any one or more of the methodologies or functions described herein. Search & communication module 222 may also reside, completely or at least partially, within main memory 204 and/or within processing device 202 during execution thereof by computer 200, main memory 204 and processing device 202 also constituting computer-accessible storage media. Search & communication module 222 may further be transmitted or received over network 220 via network interface device 208.
While computer-accessible storage medium 230 is shown in an exemplary embodiment to be a single medium, the term “computer-accessible storage medium” should be understood to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-accessible storage medium” shall also be understood to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the computer and that cause the computer to perform any one or more of the methodologies of the present invention. The term “computer-accessible storage medium” shall accordingly be understood to include, but not be limited to, solid-state memories, optical and magnetic media, etc.
An explanation of the operation of the search methodologies of the present systems and methods are described herein with reference to a social networking site. However, it should be understood that the search methodologies may be used in any type of system that allows a user to search for data (e.g., a synchronized content management system).
When a user of a service (e.g., a social networking service) wants to communicate with a group of members that have certain attributes in common with the user, the user may search for members that contain one or more attributes (e.g., attended a certain school, work for a particular employer, and/or live in a particular city) and communicate with the subset of members whose user profile contains the one or more attributes. Thus, the service may allow users to send messages to a select subset of members of a group with accounts with the service.
At step 1104, system 100 may rank the suggested search term-facet combinations based on the number of times each suggested search term-facet combination appears in the data set. In other embodiments, the system may rank the search term-facet combinations by the number of times the search term-facet combination appears in other databases or websites, or the number of times the search term-facet combination has been searched by others, or by any other suitable means. At step 1106, the system may be configured to display each of the plurality of suggested search terms and the associated one or more system-designated facets as suggested search term-facet combinations. In various embodiments, the system may display the suggested search term-facet combinations by rank or by any other acceptable means. In several embodiments, the system may display the top four ranked search term-facet combinations.
At step 1108, system 100 may allow the user to select the suggested search term-facet combination by any acceptable means. For example, a user may click on the desired search term-facet combination or highlight the desired search term-facet combination and hit enter on a keyboard. At step 1110, in response to the user selecting the suggested search term-facet combination, the system may initiate a search of a second data set based on the selected search term-facet combination. In various embodiments, the second data set search may be of the same data set at the first search. In other words, in several embodiments, the user may further refine the search to a smaller subset of data.
At step 1204, system 100 may rank the suggested search terms. In several embodiments, the suggested search terms may be ranked based on the number of times each suggested search term-facet appears in the data set. In other embodiments, the system may rank the search terms by the number of times the search term appears in other databases or websites, or the number of times the search term has been searched by others, or by any other suitable means. At step 1306, system 100 displays, to the user, the ranked suggested search terms and their associated system-designated facet as suggested search term-facet combinations. In various embodiments, the system may display the suggested search terms by rank or by any other acceptable means. In several embodiments, the system may display the top four ranked search terms.
At step 1208, system 100 may receive, from the user, a selection of one of the displayed search term-facet combinations. For example, a user may click on the desired search term-facet combination or highlight the desired search term-facet combination and hit enter on a keyboard. At step 1210, system 100 may initiate a search of the second data set based on the selected search term-facet combination. In various embodiments, the second data base search may be of the same data set at the first search. In other words, in several embodiments, the user may further refine the search to a smaller subset of data.
At step 1308, the system receives, from the particular user, a selection of a second subset of users from the first subset of users. In various embodiments, the particular user may be allowed to select one or more of the users from among the displayed second subset of users. In various embodiments, a selection box or button may be displayed adjacent each user of the second subset. In other embodiments, system 100 may be configured to highlight each selected user when the particular user clicks on a displayed user's picture. In certain embodiments, the system may be configured to allow the particular user to select one or more of the users of the second subset of users. At step 1310, after receiving a selection of the second subset of users, the system facilitates the transmission of a message from the particular user to the second subset of users. In some embodiments, the message may be an e-mail, and in other embodiments, the message may be a wall posting, a text message, an instant message, or any other suitable type of communication that transmits a voice, text, or other data communication.
In various embodiments, the system may receive the first user criterion and identify one or more users that have one or more group profiles that satisfy the first criterion. In these embodiments, the system may then display the one or more users to the particular user. The system may then receive the second user criterion from the particular user. Once again, system 100 may then identify a first subset of users, from the one or more user, who have one or more profiles that contain both the first and second criteria. Once the first subset of members is identified, the system may display the first subset of members. The system may then receive a selection of a second subset of users from the first subset of users. After receiving the selection of the second subset of users, the system may facilitate the transmission of a message from the particular user to the second subset of user.
The operations of exemplary embodiments of the system are perhaps best understood by reviewing particular examples. The following examples describe an exemplary experience of a group member.
Exemplary User Pages
An exemplary user interface for a particular social networking site according to a particular embodiment is shown in
In various embodiments, custom fields 420 may be administrator-defined fields that are specific to the group. For example, for a TED2012 conference group, group-specific fields may include: (1) area of expertise field 422; (2) current organization field 424; (3) current role field 426; (4) past organization field 428; (5) universities field 430; (6) TED conferences attended field 432; and (7) other suitable fields that are related to the TED2012 conference group. The administrator-defined fields may allow the group administrator to build a member profile template that best fits the purpose of the group and that provides searchable information for finding members.
Once the system identifies search results in the one or more databases that are associated with the non-user specified facets, the system may rank the results to determine which of the results should be displayed to the user as suggested search term/facet combinations. In various embodiments, the system may rank the results by counting the number of times the search term/facet combination is found in the databases. The system may then display the four highest ranked search term/facet combinations.
In various embodiments, the system may search one or more databases that contain member profile data. In other embodiments, the system may search the profile databases in combination with a collaborative knowledge database that is built on structured data harvested from many sources, including individual wiki contributions. One such suitable database is Freebase, provided by Google, Inc. In some embodiments, the system may make a data call to the Freebase database using an API, and in various other embodiments, the Freebase database may be downloaded and stored locally on the system. It should be understood from reference to this disclosure that other suitable ranking systems may be used with the present search methodology.
The above described search methodology may be advantageous when a user wants to search for a single term against data associated with multiple facets. That is, the present system may allow a user to enter a single search term in one location, instead of having to enter the term in more than one location or using a complicated search string. Moreover, the user does not need to take the extra step of specifying a particular facet for the search since the system will conduct the search in data categories associated with all of the non-user specified facets. In alternative embodiments, the user could perform a traditional facet search by entering the search term in one of search boxes 813 (
Search Experience
The following discussion provides a brief example of a search in accordance with the search methodology described above. Referring once again to
Returning to the example and referring to
As the member continues to develop the search by adding additional letters to the search term (e.g., by typing “R” and “O” after “MIC”), the system may (1) identify search terms that begin with the letters “MICRO” in combination with the system-specified facets, (2) rank the results based on the number of times the terms appear in the one or more databases being searched, and (3) display the four highest ranked search term/facet combinations. Referring to
As illustrated in
At this point, the member may like to know if any of the members who attended Microsoft the school are also located in San Francisco, Calif. Thus, referring to
In this example, the highest ranked search term/facet combinations all contain the facet “city”. The member may click “San Francisco, Calif.—City” since he is looking for members who attended Microsoft the school and who also live in the city of San Francisco, Calif. Referring to
Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. It should also be understood that, although various embodiments are described above as using a structured database, any other suitable data structure can be used to allow for free-text searches.
In light of the above, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for the purposes of limitation.
This application claims priority under 35 U.S.C. §119(e) to the filing date of U.S. Provisional Patent Application No. 61/745,527, filed Dec. 21, 2012, entitled, “A System And Method Of Performing A Faceted Search,” which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61745527 | Dec 2012 | US |