À l'aide de solrj pour récupérer un SolrDocument au format json
Comment puis-je spécifier le SolrQuery pour renvoyer les données au format json?
Voici le code que j'utilise une requête de données: une Fois que je reçois le SolrDocument comment puis-je convertir un Objet json/string?
SolrQuery sQuery = new SolrQuery();
sQuery.setQuery("name:test");
QueryResponse resp = server.query(sQuery);
SolrDocumentList docs = resp.getResults();
OriginalL'auteur rrr | 2012-10-22
Vous devez vous connecter pour publier un commentaire.
SolrJ est conçu pour extraire/convertir le document en tant que votre défini POJO. Si vous souhaitez convertir le document JSON, vous devez utiliser une bibliothèque comme Jackson pour faire la conversion de SolrDocument JSON.
Pas si sûr que ce serait une option pour vous, mais je voulais mentionner que vous pourriez envisager d'obtenir la réponse de Solr déjà au format JSON. Voir SolJSON pour plus de détails. Vous n'auriez pas besoin d'utiliser SolrJ dans ce cas. La chose la plus simple serait d'utiliser une droite http appel (via java client http bibliothèque) et d'obtenir une réponse JSON retour de Solr à l'aide de la SolJSON techniques.
Cette discussion sur la Solr liste des Utilisateurs devrait aider - lucene.472066.n3.nabble.com/SolrJ-Response-JSON-td1002024.html
Elle n'a pas vraiment répondu à ma question semble comme j'ai eu à lire le SolrDocument et ajouter les paires clé-valeur dans une JSONObject pour moi d'obtenir une chaîne json valide pour retourner à l'utilisateur. Concernant le POJO de chemin depuis mon Pojo contient des types complexes, j'ai dû ajouter le type complexe comme un SolrPlugin & défini dans le schema.xml mais quand j'ai enregistré le POJO le type complexe enregistré nulle - des suggestions sur la façon d'obtenir que le travail?
Les types complexes sont pas pris en charge avec SolrJ seulement les types simples - Voir cette réponse précédente - stackoverflow.com/questions/6633684/...
En outre, il n'y a pas de façon native pour obtenir JSON directement à partir de Solr à l'aide de la SolrJ de la bibliothèque. Comme je l'ai dit, la Jackson bibliothèque peuvent gérer le SolrDocument à JsonObject la conversion pour vous. Ou vous pouvez simplement utiliser une droite http appel (via java client http bibliothèque) et d'obtenir une réponse JSON retour de Solr à l'aide de la SolJson techniques.
OriginalL'auteur Paige Cook
Importer les JSONUtil classe de solrj, il a json convertisseur pour solr documents ou vous pouvez écrire un facilement si vous consultez le code de cette classe:
J'ai mis à niveau à partir de Solr 5.2 7.6 et lors de la conversion de Solr Docs en JSON, j'ai eu un StackOverflowError (com.fasterxml.jackson.databind.type.TypeFactory). Changer le JSON rédacteur à noggit une correction de la question.
OriginalL'auteur ravi