### Description

Hi,
It would be great if you could add the Persian (Farsi) language to the list of supported stemmers.
The Lucene project has a stemmer for Persian as of May 2022 that you can use.
https://github.com/apache/lucene/tree/main/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa
modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/StemmerTokenFilterFactory.java
} else if ("irish".equalsIgnoreCase(language)) {
                return new SnowballFilter(tokenStream, new IrishStemmer());
                
            } else if ("italian".equalsIgnoreCase(language)) {
                return new SnowballFilter(tokenStream, new ItalianStemmer());
            } else if ("light_italian".equalsIgnoreCase(language) || "lightItalian".equalsIgnoreCase(language)) {
                return new ItalianLightStemFilter(tokenStream);
            } else if ("latvian".equalsIgnoreCase(language)) {
                return new LatvianStemFilter(tokenStream);
            } else if ("lithuanian".equalsIgnoreCase(language)) {
                return new SnowballFilter(tokenStream, new LithuanianStemmer());
                
            } else if ("norwegian".equalsIgnoreCase(language)) {
                return new SnowballFilter(tokenStream, new NorwegianStemmer());
            } else if ("light_norwegian".equalsIgnoreCase(language) || "lightNorwegian".equalsIgnoreCase(language)) {
                return new NorwegianLightStemFilter(tokenStream);
            } else if ("minimal_norwegian".equalsIgnoreCase(language) || "minimalNorwegian".equals(language)) {
                return new NorwegianMinimalStemFilter(tokenStream);
                /
            } else if ("light_nynorsk".equalsIgnoreCase(language) || "lightNynorsk".equalsIgnoreCase(language)) {
                return new NorwegianLightStemFilter(tokenStream, NorwegianLightStemmer.NYNORSK);
            } else if ("minimal_nynorsk".equalsIgnoreCase(language) || "minimalNynorsk".equalsIgnoreCase(language)) {
                return new NorwegianMinimalStemFilter(tokenStream, NorwegianLightStemmer.NYNORSK);
                /
            } else if ("portuguese".equalsIgnoreCase(language)) {
                return new SnowballFilter(tokenStream, new PortugueseStemmer());
            } else if ("light_portuguese".equalsIgnoreCase(language) || "lightPortuguese".equalsIgnoreCase(language)) {
                return new PortugueseLightStemFilter(tokenStream);
            } else if ("minimal_portuguese".equalsIgnoreCase(language) || "minimalPortuguese".equalsIgnoreCase(language)) {