我有一个SOLR查询
group.field=USER_TYPE&group.limit=3&group.format=grouped
所以,这完全基于用户类型进行分组。但是,组内的结果包含重复。也就是说,每个用户都有唯一的user_id和user_group。每个用户可以拥有多个user_group。因此,结果包含具有不同user_groups和相同user_id的重复用户。我希望分组结果不应包含重复的user_id值。
{"groupValue":"A","doclist":{"numFound":849956,"start":0,"maxScore":9.992027,\
"docs":[
{"user_group":"GPA","user_id":"4443510",.....},
{"user_group":"GPB","user_id":"4443510",.....},
{"user_group":"GPC","user_id":"4443510",.....},
....
]
在这种情况下,任何人都可以帮助避免重复。
修改 我期待结果可能是
{"groupValue":"A","doclist":{"numFound":849956,"start":0,"maxScore":9.992027,
"docs":[
{"groupValue":"4443510"
"docs":[
{"user_group":"GPA","user_id":"4443510",.....},
{"user_group":"GPB","user_id":"4443510",.....},
{"user_group":"GPC","user_id":"4443510",.....},
....
]
....
]
答案 0 :(得分:0)
我认为不可能在小组内进行分组。
但另一方面,我认为你可以通过修改索引的方式来解决这个问题。
现在,每个user_id都有多个文档:
"docs":[
{"user_group":"GPA","user_id":"4443510",.....},
{"user_group":"GPB","user_id":"4443510",.....},
{"user_group":"GPC","user_id":"4443510",.....},
....
]
您可以按照以下方式进行修改以解决问题:
"docs":[
{"user_group":["GPA","GPB","GPC"],"user_id":"4443510",.....},
{"user_group":["GPB"],"user_id":"4443511",.....},
{"user_group":["GPA","GPC"],"user_id":"4443512",.....},
....
]
我的意思是您可以将 user_group 修改为 mutivalued ,以便每个用户只有一个文档。