[groonga-dev,04844] Re: 参照されることが多い記事のスコアを上げたい

Back to archive index
shinonon shino****@jcom*****
2021年 3月 26日 (金) 21:19:32 JST


篠田です。

須藤さん、貴重なアドバイスをいただきありがとうございます。

> > 実際には 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*****



groonga-dev メーリングリストの案内
Back to archive index