所以我在Solr非常新,但我正在尝试使用PatternReplaceCharFilterFactory对将要存储的电话号码字符串进行一些预处理.以下是该字段的配置:
<fieldType name="phone_number" class="solr.TextField" >
<analyzer>
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="\(?(\d{3})?\)?[-. ]?(\d{3})[-. ]?(\d{4})"
replaceWith="$1-$2-$3"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
我测试了正则表达式,它匹配我期望的一切(例如555.444.1234,(555)444-1234,5554441234,4441234,444-1234等).
现在我的理解是正则表达式应该匹配传递给它的东西,并用指定的模式替换它.所以如果他们通过我555.123.4444我会期望它导致555-123-4444传递给StandardTokenizerFactory.从那里它将被分解为代币555,123,4444.
鉴于我花了多少时间在这上面,我确信有一个小的配置问题我缺少但是从可用的文档(我已经看到)我不知道它是什么.
先感谢您.
solr ×1