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.

Учитывая, сколько времени я потратил на это, я уверен, что есть небольшая проблема с конфигурацией, которую мне не хватает, но из доступной документации (которую я видел) я понятия не имею, что это такое.

Заранее благодарю.

7
задан Jared 15 December 2011 в 18:12
поделиться