Custom filter based on a BitSet for performing a TermsQuery like filtering

Disclaimer: I am an ElasticSearch newbie.

I am looking at working on a custom implementation of a TermsQuery like filter that will key off a BitSet that will house match/should not match encoded as bits and the index of the bitset serving as the document identifier. I would like to know how I can feed such a bitset at querytime and get ElasticSearch to filter out documents based on this BitSet.

I am looking at using the above approach to perform ACL Filtering on indexed documents (to avoid having to index acls which change far too frequently)

The bitset itself will represent a user's access to a set of documents.

The corpus itself will hold at most a million entries and as such the bitset would be a size of that range ( 1 million or so).

I have a vague understanding that Lucene uses BitSets for filters albeit at a segment level. How would I implement such a BitSet filter which will operate at an Index level?

It would be great if someone can throw some pointers as to how this can be achieved