public Mono<UpdateByQueryResponse> updateByQuery(String index, UpdateByQueryRequest request) {
        HttpClient.ResponseReceiver<?> send = httpClient.post()
                .uri("/"
                        + index
                        + "/_update_by_query")
                .send(Mono.fromCallable(() -> JsonUtil.write(request)));
        return parseResponse(send, inputStream -> {
            try {
                return READER_UPDATE_BY_QUERY_RESPONSE.readValue(inputStream);
            } catch (IOException e) {
                throw new InputOutputException("Failed to parse the result", e);
            }
        });
    }
@author James Chen
@implNote Don't use the Elasticsearch official implementation because:
          <p>
          1. Its jar (elasticsearch-java:8.13.0 is 11.2 MB) is unnecessarily large for our use
          cases.
          <p>
          2. Our implementation is more concise and efficient.
turms-service/src/main/java/im/turms/service/storage/elasticsearch/ElasticsearchClient.java