solr: как преобразовать диапазон iso8601date в диапазон дат для импорта данных - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть файл xml (ead - архивное описание), содержащий диапазон дат «1678/1768», соответствующий iso8601. Я хотел бы представить это в solr как диапазон дат [1678–1768] в моей схеме. xml Я определяю

<fieldType name="dateRange" class="solr.DateRangeField">
    <charFilter class="solr.PatternReplaceCharFilterFactory"
                pattern="(\d+)/(\d+)" replacement="[$1 TO $2]">
    </charFilter>
</fieldType>

и

  <field name="dateRange" type="dateRange" indexed="true" stored="true" multiValued="true"/>

в обработчике данных. xml

<field column="dateRange" xpath="/ead/archdesc/did/unitdate/@normal"/>

, когда пытаюсь проиндексировать системный индекс, но когда я запрашиваю *.* Я не получаю вывод.

Спасибо за любую помощь

1 Ответ

0 голосов
/ 11 апреля 2020

К полям диапазона дат нельзя прикреплять фильтры. Вы можете использовать , используя процессор запросов на обновление, чтобы переформатировать содержимое , прежде чем оно будет просмотрено Solr, но еще лучше - вы можете использовать преобразователь регулярных выражений непосредственно в спецификации обработчика импорта данных , чтобы получить требуемый формат из того, что выбирает запрос xpath:

regex="(\d+)/(\d+)" replaceWith="[$1 TO $2]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...