1

ドキュメントをグループ化しようとしていますが、複合クエリを作成する方法がわかりません。例:

<doc1>
<id>1</id>
<myid>1</myid>
<name>test</name>
</doc1>

<doc2>
<id>2</id>
<myid>1</myid>
<name>test2</name>
</doc2>

myid でグループ化すると、除外されるグループ結果が 1 つしか得られません。しかし、どうすればそのグループの名前のリストを取得できるのだろうか。

何かのようなもの:

<Response>
<doc>
<id>1,2</id>
<myid>1</myid>
<name>test1,test2</name>   //this
</doc>

私が使用しているクエリ:

        SolrQuery sq = new SolrQuery();
        sq.setQuery("*:*");
        sq.setStart(0);
        sq.setRows(100);
        sq.setParam("group", true);
        sq.setParam("group.field","myid");

グループ化された項目の名前の値を取得するために groupresponse を読み取る方法がわかりません。

複数の結果を取得できる group.limit と group.offset を設定するオプションがあることに気付きました。しかし、「名前」フィールドのリストを取得できるかどうかはまだ疑問です。グループの結果に名前をファセットする必要があると思いますが、方法がわかりません。

4

1 に答える 1

2

Solrのソースコードをお持ちの方はQueryResponseTest.javaJUnitとtestGroupResponse()メソッドを参照

SOLR-2637は 3.4 以降に適用されます。

パッチSOLR-2637.patchもチェックしてください。

于 2012-11-20T08:58:42.413 に答える