Frage
Mit SOLR 4 kam die Fähigkeit, atomare (teilweise) Updates auf vorhandenen Dokumenten innerhalb des Indexs zu erstellen.D. H.Man kann mit der Dokument-ID übereinstimmen und den Inhalt von nur einem Feld ersetzen oder weitere Einträge in mehr vorhandene Felder hinzufügen: http://wiki.apache.org/solr/atomic_updates
können atomare Updates von DataImportHandler (DIH) erfolgen?
Lösung
Die Antwort lautet "Ja" mit dem ScriptTransformer, den ich durch Versuch und Irrtum entdeckt habe.
Die SolR-Dokumentation zeigt, wie Sie ein Update-Attribut an einen Feldknoten mit "Set", "Hinzufügen" oder "Inc" hinzufügen.Wenn ich eine Test-XML-Datei mit dem erforderlichen Update-Attribut erstellen, funktioniert es, wenn er an den regulären Update-Handler weitergegeben wird.Aber wenn Sie an DIH übergeben werden - auch ohne Transformation - werden die Update-Attribute vollständig ignoriert.
Hier ist eine vereinfachte Version des Skripttransformators, mit dem ich das Update-Attribut erneut wieder integriert und atomare Updates funktioniert.Beachten Sie die Verwendung der Java Hashmap.
generasacodicetagpre.Dies ergibt die folgende JSON im DIH-Debug-Modus:
generasacodicetagpre.mehrwertige Felder sind auch kein Problem: Geben Sie anstelle einer Zeichenfolge eine Arrayliste an die HashMAP an.
generasacodicetagpre.