Pendahuluan awal mengenai Elastic Search bisa dilihat di Apa itu elastic search ?

2 cara awal Elastic Search Client bisa dilihat di TransportClient dan JEST ?

Ok, sebelumnya kita sudah melihat bahwa ada 2 cara awal untuk inisiasi Elastic Search Client yaitu :

  • menggunakan TransportClient library dari Elastic Searchnya langsung. (deprecated)
  • menggunakan JEST library.

Kita akan lihat 3 cara lain, yaitu :

  • menggunakan REST Client (deprecated) –> terdiri dari Low Level RestClient (LLRC) dan High Level RestClient (HLRC).
  • menggunakan API Client –> merupakan ElasticSearch Java API client, cara terbaru dalam koneksi ke Elastic Search Server.
  • menggunakan HTTP Rest Client umum seperti Apache HTTP Client, RestTemplate, Feign, dll.

Referensi : Java Rest Client



3. REST Client –> terdiri dari Low Level RestClient (LLRC) dan High Level RestClient (HLRC).


REST Client ini berarti koneksi dilakukan dengan HTTP, menggunakan port standar Elastic Search untuk HTTP yaitu 9200, lalu mengakomodasi security, load balancing, dll terkait dengan HTTP protokol.

Terdiri dari 2 cara :

  • Low Level RestClient (LLRC)
  • High Level RestClient (HLRC)

Low Level Rest Client (LLRC)

LLRC ini direlease di Elastic Search versi 5.0.0, setelah sekian lama berkutat dengan library TransportClient saja, atau dengan library HTTP Rest API yang ada seperti Apache HTTP Rest Client.

Dengan LLRC ini, maka client akan berkomunikasi dengan cluster ElasticSearch melalui protokol HTTP.

LLRC ini akan menangani hal terkait kasus lower level, seperti koneksi, tracing, health, discovery node, load balancing.

Yang disisakan untuk diproses sendiri oleh pengguna adalah Marshalling dan Un-Marshalling response.

LLRC ini juga thread safe dan Singleton, bisa dibuat cuma satu untuk digunakan di aplikasi kita.

Untuk menggunakan LLRC ini, kita dapat mengimport library nya misalnya dengan maven :

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>7.15.2</version>
</dependency>

Secara internal, LLRC ini tergantung kepada Apache Http Async Client ketika mengirimkan request HTTP ke ElasticSearch Server.

Cara menginisasinya pun mudah sbb :

RestClient restClient = RestClient.builder(
    new HttpHost("localhost", 9200, "http"),
    new HttpHost("localhost", 9201, "http")).build();

Referensi : ElasticSearch Java Low Level Rest Client


High Level Rest Client (HLRC)

HLRC ini direlease di Elastic Search versi 5.6.0, sebagai support tambahan diatas Low Level Rest Client.

Dengan HLRC ini, sebenarnya merupakan pembungkus dari RestClient yang low level diatas.

Tetapi dengan tambahan Marshalling dan Un-Marshalling response.

HLRC ini sebenarnya sudah deprecated juga semenjak versi 7.15.0, bersama dengan Low Level RestClient, dan disarankan untuk memakai Java Client API.

Kita dapat mengimport library nya misalnya dengan maven :

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.15.2</version>
</dependency>

Secara internal, HLRC tergantung kepada LLRC, dan ujung-ujungnya tergantung ke Apache Http Async Client ketika mengirimkan request HTTP ke ElasticSearch Server.

Oleh karenanya, cara menginisasinya pun harus menginisiasi LLRC dahulu, sbb

RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(
                new HttpHost("localhost", 9200, "http"),
                new HttpHost("localhost", 9201, "http")));

Referensi : ElasticSearch Java High Level Rest Client

Kita akan lanjut di part 4