9
votes

données d'importation de JSON à SOLR

Actuellement, je suis en utilisant le fichier XML dans solr. index I données du fichier XML à l'aide DataimportHandler avec XPathentityProcessor.

Maintenant, je veux importer des données à partir du fichier JSON.

Y at-il par exemple?

Cordialement, Sagar


0 commentaires

6 Réponses :


9
votes

Qu'est-ce que vous avez besoin est quelque chose comme

curl 'http://localhost:8983/solr/update/json?commit=true' --data-binary @books.json -H 'Content-type:application/json'


7 commentaires

dans l'URL ci-dessus, comment utiliser ce fichier JSON? Je veux dire comment fournir chemin de ce fichier JSON. et nous pouvons l'utiliser par URLDatasource?


Je veux faire la demande d'URL, ne veulent pas curl utilisation. est-il possible d'y parvenir?


@Sagarjoshi Vous voulez dire comme soumettre un formulaire avec des données comme JSON à SOLR?


:: exactement ce que je veux est, je JSON, je veux indexer. et l'url que vous avez mentionné ci-dessus, il donne paramètre boucle, est-il possible de l'utiliser dans l'URL directe? comme GET ou POST demande?


CURL parle http, l'URL que j'ai fournie est un message http. Dans l'exemple Curl utilise HTTP-POST pour publier le fichier Books.json à SOLR.


Je boucle que u mentionné ci-dessus: Il était comme ça: boucle « nom d'hôte: 8080 / Solr / core / mise à jour / JSON = true engager "--data -binary @ test.json -H "Content-type: application / json"? Il me donne ci-dessous :: xml 0 59 Après cela, quand je cherchai par url ci-dessous :: : 8080 / Solr / core / select q = *: * Je ne reçois pas de réponse. Y at-il que je manque à faire?


il ne devrait pas être un espace dans '--data -binary' pouvez-vous faire aussi un nom d'hôte: 8080 / Solr / core / select q = *: * & debugQuery = true?



5
votes

DataImportHandler ne vous permet pas d'utiliser JSON comme source. La seule façon est d'utiliser Update gestionnaire qui peut gérer nativement JSON. Mais cela doit être la structure JSON Solr attend (tableau de hachages ou hachage de commande / hash ).


3 commentaires

Merci pour votre réponse, j'ai vu cette URL que vous avez fourni. Mais en ce qu'elle utilisant curl.I ne veulent pas utiliser une invite de commande. Donc, est-il possible d'obtenir des données à partir du fichier JSON directement depuis l'URL seulement? ou quoi que ce soit par exemple comme ça?


Mais votre URL sous la forme Solr peut analyser (lien ci-dessus). Sinon, vous êtes coincé. Dans ce cas, vous pouvez envisager d'utiliser stream.URL


Lien a déménagé à: cwiki.apache .org / confluence / écran / Solr / ...



3
votes

si vous ne voulez pas utiliser la commande boucle, vous pouvez lancer la commande directement sur le navigateur et obtenir le résultat souhaité:

http: // localhost: 8983 / Solr / mise à jour / JSON = true commettre --data binaire @ books.json -H 'Content-Type: application / JSON

Placez le fichier JSON dans / exemple / exampledocs folder.This est le chemin du répertoire par défaut dans solr. Si vous utilisez java ou php etc puis il y a plusieurs classes et méthodes que vous utilisez et vous wont besoin de mentionner toute la commande comme above.Is que ce que vous demandiez?


0 commentaires

0
votes

Vous pouvez utiliser REST api pour envoyer des données à Solr. S'il vous plaît utiliser ce chemin:

:content_type => 'application/json'


0 commentaires

1
votes

Vous pouvez également mettre à jour vos documents en incluant le? Engagement = true déclaration dans l'URL d'une commande de boucle comme si.

curl -X POST -H "Content-Type: application/json" -u "{usernamne}":"{password}" "https://your_host/solr/your_collection/update/json?commit=true" --data-binary @/path/to/your/data/your_data.json


0 commentaires

1
votes

.

Si vous voulez une partie d'importation ou la collection d'un format JSON, eh bien, il existe une alternative

J'ai écrit un outil java: https://github.com/freedev/solr-import-export-json p>

Ceci est une application java que les importations et les exportations une collection Solr en utilisant SolrJ code>. Chaque document doit être un objet JSON et dans le fichier que vous vous importez devez avoir une liste de lignes alors que chaque ligne est un objet JSON. P>

{ "id": 1, "date": "20160101T00:00:00", "text": "some text" } 
{ "id": 2, "date": "20160102T00:00:00", "text": "some text" } 
{ "id": 3, "date": "20160103T00:00:00", "text": "some text" } 


0 commentaires