in the MongoDB documentation of Spring you can find Index Creation, there you can find how do create indexes at runtime (including those defined with @Indexed).
Assuming in your multi tenant implementation your MongoTemplate chooses the correct tenant database (or collection) at runtime then after setting your tentant you can do this to create the defined indexes:
public void createMissingIndexes(MongoTemplate mongoTemplate) {
MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext = mongoTemplate.getConverter().getMappingContext();
IndexResolver resolver = new MongoPersistentEntityIndexResolver(mappingContext);
mappingContext.getPersistentEntities()
.stream()
.filter(it -> it.isAnnotationPresent(Document.class))
.forEach(it -> {
IndexOperations indexOps = mongoTemplate.indexOps(it.getType());
resolver.resolveIndexFor(it.getType()).forEach(indexOps::ensureIndex);
});
}