Is it possible to create a custom field type via plugin or any other means? The idea would be to make the calling applications far easier:
In my use-case the passed in data would be "interpreted" by a 3rd party library which would then generate a large number of byte fields (100-1000s).
The more critical aspect is the actual searching. Upon searching first these byte fields are used and then the 3rd party lib would apply an additional (slow) search step and the hits from the byte fields. Only the hits from this second step must count as hits.
As you can see doing this client side will lead to problems especially in paging scenarios as from the elastic search hits, some would then be removed again. So you would have to ask for too many hits and then take the n-first requested ones (and check if there actually are enough hits). And more. Just leads to complex logic on caller side.