Bild für Projekt hochgeladen: 'Solr'
  1. Solr
  2. SOLR-2039

Multivalued fields with dynamic names does not work properly with DIH

Dateien anhängenScreenshot anhängenWähler anzeigenVorgang beobachtenBeobachter verwaltenUnteraufgabe erstellenVerknüpfungKlonenVerfasser des Kommenta...Zeichenfolge im Kommen...Update Comment VisibilityKommentare löschen
    XMLWordAusdruckbarJSON

Details

    • Bug
    • Status: Geschlossen
    • Schwer
    • Lösung: Behoben
    • 1.4.1
    • 6.3, 7.0
    • Keine
    • Windows XP, Default Solr 1.4 install with jetty

    Beschreibung

      Attempting to use multiValued fields using the DataImportHandler with dynamic names does not seem to work as intended.

      Setting up the following in schema.xml
      <dynamicField name="*_s" type="string" indexed="true" stored="true" multiValued="true" />

      Then attempting to import a multiValued field through a RDBMS using children records with a dynamic name. The snippet from data-config.xml

      <entity name="terms" query="select distinct DESC_TERM from tem_metadata where item_id=${item.ID_PK}">
      <entity name="metadata" query="select * from term_metadata where item_id=${item.ID_PK} AND desc_term='${terms.DESC_TERM}'" >
      <field name="${terms.DESC_TERM}_s" column="TEXT_VALUE" />
      </entity>
      </entity>

      Results in only the FIRST record being imported. If we change the field name in the above example to a constant (ie above field entry becomes: <field name="metadata_record_s" column="TEXT_VALUE" />). The multiple records are correctly imported.

      This was posted on solr-user, and others have reported the problem on the mailing list archive.

      The workaround was to use a javascript transform to perform the same behavior. Changes in data-config.xml become:

      <entity name="metadata" query="select * from vw_item_metadata where item_id=${item.DIVID_PK} AND core_desc_term='${terms.CORE_DESC_TERM}'" transformer="script:f1"/>

      <script><![CDATA[
      function f1(row)

      { var name = row.get('CORE_DESC_TERM'); var value = row.get('TEXT_VALUE') row.put(name+ '_s', value); return row; }

      ]]></script>

      This results in multivalued field with a dynamic name assigned.

      Anhänge

        Aktivität

          Dieser Kommentar wird Anzeigbar durch alle Benutzer Anzeigbar durch alle Benutzer
          Abbrechen

          Personen

            shalin Shalin Shekhar Mangar
            harrysmithwla K A
            Stimmen:
            4 Für Vorgang stimmen
            Beobachter verwalten:
            10 Vorgang beobachten

            Daten

              Erstellt:
              Aktualisiert:
              Erledigt:

              Vorgangsbereitstellung