2017-07-26 5 views
0

Solrのユーザーのためのデータや目標Solrが

{user_id: user1,goals: 1} 
{user_id: user1,goals: 3} 
{user_id: user2,goals: 0} 
{user_id: user2,goals: 4} 
{user_id: user3,goals: 2} 
{user_id: user3,goals: 1} 

私は1,2,3獲得してきたどのように多くのユーザーを見つけるために望んだ...全体での目標を持っている場合は集計関数の数を取得します。私は

{goals: 3, count: 1} 
{goals: 4, count: 2} 

これまでのところ、私は、ユーザーごとに目標の合計数を返すことができますクエリを持っていますが、それは上のファセットが可能かどうかわからないを返すことができ、問合せをしたい上記のデータについては、これ

合計

私のクエリは、これまで

{ 
    "user_facet": 
    { 
    "type":"terms", 
    "field":"user_id", 
    "facet": 
    { 
     "sum_of_goals":"sum(goals)" 
    } 
    } 
} 
+0

あなたは言い換えることができますか?私にはデータが一致していないようです... – Persimmonium

+0

基本的に2つの段階があり、ユーザー1人あたりの目標は合計4人、ユーザー2人は4人、ユーザー3人は3人です。次に、3つの目標= 1、4ゴール= 2 –

+0

を得たユーザーの数をカウントしたいので、{user_id:user1、goals:1}の意味は、user1が完了したという "ゴール1"合計で1つの目標 " – Persimmonium

答えて

1

私はあなたがJSONファセットでこれを得ることができるとは思いません。しかし確かにそれはStreaming Expressionsで可能です。彼らは始めるのがもう少し複雑ですが、もっと多くのことを達成することができます。

+0

ありがとうございます私は、各ユーザーの合計を取得するために、私は必要なデータを計算するためにRubyで結果を処理するためにクエリを使用していますが、私はストリーミング表現を調べます –