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でリストの中の全ての要素が弾かれてしまっていたのが原因だった
単純な原因だったが忘れそうなのでメモ