elasticsearch,Java,Mongodb,elasticsearch" /> elasticsearch,Java,Mongodb,elasticsearch" />

Java 在ElasticSearch中获取SearchResponse的结果

Java 在ElasticSearch中获取SearchResponse的结果,java,mongodb,elasticsearch,Java,Mongodb,elasticsearch,我试图使用ES作为我的MongoDB的索引。我成功地集成了它们,但我发现搜索API相当复杂和混乱。JavaAPI也没有太大帮助 我能够找到精确的匹配,但我如何才能得到这个结果?这是我的密码: Node node = nodeBuilder().node(); SearchResponse sr = node.client().prepareSearch() .addAggregation( AggregationBuilders.terms("user"

我试图使用ES作为我的MongoDB的索引。我成功地集成了它们,但我发现搜索API相当复杂和混乱。JavaAPI也没有太大帮助

我能够找到精确的匹配,但我如何才能得到这个结果?这是我的密码:

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);
}
Node Node=nodeBuilder().Node();
SearchResponse sr=node.client().prepareSearch()
.addAggregation(
AggregationBuilders.terms(“用户”).field(“admin2san”)
.子聚合(聚合生成器.术语(“SPT”).字段(“64097”))
)
.execute().actionGet();
SearchHit[]results=sr.getHits().getHits();
List myfirewall=results.getSourceAsObjectList(Firewall.class);
用于(防火墙信息:myfirewall){
System.out.println(“搜索结果为”+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响应转换为防火墙(POJO)


我希望这就是你想要的。

response.getHits().getHits()[0].getSourceAsMap()你可以试试这样的东西

你能再详细一点吗?您希望最终结果是什么?我希望在Sytem.out.println中显示此查询的结果。我添加了一些内容以将日期参数格式化为已定义的DateFormatNo result:(Samy你能给我你的地址吗?如果结果为空,那么你的Resest必须没有响应。确保你的数据样本应该有结果。如果结果不为空,并且Gson无法从Json转换为POJO,请确保ElasticSearch中返回的字段与对象防火墙中返回的字段相同。@SamyElaiassi-如果我有任何列表变量怎么办是否可以在防火墙类中使用?