问题
I'm extremely new to elastic search
I'm trying to understanding the below code :
List<Hit<Talk, Void>> hits = result.getHits(Talk.class);
for (Hit<Talk, Void> hit: hits) {
Talk talk = hit.source;
log.info(talk.getTitle());
}
This is directly taken from : https://www.elastic.co/blog/found-java-clients-for-elasticsearch
My question is , how does Java know what field to map to what variable.
Essentially , how does Java know , say to match the property "title" to the member variable "title" of the Talk class.
Cheers
回答1:
In the page it mentions that the Talk class is a Bean. Beans implement Serializable. When result.getHits is called, notice how Talk.class object is passed into the method. That means you are basically deserializing the hits into Talk instances. With how the JEST Hit class is structured, that is how you access the Talk instances after they are deserialized from the Elastisearch response.
For more information on Beans, see here: What is a JavaBean exactly?
来源:https://stackoverflow.com/questions/44557382/jest-elasticsearch-search-api-hits-mapping