篠田です。
須藤さん、貴重なアドバイスをいただきありがとうございます。
> > 実際には drilldown の結果が複数あるケースが多いので、そのときは個別に
> > _score の最大値を調べることになりますが、その処理を一回の select で行
> > うことは可能でしょうか?
>
> ちょっとやりたいことを理解できていない気がするんですが、↓み
> たいに自分がtopなのかをチェックするといいんじゃないかと思い
> ました。
私の質問が悪かったようで申し訳ありません。
「検索ワードに引っかかったメールで、スレッド最上位のものだけをピックアッ
プしたい(=なぜならスレッド下位のメールはどうせ全文引用されたワードが引っ
かかっているだけだから)」ということになります。
メールT1
+メールT1-C1(*)
+メールT1-C2(*)
+メールT1-C3(*)
メールT2(*)
+メールT2-C1(*)
+メールT2-C2(*)
メールT3
+メールT3-C1
+メールT3-C2(*)
+メールT3-C3(*)
ある検索ワードで↑の(*)のメールが引っかかったとします。
そんなときに、
+メールT1-C1(*)
メールT2(*)
+メールT3-C2(*)
この3つのメールだけをピックアップしたいのです。なぜならその他のメールは
上位のメールの全文引用したワードに引っかかっている(可能性が高い)からです。
そこで私が考えたのが、
select Mail \
--query 'subject:@two' \
--scorer '_score=vector_size(messageid.follow)' \
--output_columns 'subject,_score' \
--drilldown messageid.top
で最後のドリルダウンで出てきた messageid.top の中からトップの_scoreのも
ののみを抽出すればいいのでは、という方法です。
ただ、なんかスマートじゃなく、もっといい方法がありそうな気がするんですよ
ね。。。
--
篠田 敦
shino****@jcom*****