簡體   English   中英

Elasticsearch使用java api返回原始json

[英]Elasticsearch return raw json with 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();

但是為了在谷歌地圖上顯示它我更喜歡從elasticsearch而不是SearchResponse對象獲取JSON對象,如下所示:

{
    "_index": "indexName",
    "_type": "type",
    "_id": "9094",
    "_version": 31,
    "found": true,
    "_source": {
        //list of properties
    }
}

是否可以使用Java API + SearchRequestBuilder獲取JSON響應,或者我必須使用REST API?

Java api不會為您映射到json(或任何其他實體)。 但是,您可以執行以下操作:

  • 使用spring-data-elasticsearch直接反序列化為實體
  • 從Java api獲取響應並使用像Jackson這樣的東西解析為json
  • 考慮使用將返回gson(Googles json)的開關Api

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM