Java 如何规范Lucene中的未知字符?
我将lucene与以下过滤器链一起使用:Java 如何规范Lucene中的未知字符?,java,lucene,Java,Lucene,我将lucene与以下过滤器链一起使用: StandardFilter>LowerCaseFilter>GermanNormalizationFilter>ASCIIFoldingFilter 要将任何未知字符转换为拉丁字母表,我必须使用哪个附加过滤器? 例如,俄语字符串,如,我希望将其转换为等效的拉丁字母,或将其删除 哪个过滤器适合这个用途 目前,筛选器链将字符串规范化为:???,我认为这是一个不错的选择: TokenFilter filter = new ICUTransformFilter
StandardFilter>LowerCaseFilter>GermanNormalizationFilter>ASCIIFoldingFilter
要将任何未知字符转换为拉丁字母表,我必须使用哪个附加过滤器?
例如,俄语字符串,如,我希望将其转换为等效的拉丁字母,或将其删除
哪个过滤器适合这个用途
目前,筛选器链将字符串规范化为:???
,我认为这是一个不错的选择:
TokenFilter filter = new ICUTransformFilter(
previousFilter,
Transliterator.getInstance("Cyrillic-Latin")
);
我认为将每个可能的字符转换成等价的拉丁字符的想法是毫无意义的(拉丁语的等价物是什么锁? 或♞?). 但是,您也可以将多个转换链接在一起,以尽可能多地进行转换,例如将希腊语转换为拉丁语,将片假名转换为拉丁语:
TokenFilter filter = new ICUTransformFilter(
previousFilter,
Transliterator.getInstance("Cyrillic-Latin;Greek-Latin;Katakana-Latin")
);
您需要为过滤器包括“lucene-analyzers-icu-4.x.x.jar”,以及