Tak więc jestem bardzo nowy w Solr, ale próbuję użyć PatternReplaceCharFilterFactory do wykonania wstępnego przetwarzania na ciągu numerów telefonów, które będą przechowywane. Oto konfiguracja dla pola:Solr PatternReplaceCharFilterFactory nie zastępuje określonego wzorca
<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>
Ja testowałem regex i pasuje do wszystkiego Spodziewam się go (np 555.444.1234 (555) 444-1234, 5554441234, 4441234, 444-1234. itp.).
Teraz rozumiem, że wyrażenie regularne powinno pasować do tego, co zostało mu przekazane i zastąpić je określonym wzorcem. Więc jeśli przekazali mi 555.123.4444, spodziewam się, że spowoduje to przekazanie 555-123-4444 do StandardTokenizerFactory. Stamtąd zostanie podzielony na żetony 555,123,4444.
Biorąc pod uwagę, ile czasu na to poświęciłem, jestem pewien, że jest mały problem z konfiguracją, którego mi brakuje, ale z dostępnej dokumentacji (którą widziałem) nie mam pojęcia, co to jest.
Z góry dziękuję.
Może możesz dodać trochę szczegółów do swojego pytania (edycja), aby były bardziej przydatne dla innych użytkowników. Możesz nawet zautomatyzować swoją odpowiedź. – javanna
@javanna, To tak naprawdę nie pozwala mi automatycznie zaakceptować mojej odpowiedzi przez 2 dni lub ja bym to zrobił. Nie byłem pewien, czy chcę edytować lub odpowiedzieć. Postanowiłem odpowiedzieć, zaakceptuję, gdy minie okres oczekiwania. – Jared
Świetnie, dziękuję! – javanna