UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Elasticsearch】Validation Failed: 1: no requests addedのエラーでハマる

Spring Bootで作ったJava アプリケーションからElasticsearchにbulk requestするところで以下のエラーが発生した

org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: no requests added
   BulkRequest request = new BulkRequest();
   List.of(searchHits)
      .map(
            searchHit -> {
                String json = searchHit.getSourceAsString();
                return readAndMapping(json, mapper);
            })
            .filter(Option::isDefined)
            .map(Option::get)
            .filter(item -> item.getId() != null)
            .map(item -> save(item, mapper, readIndex))
            .forEach(request::add);
    try {
        client.bulk(request, RequestOptions.DEFAULT);       <-----false, error
    } catch (IOException e) {
        log.error("Failed to update.");
    }

へたにStack Overflowを見てしまい、BulkRequestにつめたオブジェクトのフォーマットを確かめたりとハマってしまった stackoverflow.com

結果的にfilterでリストの中の全ての要素が弾かれてしまっていたのが原因だった

単純な原因だったが忘れそうなのでメモ