solr lucene dataimporthandler

Importación de datos en solr desde una entidad múltiple



lucene dataimporthandler (1)

Estoy intentando el Data Import Handler para SQLServer Database.

Agregué el controlador de solrconfig.xml manual en solrconfig.xml , creé un data-config.xml acuerdo con mi esquema de base de datos y también agregué un campo en schema.xml que era diferente. Me estoy conectando con la base de datos SQLServer.

Después de conectarme y ejecutar el dataimport?command=full-import , no obtengo la etiqueta xml (datos) correctamente.

en mi data-config.xml * * ***

<document name="Product"> <entity dataSource="ds-1" name="Item" pk="Item_ID" query="select item.Item_ID, itemcode from item" deltaImportQuery="select item.Item_ID, itemcode from item where item.Item_ID=''${dataimporter.delta.Item_ID}'' " deltaQuery="select Item_ID from item where last_modified > ''${dataimporter.last_index_time}'' "> <entity name="ReturnSolrFilter" query="select Item_Id , CustomField_ID as CustomField from ReturnSolrFilter where Item_Id = ''${Item.Item_ID}'' " deltaQuery="select Item_Id , CustomField_ID as CustomField from ReturnSolrFilter where last_modified > ''${dataimporter.last_index_time}'' " parentDeltaQuery="select Item_ID from item where Item_ID = ''${ReturnSolrFilter.Item_ID}'' "> </entity> </entity> </document>

Ahora el resultado es * ** * ***

  1. si los datos se encuentran en ambas tablas

    <doc>

    < int name="Item_ID">13773< /int> < str name="itemcode">15438680< /str> < arr name="CustomField"> < str>31< /str> < str>32< /str> < /arr> < /doc>

  2. si los datos se encuentran en la tabla de elementos pero no en ReturnSolrFilter, entonces no se genera la etiqueta ( esta es la etiqueta del problema real del CustomField no generado )

<doc>

<int name = "Item_ID"> 13773 </ int>

<str name = "itemcode"> 15438680 </ str>

</ doc>


Creo que deberá ajustar su CustomField_ID con isnull: isnull(Custom_ID, '''') as CustomField que debe obligar a DataImportHandler a crear un campo vacío para CustomField en el XML generado para enviarlo como documento solr.