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

Java 如何在elasticsearch中使用关键字类型字段的平均聚合

Java 如何在elasticsearch中使用关键字类型字段的平均聚合,java,elasticsearch,Java,elasticsearch,Hi尝试了一些解决方案,但由于缺乏elasticsearch经验,我得出结论 首先,我有这样的索引 field1 | field2 | **status: 200, response_time: 2** (type of this row keyword) //other rows omitted for brevity 我的业务要求是平均响应时间秒。我想解析状态:200,响应时间:2行,用regexp从中获取时间,然后进行平均 我试着这样做: private RestHighLevelCli

Hi尝试了一些解决方案,但由于缺乏elasticsearch经验,我得出结论

首先,我有这样的索引

field1 | field2 | **status: 200, response_time: 2** (type of this row keyword)
//other rows omitted for brevity
我的业务要求是平均响应时间秒。我想解析
状态:200,响应时间:2
行,用regexp从中获取时间,然后进行平均

我试着这样做:

private RestHighLevelClient client;

  public void averaging() {
    SearchRequest searchRequest = new SearchRequest("index_name");
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();

    AvgAggregationBuilder aggregation = AggregationBuilders.avg("response_time_average")
        .field("doc['Message.keyword']").script(
            new Script(
                "def value = doc['Message.keyword']; return Integer.parseInt(value.split('regexp'))"));
    searchSourceBuilder.aggregation(aggregation);

    searchRequest.source(searchSourceBuilder);

    try {
      SearchResponse search = client.search(searchRequest, RequestOptions.DEFAULT);
      Avg agg = search.getAggregations().get("response_time_average");
      double value = agg.getValue();

      //value returns as _infinity_      
    } catch (IOException e) {
      log.error(e.getMessage(), e);
    }
  } 
我没有足够的关于elasticsearch术语的信息。我尝试了很多解决方案,但我认为这一个更接近解决方案

我的elasticservice客户端版本是7.3.1 谢谢:)