A computer-implemented method comprising: creating and storing (202, 204) a plurality of different access group identifiers each associated with one or more user account identifiers, and a plurality of different classification markings each being a label representing a different level of security classification for an electronic document for restricting access thereto, and associating each of the user account identifiers with one or more of the classification markings; indexing each particular electronic document among a plurality of different electronic documents in association with values of one or more of the access group identifiers and with an inverse list of values of the classification markings that apply to the particular electronic document in a classification index, the inverse list of values comprising all values of the classification markings other than those that apply to the particular electronic document; receiving a search query that specifies one or more attributes of electronic documents and at least one of the different classification markings; executing a search of the classification index based on the search query, wherein executing the search comprises obtaining a result set comprising a subset of the plurality of different electronic documents, wherein each document of the result set matches the one or more attributes of the query; filtering the obtained result set by, for each particular document of the result set, calculating a respective intersection of the received at least one of the different classification markings and the inverse list associated with the particular document, and removing the particular document from the result set if the calculated respective intersection is not null; in response to filtering the result set, providing the filtered result set in response to the search query; and filtering the result set by including a particular document only when a particular user account identifier is associated with at least one access group identifier that is associated with that particular document, wherein the method is performed using one or more processors. creating and storing (202, 204) a plurality of different access group identifiers each associated with one or more user account identifiers, and a plurality of different classification markings each being a label representing a different level of security classification for an electronic document for restricting access thereto, and associating each of the user account identifiers with one or more of the classification markings; indexing each particular electronic document among a plurality of different electronic documents in association with values of one or more of the access group identifiers and with an inverse list of values of the classification markings that apply to the particular electronic document in a classification index, the inverse list of values comprising all values of the classification markings other than those that apply to the particular electronic document; receiving a search query that specifies one or more attributes of electronic documents and at least one of the different classification markings; executing a search of the classification index based on the search query, wherein executing the search comprises obtaining a result set comprising a subset of the plurality of different electronic documents, wherein each document of the result set matches the one or more attributes of the query; filtering the obtained result set by, for each particular document of the result set, calculating a respective intersection of the received at least one of the different classification markings and the inverse list associated with the particular document, and removing the particular document from the result set if the calculated respective intersection is not null; in response to filtering the result set, providing the filtered result set in response to the search query; and filtering the result set by including a particular document only when a particular user account identifier is associated with at least one access group identifier that is associated with that particular document, wherein the method is performed using one or more processors.