1

以下は、フィールドにmultivalued=trueを 使用した場合にsolrから取得するjson応答です 。

  {
    "id":["1","2","3"],
    "TS":["2010-06-28 00:00:00.0","2010-06-28 00:00:00.0","2010-06-28 00:00:00.0"],
    "Type":["VIDEO","IMAGE","VIDEO"]
    }

but i need the response like this

    {
    "0":["1","2010-06-28 00:00:00.0","VIDEO"],
    "1":["2","2010-06-28 00:00:00.0","IMAGE"],
    "2":["3","2010-06-28 00:00:00.0","VIDEO"]
    }

How can i get this.Any help would be appreciated. Thanks in advance.
 **Update :**
    Actually at the first level its not a problem. When we are going

複数のレベルの場合、問題のみが発生します。今、私はそれを明確にするためにここに全体の応答を入れています。

{
 "responseHeader":{
  "status":0,
  "QTime":0,
  "params":{
    "facet":"true",
    "indent":"on",
    "start":"0",
    "q":"laptop",
    "wt":["json",
     "json"],
    "rows":"200"}},
 "response":{"numFound":1,"start":0,"docs":[


    {
     "createdBy":"0",
     "id":194,
     "status":"ACTIVE",
     "text":"Can i buy Sony laptop?",
     "ansTS":["2010-07-01 00:00:00.0","2010-08-06 15:11:55.0","2010-08-11 15:28:13.0","2010-08-11 15:30:49.0","2010-08-12 01:45:48.0","2010-08-12 01:46:18.0"],
     "mediaType":["VIDEO","VIDEO","VIDEO"],
     "ansId":["59","76","77","78","80","81"],
     "mediaId":[24,25,26],

       ]},
    ]
 },
 "facet_counts":{
  "facet_queries":{},
  "facet_fields":{
    "catName":[]},
  "facet_dates":{}}}

mediaId、mediatype、ansTS配列を見てください。1対多の関係ですが、列名ごとにグループ化されています。よろしくお願いします。

4

3 に答える 3

2

このJSONをブラウザから使用するとおっしゃいました。したがって、jQueryまたはその他のjavascriptライブラリを使用して、生のSolrJSON応答を必要な構造に変換できます。

于 2010-08-25T14:30:29.850 に答える
0

最初のスニペットが実際に取得しているSolr応答である場合は、フィーダー(コネクター/クローラーなど)にバグがある可能性があります。(クエリに一致する)インデックス付きドキュメントが1つしかないようです。これには、3つのドキュメントに期待されるすべての値が含まれています。

予想される出力に類似した3つのドキュメントがあるとすると、実際のsolrのwt=json結果には次のものが含まれます。

[{ 
"id":"1", 
"TS":"2010-06-28 00:00:00.0", 
"Type":"VIDEO"
},

{
"id":"2",
"TS":"2010-06-28 00:00:00.0",
"Type":"IMAGE"
},
{
"id":"3",
"TS":"2010-06-28 00:00:00.0",
"Type":"VIDEO"
}]

この仮定が正しければ、インデックス作成ロジックを調べることをお勧めします。

于 2010-08-25T12:15:48.533 に答える
0

この出力は、Solr の JSONResponseWriter によって生成されます。その出力は、構成によって変更できません。しかし、できることは、独自のバージョンの JSONResponseWriter を作成して、目的の出力を生成することです。solrconfig.xml に queryResponseWriter タグを追加することで、新しい ResponseWriter を登録できます。

于 2010-08-25T12:47:47.347 に答える