Index request to index a typed JSON document into a specific index and make it searchable. Best created using {@link org.elasticsearch.client.Requests#indexRequest(String)}.
The index requires the {@link #index()}, {@link #type(String)}, {@link #id(String)} and{@link #source(byte[])} to be set.
The source (content to index) can be set in its bytes form using ( {@link #source(byte[])}), its string form ( {@link #source(String)}) or using a {@link org.elasticsearch.common.xcontent.XContentBuilder}( {@link #source(org.elasticsearch.common.xcontent.XContentBuilder)}).
If the {@link #id(String)} is not set, it will be automatically generated.
@author kimchy (shay.banon)
@see IndexResponse
@see org.elasticsearch.client.Requests#indexRequest(String)
@see org.elasticsearch.client.Client#index(IndexRequest)