javaelasticsearchelasticsearch-rest-client

Can we pass Java Pojo to Elasticsearch Index API using new REST Client


I am going through the new Elasticsearch's Java REST client and looking at different ways to index a document ( here https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.3/java-rest-high-document-index.html )

Is there any possibility where I can pass my Java Pojo to Index? like following

IndexRequest request = new IndexRequest("posts"); 
request.id("1"); 
request.source(new User("1", "Foo", 22, new Date()));
IndexResponse indexResponse = client.index(request, RequestOptions.DEFAULT);

Solution

  • No, you cannot pass a POJO directly to the IndexRequest.source() method, you need to either pass:

    1. a JSON string
    2. a Map
    3. a Jackson serialized POJO
    4. an object created via a provided helper

    In your case, I guess the 3rd option could make more sense since you have a POJO at hand.