理想情况下,我喜欢的东西,否则行为像一个StandardAnalyzers,但对待所有希腊符号等同于他们的英语语音拼写(“beta”==“β”,“omega”==“ω”)。我看了重症监护室的分析仪,但它并没有走那么远。如果它不存在,您是否有关于设计这种分析器的最有效方法的建议?
ymdaylpp1#
在对@瓦尔建议进行研究后。我把这些都拼起来了。我不知道这是不是很正确,但保存在这里,以防有人发现作为一个有用的起点。
private static Analyzer GetGreekSymbolAgnosticAnalyzer() { NormalizeCharMap.Builder builder = new NormalizeCharMap.Builder(); builder.Add("α", "alpha"); builder.Add("β", "beta"); builder.Add("ω", "omega"); NormalizeCharMap norm = builder.Build(); Analyzer analyzer = Analyzer.NewAnonymous(createComponents: (fieldName, reader) => { Tokenizer tokenizer = new StandardTokenizer(LuceneVersion.LUCENE_48, reader); return new TokenStreamComponents(tokenizer, new StandardFilter(LuceneVersion.LUCENE_48, tokenizer)); }, initReader: (fieldName, reader) => new MappingCharFilter(norm, reader)); return analyzer; }
字符串
1条答案
按热度按时间ymdaylpp1#
在对@瓦尔建议进行研究后。我把这些都拼起来了。我不知道这是不是很正确,但保存在这里,以防有人发现作为一个有用的起点。
字符串