0

SOLR クエリがあります

group.field=USER_TYPE&group.limit=3&group.format=grouped

したがって、これはユーザー タイプに基づいて完全にグループ化されます。ただし、グループ内の結果には重複が含まれています。つまり、各ユーザーには一意の user_id と user_group があります。各ユーザーは複数の user_group を持つことができます。そのため、異なる user_group と同じ 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",.....},
                ....
                ]
        ....
        ]
4

1 に答える 1

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を複数値に変更して、ユーザーごとに 1 つのドキュメントしか持てないようにすることができます。

于 2013-02-04T04:09:34.013 に答える