有没有一个Lucene分析器,将忽略希腊符号和拼音英文名称之间的差异?

lvmkulzt  于 2023-08-05  发布在  Lucene
关注(0)|答案(1)|浏览(240)

理想情况下,我喜欢的东西,否则行为像一个StandardAnalyzers,但对待所有希腊符号等同于他们的英语语音拼写(“beta”==“β”,“omega”==“ω”)。我看了重症监护室的分析仪,但它并没有走那么远。如果它不存在,您是否有关于设计这种分析器的最有效方法的建议?

ymdaylpp

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;
    }

字符串

相关问题