Patent ID: 9230083
Filing Date: 2016-01-05
CPC Classification: G06F

Claim Text:
1. A method comprising: obtaining data to be indexed from each of a plurality of applications, wherein said obtaining includes receiving a plurality of documents pushed by individual ones of a plurality of applications through an application programming interface of a shared search service; indexing said data into a shared search index of said secure, shared search service, wherein said indexing includes storing, for each one of said documents pushed through said application programming interface, in an entry representing said document in an application table within said shared search index, a tag identifying which one of said applications pushed said document through said application specific programming interface, and wherein said indexing further includes storing, for each word in said data, in an index entry for said word, an indication of an entry in said application table representing one of said documents containing said word, and wherein said shared search index is shared across said plurality of applications and a plurality of users; receiving a search query from one of said users; obtaining, responsive to said search query and said index entries, unfiltered initial search results including all documents matching said search query; storing said initial search results prior to displaying any of said initial search results; determining, prior to displaying any of said initial search results, and responsive to said initial search results, said index entries and said document table in said shared search index, for each document in said initial search results, which one of said plurality of applications pushed said document through said application programming interface of said shared search service; organizing documents in said initial search results, prior to displaying any of said initial search results, into groups reflecting which of said plurality of applications pushed each document through said application programming interface of said shared search service; determining, for each document in said initial search results, prior to displaying any of said initial search results, one of a plurality of security filtering modules registered by a corresponding one of said plurality of applications that pushed said document through said application programming interface of said shared search service to be indexed; applying, prior to displaying any of said initial search results, security filtering modules registered by individual ones of said plurality of applications that pushed said documents in said initial search results through said application programming interface to said initial search results to obtain filtered search results, wherein said applying includes said security filtering modules removing documents from said initial search results to which said one of said users does not have access, and performs application specific security filtering on a document by document basis within said initial search results by individually applying individual ones of said security filtering modules to only those documents of said initial search results pushed through said application programming interface of said search service by corresponding ones of said applications that registered said security filtering modules; and displaying said filtered search results.