java – 在ElasticSearch中获取SearchResponse的结果

前端之家收集整理的这篇文章主要介绍了java – 在ElasticSearch中获取SearchResponse的结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用ES作为MongoDB的索引.我成功地将它们集成在一起,但我发现搜索API相当复杂和令人困惑. Java API也没有太大帮助.

我能找到完全匹配,但我怎样才能得到这个结果?这是我的代码

Node node = nodeBuilder().node();

SearchResponse sr = node.client().prepareSearch()
        .addAggregation(
            AggregationBuilders.terms("user").field("admin2san")
            .subAggregation(AggregationBuilders.terms("SPT").field("64097"))
        )
        .execute().actionGet();

SearchHit[] results = sr.getHits().getHits();
List<Firewall> myfirewall = results.getSourceAsObjectList(Firewall.class);
for (Firewall info : myfirewall) {
       System.out.println("search result is " + info);
}

解决方法

我不太确定我理解你的问题.

如果你想根据你的例子打印searchResponse的结果,它应该是这样的:

SearchHit[] results = sr.getHits().getHits();
        for(SearchHit hit : results){

            String sourceAsString = hit.getSourceAsString();
            if (sourceAsString != null) {
                Gson gson = new GsonBuilder().setDateFormat(dateFormat)
                        .create();
                System.out.println( gson.fromJson(sourceAsString,Firewall.class));
            }
        }

我正在使用Gson将Json响应转换为FireWall(POJO).

我希望这就是你要找的东西.

原文链接:https://www.f2er.com/java/126858.html

猜你在找的Java相关文章