Flatten Elasticsearch response

53 views Asked by At

I'm trying to retrieve some documents from Elasticsearch with the new Java client api, but I can't figure out how to extract nested fields so that the structure would be flattened and easy to search after extraction.

Right now, the response is parametrized and looks like this:

SearchResponse<Model> model = client.search(request, Model.class);

Model:

public class Model  {

private String id;

private NestedClass nestedClass;

public static class NestedClass {
    private String field1;
    private String field2;
}

}

I'm using this client:

        <groupId>co.elastic.clients</groupId>
        <artifactId>elasticsearch-java</artifactId>
        <version>7.17.0</version>

I am able to populate all the fields, but I want the response to be something like this instead:

{ 
    id,
    nestedClass.field1,
    nestedClass.field2,
    ...
}

I am thinking of converting the response to Json after retrieving it, but I guess this will affect performance. Do you know if this can be done directly when searching in ES, without other changes? Thanks

0

There are 0 answers