code: @Override
    public IndexRequestBuilder createIndexRequest(Client client,
          String indexPrefix, String indexType, Event event) throws IOException {
      IndexRequestBuilder request = prepareIndex(client);
      String realIndexPrefix = BucketPath.escapeString(indexPrefix, event.getHeaders());
      String realIndexType = BucketPath.escapeString(indexType, event.getHeaders());
  
      TimestampedEvent timestampedEvent = new TimestampedEvent(event);
      long timestamp = timestampedEvent.getTimestamp();
  
      String indexName = getIndexName(realIndexPrefix, timestamp);
      prepareIndexRequest(request, indexName, realIndexType, timestampedEvent);
      return request;
    }
docs: Creates and prepares an {@link IndexRequestBuilder} from the supplied
  {@link Client} via delegation to the subclass-hook template methods
  {@link #getIndexName(String, long)} and
  {@link #prepareIndexRequest(IndexRequestBuilder, String, String, Event)}