所以我在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