These seem to be the possible ways to go about this, from most to least horrifying in terms of dev effort:
Use multiple indexes (no! getting results ranking to work will be a hacky nightmare!)
Find another way to index the annotation data (needs some research and evaluation, might be a lot of work, unlikely to work without losing some features such as query string queries on annotation values, would be the cleanest solution if there is a way at all)
Just live with this limitation, document it, make the admin UI warn the admins if this limit is reached (can the ES API tell us?) and maybe even make the indexing of non-published resources configurable on dev-ops level with a default of false
Delete the repo and look for a different carreer
Currently, solution 3 looks like the most attractive one.
The way we index annotations might open the app up to a potential mapping explosion.
We should evaluate mapping annotations as
[{"k": "...", "v": "..."}, ...]
instead of{k: v, ...}
– especially building queries might become tricky.