2017-02-14 3 views
0

Ich muss ein neues Feld in meiner Solr-Datenbank erstellen.Solr Update Feld basierend auf einem anderen Feld

Meine Daten wie: { id: "Etwas", name_s: "einige Namen" }

ich ein neues Feld name_t hinzufügen möchten.

Das Problem ist, ich das neue Feld name_t mit dem Wert von name_s aktualisieren möchten. Und ich möchte dies zu meine ganze Sammlung Dokumente tun.

Ich hatte erwartet, so etwas zu finden: {id: "xxx", name_t: {hinzufügen: $ name_s}}

Gibt es eine Möglichkeit, dies zu erreichen?

Danke!

Antwort

1

, wenn Sie alle Ihre Felder mit gespeicherten/docValues ​​auf, dann würde diese Arbeit:

  1. eine copyField für name_t schreiben,

    <copyField source="name_s" dest="name_t"/>

    Natürlich müssen Sie Haben Sie eine dynamische Art von * _t oder ein Feld usw.

  2. Verwenden Sie cursorMark, um über alle Dokumente auf effiziente Weise
  3. iterieren
  4. für jedes doc, triggern Sie einen Reindex mit atomic update und aktualisieren Sie einige Felder auf den gleichen aktuellen Wert. Ich denke, es könnte einen Weg geben, es auch durch Senden eines Ops auszulösen, aber nicht sicher über die Details.
Verwandte Themen