2014-09-03 3 views
1

나는 다음과 같은 필터 체인 루씬을 사용하고 있습니다 :Lucene에서 알 수없는 문자를 정규화하는 방법은 무엇입니까?

StandardFilter > LowerCaseFilter > GermanNormalizationFilter > ASCIIFoldingFilter

추가로 어떤 필터 나는 라틴 알파벳에 알 수없는 문자를 변환하는 데 사용할해야합니까? 예 : 러시아어 문자열은 Кадашевская과 비슷합니다. 라틴 알파벳으로 변환하거나 제거해야합니다.

이 목적에 맞는 필터는 무엇입니까? 나는 ICUTransformFilter 좋은 선택이 될 것입니다 생각 ???????????

답변

2

: 순간

는 필터 체인은 문자열 정규화

TokenFilter filter = new ICUTransformFilter(
    previousFilter, 
    Transliterator.getInstance("Cyrillic-Latin") 
); 

나는 그것이 합리적으로 분명 생각을하는 가능한 모든 문자를 변환하는 아이디어 동등한 라틴 문자로 바꾸는 것은 말도 안됩니다 (锁의 라틴어에 상응하는 것 또는 ♞?). 그러나, 당신은 또한 라틴어로 같은 라틴어 그리스어 변환으로, 가능한 한 많은 충돌 함께 여러 변형을 체인, 가타카나 수 있습니다

TokenFilter filter = new ICUTransformFilter(
    previousFilter, 
    Transliterator.getInstance("Cyrillic-Latin;Greek-Latin;Katakana-Latin") 
); 

당신은 "포함 할 필요가 루씬-분석기를-ICU-4.XX jar "필터뿐 아니라 download and include ICU4J

관련 문제