Импорт данных в solr из нескольких объектов - PullRequest
0 голосов
/ 21 октября 2011

Я пытаюсь обработчик импорта данных для базы данных SQLServer.

Я добавил DIhandler в solrconfig.xml, создал 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>

Теперь результат равен *******

  1. , если данные найдены в обеих таблицах

      < int name="Item_ID">13773< /int>
    
      < str name="itemcode">15438680< /str>
    
        < arr name="CustomField">
    
            < str>31< /str>
    
            < str>32< /str>
    
        < /arr>
    < /doc>
    
  2. , если данные найдены в таблице элементов, но отсутствуют в ReturnSolrFilter, тег не генерируется ( Это фактическая проблема. Тег CustomField не генерируется )

<документ>

13773

15438680

1 Ответ

0 голосов
/ 21 октября 2011

Я думаю, вам нужно обернуть свой CustomField_ID isnull: isnull(Custom_ID, '') as CustomField, что должно заставить DataImportHandler создать пустое поле для CustomField в сгенерированном XML для отправки в качестве документа solr.

...