IP Library Granted Patent US 11,093,511
Granted Patent B2
US 11,093,511 · App. 15/728,938 · Granted Aug 17, 2021

Ranking search results using hierarchically organized coefficients for determining relevance

Inventors: Jayesh Govindarajan (Palo Alto, CA); Nicholas Beng Tek Geh (San Carlos, CA); Ammar Haris (Lake Forest Park, WA)
Assignee: salesforce.com, inc.
G06F16/24578G06F16/2228G06F16/248G06F16/2457G06F16/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,093,511
App. No.
15/728,938
Granted
Aug 17, 2021
Kind
B2
Abstract

An online system receives a search query from a user. In response to the request, the online system obtains search results matching the search query and identifies a set of attributes describing a context of the search query. The online system generates a data structure that includes a plurality of search coefficients. The search coefficients are selected based on the identified set of attributes. Some of the search coefficients have conflicting values. The online system traverses the data structure to identify the search coefficients having conflicting values. For each search coefficient having conflicting values, the online system resolves conflicts and determines a value of the search coefficient. The online system ranks search results based on the resolved values of the search coefficients.

Claims (53)

1. A computer implemented method, the method comprising:

receiving a search query from a client device associated with a user;

obtaining search results matching the search query;

identifying a set of attributes describing a context of the search query, the identified set of attributes comprising one or more attributes describing characteristics of the user;

generating a data structure comprising a plurality of search coefficients, the plurality of search coefficients selected based on the identified set of attributes, the plurality of search coefficients comprising a conflicting search coefficient, wherein the conflicting search coefficient has at least a first value and a second value that is different from the first value;

traversing the data structure to identify the conflicting search coefficient;

for the conflicting search coefficient, resolving conflict based on precedence rules to obtain a resolved value of the conflicting search coefficient, wherein resolving the conflict based on the precedence rules to obtain the resolved value of the conflicting search coefficient comprises:

determining a first hierarchy level of the first value of the conflicting search coefficient,

determining a second hierarchy level of the second value of the conflicting search coefficient, and

selecting one of the first value and the second value as the resolved value based on the first and second hierarchy levels;

ranking the obtained search results based on the resolved value of the conflicting search coefficient; and

providing the ranked search results for presentation to the client device.

2. The method of claim 1 , wherein a value associated with a lower level of the hierarchy has higher precedence compared to a value associated with higher level of the hierarchy.

3. The method of claim 1 , wherein the data structure is represented as a plurality of nested objects and conflicting values of a conflicting search coefficient are included in different nested objects, the nested objects comprising a parent object related to a child object by a parent-child relation, wherein parameters associated with the child object have higher precedence compared to parameters associated with the parent object.

4. The method of claim 3 , wherein a nested object is represented using JavaScript Object Notation (JSON) format.

5. The method of claim 1 , wherein the identified set of attributes further comprises one or more attributes describing characteristics of the query.

6. The method of claim 1 , wherein the identified set of attributes further comprises one or more attributes describing a type of object being searched by the user.

7. The method of claim 1 , wherein the data structure comprises a plurality of groups of values of search coefficients, a group of values of search coefficients comprising one or more values of search coefficients, wherein at least a first group and a second group comprise conflicting values of a same search coefficient.

8. The method of claim 7 , wherein the plurality of groups of values of search coefficients comprises a general group and one or more specific groups, wherein a specific group is applicable to one of: a specific organization, a specific type of object, a specific user, or a specific group of user.

9. The method of claim 8 , wherein the one or more specific groups comprise a specific group for a particular organization, wherein the specific group for the particular organization is associated with a lower hierarchy level compared to the general group.

10. The method of claim 9 , wherein the one or more specific groups comprise a specific group for a particular user, wherein the specific group for the particular user is associated with a lower hierarchy level compared to the specific group for the particular organization.

11. The method of claim 9 , wherein the one or more specific groups comprise a specific group for a particular A/B experiment group, wherein the specific group for the particular A/B experiment group is associated with a lower hierarchy level compared to the specific group for the particular user.

12. A non-transitory computer readable storage medium storing executable computer program instructions, the computer program instructions comprising instructions that when executed cause a computer processor to:

receive a search query from a client device associated with a user;

obtain search results matching the search query;

identify a set of attributes describing a context of the search query, the identified set of attributes comprising one or more attributes describing characteristics of the user;

generate a data structure comprising a plurality of search coefficients, the plurality of search coefficients selected based on the identified set of attributes, the plurality of search coefficients comprising a conflicting search coefficient, wherein the conflicting search coefficient has at least a first value and a second value that is different from the first value;

traverse the data structure to identify the conflicting search coefficient;

for the conflicting search coefficient, resolve conflict based on precedence rules to obtain a resolved value of the conflicting search coefficient, wherein the instructions for resolving the conflict based on the precedence rules to obtain the resolved value of the conflicting search coefficient comprise instructions that when executed cause a computer processor to:

determine a first hierarchy level of the first value of the conflicting search coefficient,

determine a second hierarchy level of the second value of the conflicting search coefficient, and

select one of the first value and the second value as the resolved value based on the first and second hierarchy levels;

rank the obtained search results based on the resolved value of the conflicting search coefficient; and

provide the ranked search results for presentation to the client device.

13. The computer readable medium of claim 12 , wherein a value associated with a lower level of the hierarchy has higher precedence compared to a value associated with higher level of the hierarchy.

14. The computer readable medium of claim 12 , wherein the data structure is represented as a plurality of nested objects and conflicting values of a conflicting search coefficient are included in different nested objects, the nested objects comprising a parent object related to a child object by a parent-child relation, wherein parameters associated with the child object have higher precedence compared to parameters associated with the parent object.

15. The computer readable medium of claim 12 , wherein the data structure comprises a plurality of groups of values of search coefficients, a group of values of search coefficients comprising one or more values of search coefficients, wherein at least first group and a second group comprise conflicting values of a same search coefficient.

16. A computer system comprising:

a non-transitory computer-readable storage medium storing executable computer program instructions, the computer program instructions comprising instructions that when executed cause a computer processor to perform steps, comprising:

receiving a search query from a client device associated with a user;

obtaining search results matching the search query;

identifying a set of attributes describing a context of the search query, the identified set of attributes comprising one or more attributes describing characteristics of the user;

generating a data structure comprising a plurality of search coefficients, the plurality of search coefficients selected based on the identified set of attributes, the plurality of search coefficients comprising a conflicting search coefficient, wherein the conflicting search coefficient has at least a first value and a second value that is different from the first value;

traversing the data structure to identify the conflicting search coefficient;

for the conflicting search coefficient, resolving conflict based on precedence rules to obtain a resolved value of the conflicting search coefficient, wherein resolving the conflict based on the precedence rules to obtain the resolved value of the conflicting search coefficient comprises:

determining a first hierarchy level of the first value of the conflicting search coefficient,

determining a second hierarchy level of the second value of the conflicting search coefficient, and

selecting one of the first value and the second value as the resolved value based on the first and second hierarchy levels;

ranking the obtained search results based on the resolved value of the conflicting search coefficient; and

providing the ranked search results for presentation to the client device.

17. The system of claim 16 , wherein a value associated with a lower level of the hierarchy has higher precedence compared to a value associated with higher level of the hierarchy.

18. The system of claim 16 , wherein the data structure is represented as a plurality of nested objects and conflicting values of a conflicting search coefficient are included in different nested objects, the nested objects comprising a parent object related to a child object by a parent-child relation, wherein parameters associated with the child object have higher precedence compared to parameters associated with the parent object.

19. The system of claim 16 , wherein the data structure comprises a plurality of groups of values of search coefficients, a group of values of search coefficients comprising one or more values of search coefficients, wherein at least a first group and a second group comprise conflicting values of a same search coefficient.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2017
From: GOVINDARAJAN, JAYESH; GEH, NICHOLAS BENG TEK; HARIS, AMMAR
To: SALESFORCE.COM, INC.
Reel/Frame 043826/0648 →
Continuity (2)
Provisional Application 62407448 · Oct 12, 2016
Related Publication 20180101536A1 · Apr 12, 2018