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 * ** * ***
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>
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.