IP Library Granted Patent US 11,360,896
Granted Patent B2
US 11,360,896 · App. 16/939,611 · Granted Jun 14, 2022

Method, apparatus and computer program product for implementing filter cache in a group-based communication platform

Inventor: Joshua Wills (San Francisco, CA)
Assignee: SlackTechnologies, LLC
G06F12/0815G06F16/2228G06F16/2365G06F16/93G06F2212/1016G06F2212/608
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,360,896
App. No.
16/939,611
Granted
Jun 14, 2022
Kind
B2
Abstract

Method, apparatus and computer program product for generating filter cache are described herein. For example, the apparatus includes 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 are configured to, with the at least one processor, cause the apparatus to at least generate an index document array, generate a group identifier lookup array, generate a channel identifier lookup array, and generate a filter cache for the index document array based at least on the group identifier lookup array and the channel identifier lookup array.

Claims (50)

1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by a processor, perform a method comprising:

receiving, from a user of a group-based communication system, a search query comprising:

information identifying a set of groups to which the user has access permissions;

information identifying a set of channels to which the user has access permissions; and

at least one search term;

identifying within the filter cache, based on the set of groups to which the user has access permissions, a set of channel nodes comprising:

a starting channel node corresponding to a first group in the set of groups; and

an ending channel node corresponding to a second group in the set of groups;

identifying within the set of channel nodes, based on the set of channels to which the user has access permissions, a sub-set of accessible channel nodes;

identifying, based on the sub-set of accessible channel nodes, a plurality of accessible index documents; and

in response to determining the at least one search term, returning a query result associated with at least one accessible index document.

2. The non-transitory computer-readable media of claim 1 , wherein each accessible index document comprises a set of fields having a name, a value, and an index document identifier.

3. The non-transitory computer-readable media of claim 2 , wherein the plurality of search terms includes one or more channel identifiers.

4. The non-transitory computer-readable media of claim 1 , wherein the at least one search term comprises a plurality of search terms.

5. The non-transitory computer-readable media of claim 1 , wherein the query result is determined based on an index document selected from the accessible index documents.

6. The non-transitory computer-readable media of claim 1 , wherein the query result comprises one or more group-based communication system messages.

7. The non-transitory computer-readable media of claim 6 , wherein the query result further comprises one or more of: text, image, video, or audio associated with at least one of the one or more group-based communication system messages.

8. A method comprising:

receiving, from a user of a group-based communication system, a search query comprising:

information identifying a set of groups to which the user has access permissions;

information identifying a set of channels to which the user has access permissions; and

at least one search term;

identifying within the filter cache, based on the set of groups to which the user has access permissions, a set of channel nodes comprising:

a starting channel node corresponding to a first group in the set of groups; and

an ending channel node corresponding to a second group in the set of groups;

identifying within the set of channel nodes, based on the set of channels to which the user has access permissions, a sub-set of accessible channel nodes;

identifying, based on the sub-set of accessible channel nodes, a plurality of accessible index documents; and

in response to determining the at least one search term, returning a query result associated with at least one accessible index document.

9. The method of claim 8 , wherein each accessible index document comprises a set of fields having a name, a value, and an index document identifier.

10. The method of claim 9 , wherein the plurality of search terms includes one or more channel identifiers.

11. The method of claim 8 , wherein the at least one search term comprises a plurality of search terms.

12. The method of claim 8 , wherein the query result is determined based on an index document selected from the accessible index documents.

13. The method of claim 8 , wherein the query result comprises one or more group-based communication system messages.

14. The method of claim 13 , wherein the query result further comprises one or more of: text, image, video, or audio associated with at least one of the one or more group-based communication system messages.

15. A system comprising at least one processor and at least one non-transitory memory storing computer executable instructions that when executed by the processor cause the system to carry out actions comprising:

receiving, from a user of a group-based communication system, a search query comprising:

information identifying a set of groups to which the user has access permissions;

information identifying a set of channels to which the user has access permissions; and

at least one search term;

identifying within the filter cache, based on the set of groups to which the user has access permissions, a set of channel nodes comprising:

a starting channel node corresponding to a first group in the set of groups; and

an ending channel node corresponding to a second group in the set of groups;

identifying within the set of channel nodes, based on the set of channels to which the user has access permissions, a sub-set of accessible channel nodes;

identifying, based on the sub-set of accessible channel nodes, a plurality of accessible index documents; and

in response to determining the at least one search term, returning a query result associated with at least one accessible index document.

16. The system of claim 15 , wherein each accessible index document comprises a set of fields having a name, a value, and an index document identifier.

17. The system of claim 16 , wherein the plurality of search terms includes one or more channel identifiers.

18. The system of claim 15 , wherein the at least one search term comprises a plurality of search terms.

19. The system of claim 15 , wherein the query result is determined based on an index document selected from the accessible index documents.

20. The system of claim 15 , wherein the query result comprises one or more group-based communication system messages.

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 Jul 27, 2020
From: WILLS, JOSHUA
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 053318/0438 →
Continuity (2)
Continuation 16049175 · Jul 30, 2018
Related Publication 20200356480A1 · Nov 12, 2020