Итак, я новичок в 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.
Учитывая, сколько времени я потратил на это, я уверен, что есть небольшая проблема конфигурации, которую я пропускаю, но из доступной документации (которую я видел), я понятия не имею, что это такое.
Заранее спасибо.