So aktualisieren Sie mehrere Dokumente in Solr mit JSON?
So aktualisieren Sie mehrere Dokumente in Solr 4.5.1 mit JSON? Ich habe versucht, aber es funktioniert nicht:
POST /solr/mycore/update/json
:
{
"commit": {},
"add": {
"overwrite": true,
"doc": [{
"thumbnail": "/images/404.png",
"url": "/404.html?1",
"id": "demo:/404.html?1",
"channel": "demo",
"display_name": "One entry",
"description": "One entry is not enough."
}, {
"thumbnail": "/images/404.png",
"url": "/404.html?2",
"id": "demo:/404.html?2",
"channel": "demo",
"display_name": "Another entry",
"description": "Another entry is required."
}
]
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Solr erwartet, dass ein "hinzufügen"-Taste in der JSON-Struktur, die für jedes Dokument (das könnte seltsam scheinen, wenn Sie denken über die ursprüngliche Bedeutung der Schlüssel in das Objekt), da es Karten direkt auf das XML-format wenn Sie die Indizierung - und auf diese Weise können Sie Metadaten für jedes Dokument, das von selbst.
.. funktioniert. Ich denke, so dass ein array als element referenziert durch "hinzufügen" würde mehr Sinn machen, aber ich habe nicht weiter gegraben in der Quelle oder weiß, die Argumentation hinter diesem.
Verstehe ich, dass (zumindest) aus den Versionen 4.0 und älter von solr, dies wurde behoben. Blick auf http://wiki.apache.org/solr/UpdateJSON.
In ./exampledocs/Bücher.json-es ist ein Beispiel für eine json-Datei mit mehreren Dokumenten.
Während @fiskfisk Antwort ist immer noch ein gültiges JSON ist es nicht einfach serialisierbar sein, eine Daten-Struktur. Dieser eine ist.
elachell ist richtig, dass das array-format funktionieren wird, wenn Sie nur das hinzufügen von Dokumenten mit den Standardeinstellungen. Leider, das wird nicht funktionieren, wenn, zum Beispiel, müssen Sie zum hinzufügen einer benutzerdefinierten steigern, um einige der Dokumente oder ändern Sie die Einstellung überschreiben. Sie haben dann die volle Objekt-Struktur mit einem "hinzufügen" - Taste für jede von Ihnen, die wie Sie wies darauf hin, macht dies ärgerlich, frustrierend, zu versuchen, zu serialisieren, die von den meisten Sprachen, die nicht zulassen, dass der gleiche Schlüssel mehr als einmal in ein Objekt:
}
Weitere option, wenn Sie sind auf Solr 4.10 oder höher ist, verwenden Sie eine benutzerdefinierte JSON-Struktur-und sagen, wie Solr index (nicht sicher, wie Sie Sie hinzufügen steigert mit dieser Methode, aber es ist eine nette option, wenn Sie bereits eine Daten-Struktur in JSON und nicht möchten, konvertieren Sie es in Solr-format). Hier ist der Solr-Dokumentation zu dieser option:
https://cwiki.apache.org/confluence/display/solr/Uploading+Data+with+Index+Handlers#UploadingDatawithIndexHandlers-TransformingandIndexingCustomJSOn