IP Library Granted Patent US 11,500,930
Granted Patent B2
US 11,500,930 · App. 16/885,885 · Granted Nov 15, 2022

Method, apparatus and computer program product for generating tiered search index fields in a group-based communication platform

Inventors: Joshua Wills (San Francisco, CA); Luis Tandalla (New York, NY); Japinder Singh (New York, NY)
Assignee: Slack Technologies, LLC
G06F16/902G06F16/906G06F16/9032G06F16/9035G06N20/00
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,500,930
App. No.
16/885,885
Granted
Nov 15, 2022
Kind
B2
Abstract

Methods, apparatus and computer program product for generating tiered search index fields based on a divided group-based communication data corpus in a group-based communication platform are described herein. In some embodiments, the system provides for receiving a group-based communication data corpus, generating a retrieval score, and assigning each group-based communication data object associated with a retrieval score. Each group-based communication data object may meet or exceed a retrieval score threshold of a high retrieval probability corpus. Each group-based communication data object associated with a retrieval score below the retrieval score threshold may be assigned to a low retrieval probability corpus. High and a low retrieval probability search index fields may be generated and associated with the high and low retrieval probability corpus.

Claims (92)

1. An apparatus for generating tiered search index fields based on a divided group-based communication data corpus, the apparatus comprising at least one processor and at least one non-transitory memory including program code, the at least one non-transitory memory and the program code configured to, with the at least one processor, cause the apparatus to at least:

receive a group-based communication data corpus comprising a plurality of group-based communication data objects, each group-based communication data object of the plurality of group-based communication data objects associated with a group-based communication data object feature;

generate a retrieval score for each group-based communication data object of the plurality of group-based communication data objects, the retrieval score representing a programmatically generated likelihood that a respective group-based communication data object will appear in search results responsive to a search query received from a client device associated with a particular user;

assign each group-based communication data object associated with a retrieval score meeting or exceeding a retrieval score threshold to a high retrieval probability corpus;

assign each group-based communication data object associated with a retrieval score below the retrieval score threshold to a low retrieval probability corpus;

generate a high retrieval probability search index field to be associated with the high retrieval probability corpus;

generate a low retrieval probability search index field to be associated with the low retrieval probability corpus;

receive, from the client device, the search query comprising a search term,

wherein the search query indicates a request for a subset of the group-based communication data corpus;

determine a query search result probability based on characteristics of the search term,

wherein the query search result probability indicates a probability of retrieving each group-based communication data object from the low retrieval probability corpus;

query the low retrieval probability search index field based on the query search result probability; and

retrieve, from at least the low retrieval probability corpus, the subset of the group-based communication data corpus.

2. The apparatus of claim 1 , wherein the at least one non-transitory memory and the program code configured to, with the at least one processor, cause the apparatus to further:

receive, from the client device, the search query comprising the search term and representing the request for the subset of the group-based communication data corpus;

retrieve, by querying the high retrieval probability search index field, a first group-based communication data object subset comprising first group-based communication data objects associated with first group-based communication data object features matching the search term; and

retrieve, by querying the high retrieval probability search index field and the low retrieval probability search index field, a combined group-based communication data object subset comprising the subset of the group-based communication data corpus and the first group-based communication data object subset.

3. The apparatus of claim 2 , wherein the at least one non-transitory memory and the program code configured to, with the at least one processor, cause the apparatus to further:

upon determining that a number of group-based communication data objects of the first group-based communication data object subset meets or exceeds a search result threshold,

transmit, to the client device, a combined search results interface for rendering by the client device, wherein the combined search results interface comprises the combined group-based communication data object subset, and wherein the group-based communication data objects of the combined group-based communication data object subset are ordered according to their respective retrieval scores.

4. The apparatus of claim 1 , wherein the at least one non-transitory memory and the program code configured to, with the at least one processor, cause the apparatus to further:

upon determining that the query search result probability is below a query search result probability threshold,

retrieve, by querying the high retrieval probability search index field, a first group-based communication data object subset comprising first group-based communication data objects associated with first group-based communication data object features matching the search term; and

transmit, to the client device, a first search results interface for rendering by the client device, wherein the first search results interface comprises the first group-based communication data object subset, and wherein the first group-based communication data objects of the first group-based communication data object subset are ordered according to their respective retrieval scores.

5. The apparatus of claim 4 , wherein the at least one non-transitory memory and the program code configured to, with the at least one processor, cause the apparatus to further:

upon determining that a number of group-based communication data objects of the first group-based communication data object subset is below a search result threshold,

retrieve, by querying the low retrieval probability search index field, a second group-based communication data object subset comprising second group-based communication data objects associated with second group-based communication data object features matching the search term; and

transmit, to the client device, a second search results interface for rendering by the client device, wherein the second search results interface comprises the first group-based communication data object subset and at least part of the second group-based communication data object subset, and wherein the group-based communication data objects of the first and second group-based communication data object subsets are ordered according to their respective retrieval scores.

6. The apparatus of claim 1 , wherein the programmatically generated likelihood is generated by a machine learning model based at least on one or more of a message length, a term frequency-inverse document frequency (tf-idf) score, a historical group message search rate, a historical channel message search rate, a historical user message search rate, a historical user-channel message search rate, a user type, a message age, an activity notification, a message format, a message type, a reply count, or a message source.

7. The apparatus of claim 1 , wherein the at least one non-transitory memory and the program code configured to, with the at least one processor, cause the apparatus to further:

generate a relevancy score for each group-based communication data object of the plurality of group-based communication data objects, the relevancy score representing a likelihood that the respective group-based communication data object having one or more group-based communication data object features matching to the search query.

8. The apparatus of claim 1 , wherein the at least one non-transitory memory and the program code configured to, with the at least one processor, cause the apparatus to further:

generate, a recency score for each group-based communication data object of the plurality of group-based communication data objects, the recency score representing a network timespan between a group-based communication data object creation time and a search query receiving time.

9. A computer-implemented method for generating tiered search index fields based on a divided group-based communication data corpus, comprising:

receiving a group-based communication data corpus comprising a plurality of group-based communication data objects, each group-based communication data object of the plurality of group-based communication data objects associated with a group-based communication data object feature;

generating a retrieval score for each group-based communication data object of the plurality of group-based communication data objects, the retrieval score representing a programmatically generated likelihood that a respective group-based communication data object will appear in search results responsive to a search query received from a client device associated with a particular user;

assigning each group-based communication data object associated with a retrieval score meeting or exceeding a retrieval score threshold to a high retrieval probability corpus;

assigning each group-based communication data object associated with a retrieval score below the retrieval score threshold to a low retrieval probability corpus;

generating a high retrieval probability search index field to be associated with the high retrieval probability corpus;

generating a low retrieval probability search index field to be associated with the low retrieval probability corpus;

receive, from the client device, the search query comprising a search term;

wherein the search query indicates a request for a subset of the group-based communication data corpus;

determine a query search result probability based on characteristics of the search term,

wherein the query search result probability indicates a probability of retrieving each group-based communication data object from the low retrieval probability corpus;

query the low retrieval probability search index field based on the query search result probability; and

retrieve, from at least the low retrieval probability corpus, the subset of the group-based communication data corpus.

10. The computer-implemented method of claim 9 , further comprising:

receiving, from the client device, the search query comprising the search term and representing the request for the subset of the group-based communication data corpus;

retrieving, by querying the high retrieval probability search index field, a first group-based communication data object subset comprising first group-based communication data objects associated with first group-based communication data object features matching the search term; and

retrieving, by querying the high retrieval probability search index field and the low retrieval probability search index field, a combined group-based communication data object subset comprising group-based communication data objects associated with group-based communication data object features and the first group-based communication data objects associated with the first group-based communication data object features matching the search term.

11. The computer-implemented method of claim 10 , further comprising:

upon determining that a number of group-based communication data objects of the first group-based communication data object subset meets or exceeds a search result threshold,

transmitting, to the client device, a combined search results interface for rendering by the client device, wherein the combined search results interface comprises the combined group-based communication data object subset, and wherein the group-based communication data objects of the combined group-based communication data object subset are ordered according to their respective retrieval scores.

12. The computer-implemented method of claim 9 , further comprising:

upon determining that the query search result probability is below a query search result probability threshold,

retrieving, by querying the high retrieval probability search index field, a first group-based communication data object subset comprising first group-based communication data objects associated with first group-based communication data object features matching the search term; and

transmitting, to the client device, a first search results interface for rendering by the client device, wherein the first search results interface comprises the first group-based communication data object subset, and wherein the first group-based communication data objects of the first group-based communication data object subset are ordered according to their respective retrieval scores.

13. The computer-implemented method of claim 9 , wherein the programmatically generated likelihood is generated by a machine learning model based at least on one or more of a message length, a term frequency-inverse document frequency (tf-idf) score, a historical group message search rate, a historical channel message search rate, a historical user message search rate, a historical user-channel message search rate, a user type, a message age, an activity notification, a message format, a message type, a reply count, or a message source.

14. The computer-implemented method of claim 9 , further comprising:

generating a relevancy score for each group-based communication data object of the plurality of group-based communication data objects, the relevancy score representing a likelihood that the respective group-based communication data object having one or more group-based communication data object features matching to the search query.

15. The computer-implemented method of claim 14 , further comprising:

retrieving, by querying the high retrieval probability search index field, a first group-based communication data object subset comprising first group-based communication data objects associated with first group-based communication data object features matching the search term; and

retrieving, by querying the high retrieval probability search index field and the low retrieval probability search index field, a combined group-based communication data object subset comprising group-based communication data objects associated with group-based communication data object features and the first group-based communication data objects associated with the first group-based communication data object features matching the search term.

16. The computer-implemented method of claim 15 , further comprising:

upon determining that a number of group-based communication data objects of the first group-based communication data object subset meets or exceeds the query search result probability threshold,

transmitting, to the client device, a first retrieval-relevancy search results interface for rendering by the client device, wherein the first retrieval-relevancy search results interface comprises the first group-based communication data object subset, and wherein the first group-based communication data objects of the first group-based communication data object subset are ordered according to their respective retrieval scores and relevancy scores; and

upon determining that the number of group-based communication data objects of the first group-based communication data object subset is below the search result threshold,

transmitting, to the client device, a combined retrieval-relevancy search results interface for rendering by the client device, wherein the combined retrieval-relevancy search results interface comprises the combined group-based communication data object subset, and wherein the combined group-based communication data objects of the combined group-based communication data object subset are ordered according to their respective retrieval scores and relevancy scores.

17. The computer-implemented method of claim 14 , further comprising:

retrieving, by querying the high retrieval probability search index field, a first group-based communication data object subset comprising first group-based communication data objects associated with first group-based communication data object features matching the search term; and

transmitting, to the client device, a first retrieval-relevancy search results interface for rendering by the client device, wherein the first retrieval-relevancy search results interface comprises the first group-based communication data object subset, and wherein the first group-based communication data objects of the first group-based communication data object subset are ordered according to their respective retrieval scores and relevancy scores.

18. The computer-implemented method of claim 17 , further comprising:

upon determining that a number of group-based communication data objects of the first group-based communication data objects subset is below a search result threshold,

retrieving, by querying the low retrieval probability search index field, a second group-based communication data object subset comprising second group-based communication data objects associated with second group-based communication data object features matching the search term; and

transmitting, to the client device, a second retrieval-relevancy search results interface for rendering by the client device, wherein the second retrieval-relevancy search results interface comprises the first group-based communication data object subset and at least part of the second group-based communication data object subset, and wherein the group-based communication data objects of the first and second group-based communication data object subsets are ordered according to their respective retrieval scores and relevancy scores.

19. One or more non-transitory computer readable media storing computer-executable instructions that, when executed by at least one processor, perform a method for generating tiered search index fields based on a divided group-based communication data corpus, the method comprising steps of:

receiving a group-based communication data corpus comprising a plurality of group-based communication data objects, each group-based communication data object of the plurality of group-based communication data objects associated with a group-based communication data object feature;

generating a retrieval score for each group-based communication data object of the plurality of group-based communication data objects, the retrieval score representing a programmatically generated likelihood that a respective group-based communication data object will appear in search results responsive to a search query received from a client device associated with a particular user;

assigning each group-based communication data object associated with a retrieval score meeting or exceeding a retrieval score threshold to a high retrieval probability corpus;

assigning each group-based communication data object associated with a retrieval score below the retrieval score threshold to a low retrieval probability corpus;

generating a high retrieval probability search index field to be associated with the high retrieval probability corpus;

generating a low retrieval probability search index field to be associated with the low retrieval probability corpus;

receive, from the client device, the search query comprising a search term;

wherein the search query indicates a request for a subset of the group-based communication data corpus;

determine a query search result probability based on characteristics of the search term,

wherein the query search result probability indicates a probability of retrieving the group-based communication data object from the low retrieval probability corpus;

query the low retrieval probability search index field based on the query search result probability; and

retrieve, from at least the low retrieval probability corpus, the subset of the group-based communication data corpus.

20. The media of claim 19 , wherein the computer-executable instructions are executed to perform the method further comprising steps of:

upon determining that the query search result probability is below a query search result probability threshold,

retrieving, by querying the high retrieval probability search index field, a first group-based communication data object subset comprising first group-based communication data objects associated with first group-based communication data object features matching the search term; and

transmitting, to the client device, a first search results interface for rendering by the client device, wherein the first search results interface comprises the first group-based communication data object subset, and wherein the first group-based communication data objects of the first group-based communication data object subset are ordered according to their respective retrieval scores.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
MERGER Recorded Jul 29, 2021
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057475/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2020
From: WILLS, JOSHUA; TANDALLA, LUIS; SINGH, JAPINDER
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 052776/0587 →