IP Library Granted Patent US 11,789,952
Granted Patent B2
US 11,789,952 · App. 16/143,338 · Granted Oct 17, 2023

Ranking enterprise search results based on relationships between users

Inventor: Swapnil Sanjay Kulkarni (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F16/24578G06F16/248G06F16/288G06F16/9535
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,789,952
App. No.
16/143,338
Granted
Oct 17, 2023
Kind
B2
Abstract

A system stores records of different entity types and processes search queries to determine search results comprising records that match the search query. The system receives a search query comprising search keywords from a source user. The system identifies a target user based on a search keyword received in the search query. The system determines a relationship between the source user and the target user. The system determines a relationship strength score for the relationship between the source user and the target user and ranks the search results based on the relationship strength score. The system provides the search results to the source user.

Claims (83)

1. A computer implemented method for ranking search results, the method comprising:

receiving, by an online system from a client device, a request to create a session, wherein the online system stores records, wherein a record has one of a plurality of entity types, wherein the online system is used by a plurality of users associated with an enterprise;

identifying a source user that created the session;

receiving, by the online system, a search query from the source user, via the session created by the source user, the search query comprising a plurality of search keywords including a particular search keyword identifying one or more target users and one or more remaining search keywords;

identifying a target user matching the particular search keyword;

determining a relationship between the source user and the target user based on an enterprise relationship graph specifying relationships between the plurality of users;

determining a relationship strength score for the relationship between the source user and the target user, the relationship strength score determined based on interactions between the source user and the target user;

identifying one or more entity types associated with the source user and the target user;

determining a plurality of records of the one or more entity types associated with the source user and the target user wherein the plurality of records match the one or more remaining search keywords of the search query;

ranking the plurality of records based on features comprising the determined relationship strength score; and

transmitting one or more ranked records for display via the client device.

2. The method of claim 1 , further comprising:

determining a relationship type for the determined relationship between the source user and the target user, wherein the features used for ranking the plurality of records further comprise the determined relationship type.

3. The method of claim 2 , wherein determining the relationship strength score for the relationship between the source user and the target user comprises:

determining a rate of user interactions between the source user and the target user;

accessing an expected rate of interactions between users related by the determined relationship type; and

determining the relationship strength score for the relationship between the source user and the target user based on a comparison of the determined rate of user interactions between the source user and the target user and the expected rate of interactions.

4. The method of claim 2 , wherein determining the relationship strength score for the relationship between the source user and the target user comprises:

monitoring a rate of user interactions between the source user and the target user;

accessing an expected rate of user interactions between users related by the determined relationship type; and

determining the relationship strength score for the relationship between the source user and the target user based on a comparison of the monitored rate of user interactions between the source user and the target user and the expected rate of user interactions.

5. The method of claim 1 , wherein determining the relationship strength score for the relationship between the source user and the target user comprises:

determining a last interaction between the source user and the target user; and

determining the relationship strength score for the relationship between the source user and the target user based on an age of the last interaction between the source user and the target user.

6. The method of claim 1 , wherein determining the relationship strength score for the relationship between the source user and the target user comprises:

determining measure of distance between the source user and the target user within an organization hierarchy tree; and

determining the relationship strength score for the relationship between the source user and the target user based on the measure of distance.

7. The method of claim 1 , wherein determining the relationship strength score for the relationship between the source user and the target user comprises determining a weighted aggregate of factors including:

a measure of distance between the source user and the target user within an organization hierarchy tree;

an age of a last interaction between the source user and the target user; and

a rate of interaction between the source user and the target user.

8. The method of claim 1 , wherein ranking the plurality of records comprises:

accessing a set of weights, the set of weights determined based on features comprising the determined relationship strength score; and

ranking the plurality of records based on the set of weights.

9. The method of claim 8 , wherein the set of weights comprise weights representing relevance scores for entity types, the relevance score for a particular entity type indicative of a likelihood of a particular user interacting with a particular record of the particular entity type.

10. The method of claim 8 , wherein the set of weights represent a machine learning model for ranking search results returned by an input search query.

11. The method of claim 1 , wherein determining the relationship between the source user and the target user comprises:

determining in the enterprise relationship graph, a source node corresponding to the source user and a target node corresponding to the target user;

determining whether there is an edge between the source node and the target node in the enterprise relationship graph;

determining that there is no edge between the source user and target user; and

updating the enterprise relationship graph by adding a new edge between the source user and the target user.

12. The method of claim 11 , further comprising:

determining a relationship type for the determined relationship between the source user and the target user; and

annotating the edge between the source user and the target user with the relationship type.

13. The method of claim 12 , wherein determining the relationship type for the determined relationship between the source user and the target user comprises:

identifying the source user and the target user in an organization hierarchy tree associated with the enterprise; and

determining the relationship type for the relationship between the source user and the target user based on a connection between the source user and the target user within the organization hierarchy tree.

14. The method of claim 12 , wherein determining the relationship type for the determined relationship between the source user and the target user comprises:

identifying interactions between the source user and the target user, the interactions associated with the enterprise; and

determining the relationship type for the relationship between the source user and the target user based on the interactions between the source user and the target user.

15. The method of claim 11 , further comprising:

modifying the search query to perform search within records of the one or more entity types associated with the source user and the target user.

16. The method of claim 1 , further comprising:

determining a feature vector based on a user profile of the source user, the feature vector comprising a plurality of features;

comparing the feature vector with each of a plurality of clusters of user profiles, wherein a cluster of user profiles represents similar users; and

selecting, based on comparing of the feature vector with each of the plurality of clusters of user profiles, a cluster of users matching the feature vector of the user profile.

17. The method of claim 1 , wherein a user is determined to be associated an entity type based on a number of user interactions with search results of that entity type.

18. The method of claim 17 , further comprising:

determining a weight for each of the one or more entity types based on the relationship strength score, wherein the features used for ranking the plurality of records further comprises the weights of each of the one or more entity types.

19. A non-transitory computer-readable storage medium storing computer program instructions that when executed by one or more electronic processors, cause the one or more electronic processors to perform operations comprising:

receiving, by an online system from a client device, a request to create a session, wherein the online system stores records, wherein a record has one of a plurality of entity types, wherein the online system is used by a plurality of users associated with an enterprise;

identifying a source user that created the session;

receiving, by the online system, a search query from the source user via the session created by the source user, the search query comprising a plurality of search keywords including a particular search keyword identifying one or more target users and one or more remaining search keywords;

identifying target user matching the particular search keyword;

determining a relationship between the source user and the target user based on an enterprise relationship graph specifying relationships between the plurality of users;

determining a relationship strength score for the relationship between the source user and the target user, the relationship strength score determined based on interactions between the source user and the target user;

identifying one or more entity types associated with the source user and the target user;

determining a plurality of records of the one or more entity types associated with the source user and the target user wherein the plurality of records match the one or more remaining search keywords of the search query;

ranking the plurality of records based on features comprising the determined relationship strength score; and

transmitting one or more ranked records for display via the client device.

20. A computer system comprising:

one or more electronic processors; and

a non-transitory computer-readable storage medium storing computer program instructions that when executed by the one or more electronic processors, cause the one or more electronic processors to perform operations comprising:

receiving, by an online system from a client device, a request to create a session, wherein the online system stores records, wherein a record has one of a plurality of entity types, wherein the online system is used by a plurality of users associated with an enterprise;

identifying a source user that created the session;

receiving, by the online system, a search query from the source user via the session created by the source user, the search query comprising a plurality of search keywords including a particular search keyword identifying one or more target users and one or more remaining search keywords;

identifying a target user matching the particular search keyword;

determining a relationship between the source user and the target user based on an enterprise relationship graph, specifying relationships between the plurality of users;

determining a relationship strength score for the relationship between the source user and the target user, the relationship strength score determined based on interactions between the source user and the target user;

identifying one or more entity types associated with the source user and the target user;

determining a plurality of records of the one or more entity types associated with the source user and the target user wherein the plurality of records match the one or more remaining search keywords of the search query;

ranking the plurality of records based on features comprising the determined relationship strength score; and

transmitting one or more ranked records for display via the client device.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0378 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2020
From: KULKARNI, SWAPNIL SANJAY
To: SALESFORCE.COM, INC.
Reel/Frame 052457/0857 →
Continuity (1)
Related Publication 20200097560A1 · Mar 26, 2020