Elasticsearch使用java api返回原始json

时间:2015-07-11 09:28:35

标签: java elasticsearch spring-data-elasticsearch

我的春季网络应用程序中有以下要求:

  • 从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对象而不是像这样的SearchResponse对象:

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

是否可以使用Java API + SearchRequestBuilder获取JSON响应,或者我必须使用REST API?

1 个答案:

答案 0 :(得分:4)

Java api不会为您映射到json(或任何其他实体)。但是,您可以执行以下操作: