2017-07-26 46 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

基本上有两个阶段,总共每个用户的目标,所以用户1 = 4,用户2 = 4,用户3 = 3个目标。然后我想统计已经获得3个进球数= 1,4个进球数= 2 –

+0

的用户数,那么{user_id:user1,goals:1}是什么意思,user1已经完成了“user1已经完成”的“进球1”总共1个目标“ – Persimmonium

回答

1

我不认为你可以用JSON方面得到这个。但肯定的是,这可能与Streaming Expressions。他们开始有点复杂,但你可以完成更多的事情。

+0

谢谢,现在我使用查询来获取每个用户的总数,并在Ruby中处理结果来计算我需要的数据,但我会查看流式表达式 –