Solr - PatternCaptureGroupFilterFactory не индексирует результат регулярного выражения - PullRequest
0 голосов
/ 07 марта 2019

Я использую Solr 7. У меня есть поле "date" типа "pdate", которое содержит такую ​​дату, как 2019-01-24T14:43:13Z.

<field name="date" type="pdate" stored="true"/>

Я хочу, чтобы с этой даты индексировать в поле «час» значение 14:43:13. Для этого я создал новое поле

<field name="hour" type="parsed_hour" indexed="true" stored="true"/>

Я использовал поле копирования, чтобы ввести в "час" значение моей "даты"

<copyField source="date" dest="hour"/>

и настройте PatternCaptureGroupFilterFactory, чтобы убедиться, что «час» содержит только цифры часа значения «дата».

<fieldType name="pdate" class="solr.DatePointField" docValues="true"/>
<fieldType name="parsed_hour" class="solr.TextField">
    <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.PatternCaptureGroupFilterFactory" pattern="(\d{2}:\d{2}:\d{2})" preserve_original="false"/>
    </analyzer>
  </fieldType>

Я попробовал регулярное выражение, и оно захватывает правильную группу:

https://regex101.com/r/r7Id29/1

Но в результате после индексации я вижу, что мое поле "час" является точной копией моего "поля даты", без каких-либо изменений. Я ожидал, что «час» будет иметь значение «14:43:13».

Также, если я тестирую с использованием Analysis в Solr Admin UI, я вижу, что моя дата правильно анализируется с помощью PatternCaptureGroupFilterFactory для вывода моего часа.

enter image description here

Проблема в том, что PatternCaptureGroupFilterFactory просто не помещается в поле "час" ...

enter image description here

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