送信者のメールIDと受信者のメールIDを含む一連のドキュメントがあります。
のようなファセットクエリを使用する場合facet.field=senderemailid&facet.limit=10&facet.offset=0
。その対応するメールIDによって送信されたメールの総数を取得できるように
結果は
<int name = "xxx@e.com"> 157 <int>
<int name = "x11@e.com"> 141 <int>
<int name = "x22@e.com"> 32 <int>
を使用する場合もfacet.field=recipientmailid&facet.limit=10&facet.offset=0
、対応するメールIDで受信したメールの総数を取得できます。
結果は
<int name = "x1x@e.com"> 41 <int>
<int name = "x22@e.com"> 132 <int>
<int name = "x2y@e.com"> 92 <int>
結果を取得したら、Javaコードを使用して、各電子メールIDが受信した電子メールの数と送信した電子メールの数の結果をグループ化します。このように、ページネーションを実現できません。両方の結果が一部の電子メールIDで異なるためです。
私の期待は何ですか、
<int name = "x22@e.com">
< int > 32 < int >
< int > 132 < int >
<int name = "x22@e.com">
したがって、一度に送信メールと受信メールの数を一度に取得できます。結果をグループ化するためにJavaコードを使用する必要はありません。
結果をsolr自体にグループ化する方法がsolrに存在するので、結果をグループ化するJavaコードを回避でき、ページネーションを実現できます。
[注:recipientmailidとsenderemailidはどちらも複数値です。必要に応じて、後でsenderemailidを単一値に変更できます。ただし、受信者のメールIDは複数値にする必要があります。]