Method, apparatus and computer program product for implementing filter cache in a group-based communication platform
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.
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.