简体   繁体   English

如何使用Java High Level Rest Client API映射elasticsearch查询的结果集?

[英]How to map the resultset of elasticsearch query with Java High Level Rest Client API?

I am using ES 7.2. 我正在使用ES 7.2。 Below is a sample query result from ES. 以下是来自ES的示例查询结果。 It has two fields STATUS and SERVICE_ID: 它具有两个字段STATUS和SERVICE_ID:

{{
  "took" : 4,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 106,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "myindex",
        "_type" : "_doc",
        "_id" : "ENXDrWsBF759w7WDGxK4",
        "_score" : 1.0,
        "_source" : {
          "STATUS" : "10",
          "SERVICE_ID" : "916"
        }
      },
      {
        "_index" : "myindex",
        "_type" : "_doc",
        "_id" : "EdXDrWsBF759w7WDGxK4",
        "_score" : 1.0,
        "_source" : {
          "STATUS" : "10",
          "SERVICE_ID" : "916"
        }
      }
    ]
  }
}

I want to map it to my Java Bean "MyBean" below: 我想将其映射到下面的Java Bean“ MyBean”:

public class MyBean {

  String SERVICE_ID;
  String STATUS;

public String getSERVICE_ID() {
    return SERVICE_ID;
}
public void setSERVICE_ID(String sERVICE_ID) {
    SERVICE_ID = sERVICE_ID;
}
public String getSTATUS() {
    return STATUS;
}
public void setSTATUS(String sTATUS) {
    STATUS = sTATUS;
}
}

I have tried the mapping below by using ObjectMapper's of jackson library but it had the following exception: 我已经通过使用杰克逊库的ObjectMapper尝试了下面的映射,但是它具有以下异常:

        try {
                    SearchResponse searchResponse1 = client.search(searchRequest, RequestOptions.DEFAULT);
            ObjectMapper mapper = new ObjectMapper();
            java.util.List<MyBean> lst = new ArrayList<MyBean>();
            for(SearchHit hit : searchResponse1.getHits().getHits()) {
//here below, i have the exception
                MyBean s = mapper.readValue(hit.getSourceAsString(), MyBean.class);
                lst.add(s);
            } 

The below is the exception: 以下是例外:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "STATUS" (class MyBean), not marked as ignorable (2 known properties: "status",  "service_ID")
 at [Source: (String)"{"STATUS":"11"}"; line: 1, column: 12] (through reference chain: MyBean["STATUS"])

Do you have any idea? 你有什么主意吗?

How about this? 这个怎么样?

public class MyBean {
    private String status;
    private String name;
 
    @JsonProperty("SERVICE_ID")
    public void setServiceId(String serviceId) {
        this.serviceId = serviceId;
    }
 
    @JsonProperty("SERVICE_ID")
    public String getServiceId() {
        return serviceId;
    }

    @JsonProperty("STATUS")
    public void setStatus(String status) {
        this.status = status;
    }
 
    @JsonProperty("STATUS")
    public String getStatus() {
        return status;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ElasticSearch 多词查询与 Java 高级 REST 客户端 - ElasticSearch Multi Term Query With Java High-Level REST Client ElasticSearch Java 高级 REST 客户端:过滤文档和或查询 - ElasticSearch Java High Level REST Client: filter documents and or query 如何使用 JAVA 高级别 Z50780F47F6839D047D60BC453 - How to make Point InTime API request of Elasticsearch using JAVA High Level REST client Elasticsearch高级休息客户端 - 带有类型(子)字段的Java Map - 日期,数字等 - Elasticsearch High Level Rest Client - java Map with typed (sub) fields - dates, numbers etc Elasticsearch Java 高级 Rest 客户端构造具有多个匹配值和 OR2DA 查询的 Z84E2C64F38F78BA27EA5C905ZA 查询 - Elasticsearch Java High Level Rest Client constructing a boolean query with multiple match values and OR condition 在使用Java高级其余客户端批量API创建动态Elasticsearch索引时需要帮助 - Need help in creating dynamic elasticsearch index using Java high level rest client bulk API Elasticsearch REST高级客户端结合了查询构建器 - Elasticsearch REST High Level Client combine query builders Elasticsearch高级Rest Client Java排序不正常 - Elasticsearch High Level Rest Client Java sorting not working properly ElasticSearch Java高级Rest客户端:建议搜索 - ElasticSearch Java high Level Rest Client: Suggest-search 我们如何在 Java 中为 ElasticSearch 7.4.2 Java 高级 REST 客户端创建一个 IndexRequest? - How do we create an IndexRequest in Java for ElasticSearch 7.4.2 Java High Level REST Client?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM