Attualmente sto usando il file XML in solr. indice i dati del file xml utilizzando DataimportHandler con XPathentityProcessor.importare dati da JSON in solr
Ora voglio importare i dati dal file json.
C'è qualche esempio?
saluti, Sagar
Attualmente sto usando il file XML in solr. indice i dati del file xml utilizzando DataimportHandler con XPathentityProcessor.importare dati da JSON in solr
Ora voglio importare i dati dal file json.
C'è qualche esempio?
saluti, Sagar
Quello che vi serve è qualcosa di simile
curl 'http://localhost:8983/solr/update/json?commit=true' --data-binary @books.json -H 'Content-type:application/json'
Tratto da l'esempio.
Fonte
: https://wiki.apache.org/solr/UpdateJSONDataImportHandler non consente di utilizzare JSON come fonte. L'unico modo è usare Update Handler che può gestire JSON in modo nativo. Ma quello deve essere in the JSON structure Solr expects (matrice di hash o hash di comando/hash).
Grazie per la tua risposta, ho visto l'url che hai fornito. Ma nel fatto che usa curl.Non voglio usare alcun prompt dei comandi. Quindi è possibile ottenere dati dal file json direttamente dall'URL? o qualcosa del genere? –
Ma il tuo URL nel formato che Solr può analizzare (link sopra). Altrimenti, sei bloccato. Se lo è, puoi guardare usando [stream.URL] (https://wiki.apache.org/solr/ContentStream) –
Link si è spostato su: https://cwiki.apache.org/confluence/display/solr/caricamento dati + + con + Index + Handlers # UploadingDatawithIndexHandlers-JSONFormattedIndexUpdates –
se non volete usare il comando curl, si può sparare il comando direttamente dal browser e ottenere il risultato desiderato:
http://`localhost`:8983/solr/update/json?commit=true --data-binary @books.json -H 'Content-type:application/json'
messo il file JSON in/es/exampledocs folder.This è directory predefinita percorso in solr. Se si utilizza java o php, ecc., Ci sono diverse classi e metodi che si usano e quindi non si richiede di menzionare l'intero comando come sopra. È quello che stavi chiedendo?
È possibile utilizzare api REST per inviare dati a Solr. Si prega di utilizzare questo percorso:
localhost:8983/solr/simple2/update?commit=true
//(simple2 is the core name and localhost:8983 is server path.)
ed è necessario definire
:content_type => 'application/json'
a richiesta header.Along con essa è possibile inviare dei file JSON/dati a Solr utilizzando richiesta POST.
Per maggiori informazioni si può visitare http://geekdirt.com/blog/indexing-in-solr-using-json-and-rest-apis/
È possibile anche aggiornare i documenti includendo il? Commettere = true dichiarazione entro l'URL di un comando ricciolo in questo modo.
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
Se si desidera importare una parte o l'intera raccolta da un formato JSON, beh, c'è un'alternativa.
ho scritto uno strumento java: https://github.com/freedev/solr-import-export-json
Questa è un'applicazione Java che le importazioni ed esporta una raccolta Solr utilizzando SolrJ
. Ogni documento deve essere un oggetto json e nel file che si sta importando è necessario avere un elenco di righe mentre ogni riga è un oggetto json.
{ "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" }
Non ho provato con i documenti nidificati, e le chiavi del documento JSON dovrebbe essere esattamente i nomi dei campi Solr.
nell'url sopra, come usare quel file json? Voglio dire come fornire il percorso di quel file JSON. e possiamo usarlo da URLDatasource? –
Voglio fare richiesta da url, non voglio usare arricciatura. c'è un modo per raggiungerlo? –
@SagarJoshi intendi come inviare un modulo con dati come json in solr? –