## Documenting ElasticSearch Java Client The current [API documentation](https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html) for the ElasticSearch Java Client is woefully inadequate. First of all, there is no JavaDoc. Luckily I found some at [https://www.javadoc.io/doc/org.elasticsearch/elasticsearch/2.3.0](https://www.javadoc.io/doc/org.elasticsearch/elasticsearch/2.3.0) The tuorials don't provide any of the `import` statements, which makes it next to impossible to use. For example, the [TransportClient documentation](https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html) contains the following code snippet: ``` // on startup Client client = TransportClient.builder().build() .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300)); // on shutdown client.close(); ``` OK - so where do I find `Client` and `TransportClientBuilder`? Through trial-and-error, I found these worked for me to get that code to compile: ``` import org.elasticsearch.client.Client; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.transport.InetSocketTransportAddress; ``` The [GET API documentation](https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-get.html) is only one line: ``` GetResponse response = client.prepareGet("twitter", "tweet", "1").get(); ``` But, where does `GetResponse` come from? Given the JavaDocs I found above, you can look it up, or here it is: ``` import org.elasticsearch.action.get.GetResponse; ```