Solr-PatternCaptureGroupFilterFactory不索引正则表达式结果

时间:2019-03-07 11:43:11

标签: filter solr

我正在使用Solr7。我有一个类型为“ pdate”的字段“ date”,其中包含一个日期,例如 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”。

如果我使用Solr Admin UI中的Analysis进行测试,也会发现PatternCaptureGroupFilterFactory正确解析了我的日期以输出我的小时。

enter image description here

问题是PatternCaptureGroupFilterFactory的结果只是没有被推送到“小时”字段...

enter image description here

0 个答案:

没有答案