class BookingDaoESImp extends BaseDaoESImp implements BookingDao {

    @Override
    public List<BookingBucket> findBookingBucketsWithAllocatedBookingId(String bookingId) throws IOException
    {
        ExistsQueryBuilder existsQueryBuilder = new ExistsQueryBuilder("allocated_amount." + bookingId);
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder().query(existsQueryBuilder);
        SearchRequest searchRequest = new SearchRequest(this.bookingBucketsIndex);
        searchRequest.source(sourceBuilder);
        ESResponse esResponse = esclient.search(searchRequest);

        List<BookingBucket> result = new ArrayList<>();
        List docs = (List) ((Map) (esResponse.getSourceMap().get("hits"))).get("hits");
        for (Object doc : docs)
        {
            Map docMap = (Map) doc;
            BookingBucket bookingBucket = buildBookingBucket(docMap);
            if (bookingBucket == null)
            {
                continue;
            }
            result.add(bookingBucket);
        }

        return result;
    }

    public  BookingDaoESImp();
    public  BookingDaoESImp(Properties properties);

}