DateFormatTransformer не работает с FileListEntityProcessor в обработчике импорта данных

При индексировании данных из локальной папки в моей системе я использую приведенную ниже конфигурацию. Однако атрибут lastmodified индексируется в формате «Среда, 23 мая, 09:48:08 UTC», что не является стандартным форматом, используемым solr для фильтровать запросы. Итак, я пытаюсь отформатировать атрибут lastmodified в data-config.xml, как указано ниже.

<dataConfig>
    <dataSource name="bin" type="BinFileDataSource" />
    <document>
        <entity name="f" dataSource="null" rootEntity="false"
            processor="FileListEntityProcessor"
            baseDir="D://FileBank" 
            fileName=".*\.(DOC)|(PDF)|(pdf)|(doc)|(docx)|(ppt)" onError="skip"
            recursive="true" transformer="DateFormatTransformer">

            <field column="fileAbsolutePath" name="path" />
            <field column="fileSize" name="size" />
            <field column="fileLastModified" name="lastmodified" dateTimeFormat="YYYY-MM-DDTHH:MM:SS.000Z" locale="en"/>
            <entity name="tika-test" dataSource="bin" processor="TikaEntityProcessor"
            url="${f.fileAbsolutePath}" format="text" onError="skip">
                <field column="Author" name="author" meta="true"/>
                <field column="title" name="title" meta="true"/>
                <!--<field column="text" />-->          
            </entity>
        </entity>
    </document>
</dataConfig>

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


person Saurabh Chaturvedi    schedule 01.06.2016    source источник


Ответы (1)


Предоставленный вами dateTimeFormat кажется неверным. Символы верхнего и нижнего регистра имеют разное значение . Также формат, который вы показали, не соответствует тексту даты, который вы пытаетесь проанализировать. Таким образом, это, вероятно, держит его как непревзойденный.

Кроме того, если у вас есть несколько разных форматов даты, вы можете проанализировать их после запуска DIH, создав пользовательскую цепочку UpdateRequestProcessor. Вы можете увидеть пример без схемы, где есть несколько форматов даты как часть автоматического сопоставления, но вы также можете сделать то же самое явно для определенного поля.

person Alexandre Rafalovitch    schedule 05.06.2016
comment
Спасибо !! это был какой-то ответ!! - person Saurabh Chaturvedi; 07.06.2016