2017-06-15 82 views
0

我非常新的彈性搜索玩笑ElasticSearch搜索API映射命中

我試圖理解下面的代碼:

List<Hit<Talk, Void>> hits = result.getHits(Talk.class); 
     for (Hit<Talk, Void> hit: hits) { 
      Talk talk = hit.source; 
      log.info(talk.getTitle()); 
     } 

這是直接摘自:https://www.elastic.co/blog/found-java-clients-for-elasticsearch

我問題是,Java如何知道映射到哪個變量的字段。

本質上,Java如何知道如何將屬性「title」與Talk類的成員變量「title」匹配。

乾杯

回答

0

在這裏面提到的Talk類是一個Bean的頁面。豆類實施Serializable。當調用result.getHits時,請注意如何將Talk.class對象傳遞給該方法。這意味着你基本上將命中反序列化爲Talk實例。通過如何構建JEST Hit類,這就是您從Elastisearch響應反序列化後訪問Talk實例的方式。

有關Bean的詳細信息,請參見這裏:What is a JavaBean exactly?

+0

因此是有必要使用一個類,這是一個bean?我能不能讓我自己的類實現Serializable? 謝謝你的回答!非常感謝您的幫助! – Anant

+1

一個bean只是一個類需要滿足的一套標準。所以如果你在任何你寫的類中都符合這些標準,那它就是一個bean。換句話說,是的,你可以編寫你自己的實現Serializable的類,如果你符合我關聯的問題的標準,它應該可以工作。 – ryanlutgen