私は値の数に関する情報を得るためにJava 8の集計を使用しています。追加情報付きのJava8集計コレクタ
例: 私はこれが
[
{a=1, b=2, c=2},
{b=1, c=1, d=1}
]
ような構造になり
List<Map<String, Long>> collect = docs
.map(doc -> doc.collect(Collectors.groupingBy(Function.identity(), Collectors.counting())))
.collect(Collectors.toList());
を行うことによって、ドキュメント内の各単語の出現をカウントすることができる午前
Stream<String> doc1 = Stream.of("a", "b", "c", "b", "c");
Stream<String> doc2 = Stream.of("b", "c", "d");
Stream<Stream<String>> docs = Stream.of(doc1, doc2);
のようなストリームの束を持っている場合しかし、そのカウントを元のdocIdに関連付けることができます。たとえば、私は
[
{a=(randId1, 1), b=(randId1, 2), c=(randId1, 2)},
{b=(randId2, 1), c=(randId2, 1), d=(randId2, 1)}
]
randId1
と
randId2
は、実行時に生成することができます
(私は独特のソースに戻って追跡する方法が必要です)と()
ような構造を持っていると思いアパッチからPairクラスを表します。
私は(docId, doc)
のPair
でドキュメントをラップすることを試みたが、私は私が必要なフォーマットで出力を得るにはどうすればよい
List<Map<String, Long>> collect = docs.map(doc -> Pair.of(UUID.randomUUID(), doc))
.map(p -> p.getRight().collect(Collectors.groupingBy(Function.identity(), Collectors.counting())))
.collect(Collectors.toList());
Collectors.counting()
置換を修正することで立ち往生していますか?
偉大な答え..ありがとう – Anoop
@Anoop全くありません。どう致しまして。 –