基本的な動きはお隣の collectメソッド にほぼ説明があります。
finisherやcharacteristicsなんかは Collectorインターフェースのドキュメント に詳しく記述があります。
そもそもの前提条件として一般的なコレクションのreduce(リダクション,還元)操作がピンとこないのであれば、そちらを先に理解した方が良いかもしれません。
※JavaのはちょっととっつきにくいかもしれないのでJavaScriptとか他言語で調べた方がよい可能性がなくもない
またcombinerとか一部のCharacteristicsで出てくる並列とか順序については、streamパッケージ全体 の解説を一読しておいた方がよいかもしれません。
自分で試した内容として「ドキュメントの確認」をされた、とのことですが
メソッドやクラスなど直接1件見てみるだけではなく、そこから関連するものを辿って調べないと分からない場合があります。
(今回のように複数引数を取るcollectの派生のような説明になっていたり、パッケージ全体としてstreamの挙動が前提になっている等)