Как найти причину несостоятельности данных при импорте документов? - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь переиндексировать данные в solr 7.7.1. Ответ после импорта:

 "Total Documents Failed": "595",

Это может быть количество документов, которые я добавил. Поэтому я считаю, что с моим запросом на импорт базы данных что-то не так. Однако я не могу найти какие-либо записи в журнале ошибок. Может ли это быть проблемой с уникальным идентификатором?

Похоже, что sql-запрос действителен, поскольку я могу его успешно выполнить.

<entity name="watches" 
        transformer="LogTransformer"
        logTemplate="watches attributes import for classified ID ${classifieds.ID}" logLevel="info"
        query="SELECT
                    a.URL AS url_article,
                    a.article_id,
                    catr_ref.attr_de AS refnumber,
                    cw.ref_id,
                    cw.year,   
                    cw.box,
                    cw.papers,

                    cw.dial_c_id AS dial_id,                                  
                    CONCAT (cw.dial_c_id, '#', catr_dial.attr_de) AS dial,

                    cw.power_reserve,   
                    /* CONCAT (ca_power.value, '#', catr_power.attr_de) AS power, */

                    cw.dial_n_id,                                    
                    CONCAT (cw.dial_n_id, '#', catr_dialn.attr_de) AS dialn,

                    cw.bracelet_type_id,                                    
                    CONCAT (cw.bracelet_type_id, '#', catr_bra_t.attr_de) AS brace_t,

                    cw.case_m_id AS case_id,                                  
                    CONCAT (cw.case_m_id, '#', catr_case.attr_de) AS caseing,

                    cw.water_id, 
                    CONCAT (cw.water_id, '#', catr_water.attr_de) AS water,

                    cw.winding_id,                                  
                    CONCAT (cw.winding_id, '#', catr_wind.attr_de) AS winding,

                    cw.availability AS avail_id,
                    CONCAT (cw.availability, '#', catr_avail.attr_de) AS avail,

                    cw.cond AS cond_id,
                    CONCAT (cw.cond, '#', catr_cond.attr_de) AS cond,

                    /* mark unique watch article to colapse later. e.g. ref#color#bracelet */
                    CONCAT (cw.ref_id, '#', cw.dial_c_id) AS unique_watch
               FROM
                    classifieds_watches AS cw 
               LEFT JOIN cat_attr AS catr_ref   ON catr_ref.attr_id     =  cw.ref_id
               LEFT JOIN cat_attr AS catr_dial  ON catr_dial.attr_id    =  cw.dial_c_id
               LEFT JOIN cat_attr AS catr_dialn ON catr_dialn.attr_id   =  cw.dial_n_id
               LEFT JOIN cat_attr AS catr_bra_t ON catr_bra_t.attr_id   =  cw.bracelet_type_id
               LEFT JOIN cat_attr AS catr_case  ON catr_case.attr_id    =  cw.case_m_id
               LEFT JOIN cat_attr AS catr_water ON catr_water.attr_id   =  cw.water_id
               LEFT JOIN cat_attr AS catr_wind  ON catr_wind.attr_id    =  cw.winding_id
               LEFT JOIN cat_attr AS catr_avail ON catr_avail.attr_id   =  cw.availability
               LEFT JOIN cat_attr AS catr_cond ON catr_cond.attr_id     =  cw.cond                           
               LEFT JOIN articles AS a ON cw.article_id = a.article_id
               WHERE 
                    cw.cl_id  = ${classifieds.id}">
</entity>

Поработав некоторое время, я понял, что за это отвечает поле "год", как будто я установил значение NULL внутри набора данных, оно будет импортировано в solr.

Тип:

     <field name="year" type="tint" indexed="true" stored="true" required="false" />
    <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>

в MySQL это имеет тип year(4)

Выглядит хорошо, насколько я вижу. Почему это проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...