Я пытаюсь переиндексировать данные в 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)
Выглядит хорошо, насколько я вижу. Почему это проблема?