所以我在Solr很新,但我试图使用PatternReplaceCharFilterFactory对将要存储的电话号码字符串进行一些预处理。下面是该领域的配置: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>
我已经测试了正则表达式和它匹配的一切,我会期待它(例如555.444.1234,(555)444-1234,5554441234,4441234,444-1234。等)。
现在我的理解是,正则表达式应匹配传递给它的任何东西,并用指定的模式替换它。所以如果他们通过我555.123.4444我期望它导致555-123-4444被传递给StandardTokenizerFactory。从那里它将被分解成代币555,123,4444。
考虑到我花了多少时间,我确信有一个小的配置问题,我错过了,但从可用文档(我见过),我不知道它是什么。
预先感谢您。
也许你可以添加一些细节到你的问题(编辑它),使其对其他用户更有用。你甚至可以自动接受你的答案。 – javanna
@javanna,它实际上不会让我自动接受我的答案2天或我会。我不确定我是否想编辑或回答。我解决了答案,一旦等待期结束我会接受 – Jared
太好了,谢谢! – javanna