3
我在春天web應用程序如下要求:
Elasticsearch返回原始JSON使用Java API
- 找到Elasticsearch對象和谷歌地圖上顯示出來(JSON格式首選)
- 找到對象(同從Elasticsearch如上查詢),並在列表中顯示出來(Java對象格式首選,以顯示它的JSP頁)
我使用SearchRequestBuilder用JAVA寫的API搜索和它工作得很好:
SearchRequestBuilder request = client.prepareSearch("index").setTypes("type")
.setSearchType(SearchType.QUERY_THEN_FETCH).setFrom(0).setSize(10).addFields(RESPONSE_FIELDS);
//request is much more complicated
//...
SearchResponse response = request.execute().actionGet();
SearchHits hits = response.getHits();
但對於谷歌地圖上顯示它,我寧願只是得到JSON對象從elasticsearch代替SearchResponse對象是這樣的:
{
"_index": "indexName",
"_type": "type",
"_id": "9094",
"_version": 31,
"found": true,
"_source": {
//list of properties
}
}
是否可以使用Java API + SearchRequestBuilder獲得JSON響應或我必須爲此使用REST API?
您可以使用jayway路徑來解析SearchHit.getSource(它也與像Jackson和SmartJSON這樣的Mappers集成映射回類/對象,反之亦然)。我覺得保持NoSQL數據庫類型不可知的重要性,比如Elastic。不要過於努力地製造「多種類型」。 – Dexter