Change this to:
select * FROM BSA_TRANSACTION bvtpTransaction JOIN BSA_TX_EVENTS trxEvents on key (trxEvents.lastEvent.publicRequestKey) for bvtpTransaction WHERE lastEvent.publicRequestKey IS NOT MISSING ;
In Flexible Schema world, we’ve to account for missing fields. So, a predicate here will enable the optimizer to chose the right index.