2010-08-25 24 views
1

Tenir compte Voici la réponse JSON je reçois de la solr si j'utilise = true multivalué pour les champs.Solr Mulivalued Problème

{ 
    "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 

plus d'un niveau alors que le problème se pose . en ce moment je mets la réponse entière ici pour le faire effacer.

{ 
"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":{}}} 

regard sur les tableaux MediaId, mediatype, ANSTS. Son one to many relation.Mais ils sont groupés par noms de colonnes. Merci d'avance.

+0

qui va consommer le JSON? un navigateur? –

+0

oui .. puis-je savoir quel est le problème avec ça?,. – sathis

Répondre

0

Si le premier extrait est la réponse solr réelle que vous obtenez, il y a de fortes chances que vous ayez un bug dans votre feeder (connector/crawler/etc). Il semble que vous n'ayez qu'un seul document indexé (correspondant à votre requête), qui possède toutes les valeurs que vous attendez de 3 documents.

En supposant que vous avez 3 documents, analogues avec votre résultat attendu, le résultat solr wt=json réel contiendrait:

[{ 
"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" 
}] 

Si cette hypothèse est correcte, alors je suggère à la recherche de votre logique d'indexation.

+0

Pour les champs à valeurs multiples, les valeurs retournent un tableau (même s'il n'y en a qu'un). – Risadinha

0

Cette sortie est produite par JSONResponseWriter de Solr. Sa sortie ne peut pas être modifiée via la configuration. Mais ce que vous pouvez faire est de créer votre propre version de JSONResponseWriter pour produire votre sortie désirée. Vous pouvez enregistrer votre nouveau ResponseWriter par adding a queryResponseWriter tag in solrconfig.xml.

+0

no. Cela n'a rien à voir avec JSONResponseWriter. Même la sortie au format XML a également le même problème. – sathis

+0

Soit avec XML ou JSON, Solr fournit, pour tous les documents, tous les champs avec leur valeur associée (plusieurs valeurs dans le cas d'une multi-valeur). Si ce n'est pas ce dont vous avez besoin, vous devez avoir votre propre ResponseWriter. Maintenant, si c'est déjà le format que vous voulez, et vous pensez qu'il y a un bug dans Solr, je suggère d'abord d'aller avec la suggestion de scdef et de vous assurer que votre logique d'indexation est correcte. –

+0

donc je peux indexer une entité en la référençant dans schema.xml? Si oui, montrez-moi un exemple. – sathis

2

Vous avez mentionné que vous allez consommer ce fichier JSON à partir d'un navigateur. Vous pouvez donc utiliser jQuery ou toute autre bibliothèque javascript pour convertir la réponse Solr JSON brute dans la structure dont vous avez besoin.

+0

si certaines valeurs contiennent null alors ces valeurs seront rejetées par le solr. Donc, il sera très difficile d'assumer l'ordre.ayant des colonnes non valables n'est pas une meilleure solution à mon humble avis. – sathis

+0

@sathis: hmm, alors vous avez un problème dans votre conception de schéma, qui n'est pas liée à JSON ou comment vous le traitez ... –