Более одного преобразователя в одном объекте с использованием DataImportHandler
Я использую DataImportHandler для индексации данных в Solr.
Я извлекаю данные из трех столбцов из таблицы AUTO в базе данных, где два столбца, а именно TOPIC и PARTS, имеют данные типа 'CLOB', а столбец DATE имеет метку времени оракула, которая содержит дату создания.
Проблема в моем файле конфигурации данных, где мне нужно преобразовать данные сгустка в строку, а также дату в UTC, которое использует Solr.
Поэтому мне нужны два преобразователя, то есть ClobTransformer и DateFormatTransformer.
Мне интересно, как я буду использовать оба трансформатора в одном объекте.
вот мой файл данных конфигурации
<dataConfig>
<dataSource name="ds1" type="JdbcDataSource"
driver="oracle.jdbc.OracleDriver"
url="....."
user="....."
password="...."/>
<document name="doc">
<entity name="ent"
query="Select
auto.ID,
auto.Topic as Topic,
auto.Parts as Parts,
to_date(to_char(auto.Date, 'yyyy-MM-dd HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS') AS Date,
From auto
order by auto.Date DESC"
dataSource="ds1" transformer="DateFormatTransformer">
<field column="ID" name="id"/>
<field column="TOPIC" name="topic" clob="true"/>
<field column="PARTS" name="parts" clob="true"/>
<field column="DATE" name="date" xpath="/RDF/item/date" dateTimeFormat="yyyy-MM-dd HH:mm:ss" locale="en"/>
</entity>
</document>
</dataConfig>
Выше я использовал только DateFormatTransformer.
Любая помощь приветствуется.
1 ответ
Хорошо, я узнал, как это делается. Просто указав конкретные преобразователи, используя запятые в разделе "трансформатор" тега следующим образом:
<dataConfig>
<dataSource name="ds1" type="JdbcDataSource"
driver="oracle.jdbc.OracleDriver"
url="....."
user="....."
password="...."/>
<document name="doc">
<entity name="ent"
query="Select
auto.ID,
auto.Topic as Topic,
auto.Parts as Parts,
to_date(to_char(auto.Date, 'yyyy-MM-dd HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS') AS Date,
From auto
order by auto.Date DESC"
dataSource="ds1" transformer="ClobTransformer,DateFormatTransformer">
<field column="ID" name="id"/>
<field column="TOPIC" name="topic" clob="true"/>
<field column="PARTS" name="parts" clob="true"/>
<field column="DATE" name="date" xpath="/RDF/item/date" dateTimeFormat="yyyy-MM-dd HH:mm:ss" locale="en"/>
</entity>
</document>
</dataConfig>
Я использовал два трансформатора, transformer="ClobTransformer,DateFormatTransformer"