我正在尝试SQLServer数据库的数据导入处理程序。
我在solrconfig.xml
中添加了DIhandler,根据我的数据库架构创建了data-config.xml
,并在schema.xml
中添加了一个不同的字段。我正在连接SQLServer数据库。
我连接后运行dataimport?command=full-import
我没有正确获取xml标签(数据)。
在我的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>
现在结果是 * ** * ***
如果在表中找到数据
&LT; DOC&GT;
< int name="Item_ID">13773< /int>
< str name="itemcode">15438680< /str>
< arr name="CustomField">
< str>31< /str>
< str>32< /str>
< /arr>
< /doc>
如果在项目表中找到但未在ReturnSolrFilter中找到数据,则不会生成标记(这是实际问题,未生成CustomField标记)
&LT; DOC&GT;
&LT; int name =“Item_ID”&gt; 13773&lt; / INT&GT;
&LT; str name =“itemcode”&gt; 15438680&lt; / STR&GT;
&LT; / DOC&GT;
答案 0 :(得分:0)
我认为你需要用isnull:isnull(Custom_ID, '') as CustomField
包装你的CustomField_ID,它应该强制DataImportHandler在生成的XML中为CustomField创建一个空字段,以作为solr文档提交。