如何从Java中的Elasticsearch获取匹配数据

时间:2019-01-17 11:55:11

标签: java elasticsearch

我在Java中将Elasticsearch响应存储为字符串值,如何仅处理匹配数据

3 个答案:

答案 0 :(得分:1)

从Java访问它的最好方法是使用Elastic的官方Java REST API。该API使您可以使用Java对象,而不必自己处理数据。

答案 1 :(得分:1)

例如,您要检索所有数据作为Car类型。您的查询响应存储在searchResponse变量中,获取所有匹配并将其序列化为对象。 看下面的例子:

Gson gson = new Gson();

var flowers = new ArrayList<Flower>();

Arrays.stream(searchResponse.getHits().getHits()).forEach(hit ->
                    cars.add(gson.fromJson(hit.getSourceAsString(), Car.class)));

当然,我正在使用gson将JSON序列化为对象。

答案 2 :(得分:0)

您首先需要使用gson,Jackson或其他方法将json字符串转换为json / map对象。

然后,一旦有了地图,命中项就位于:hits.hits键,作为一组地图,该数组中的每个地图都代表一个命中及其元数据。原始文档在每次匹配中都位于_source键下。

我也强烈建议您阅读Elasticsearch文档,这是很好的资料。