### 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
return new SnowballFilter(tokenStream, new FrenchStemmer());
            } else if ("light_french".equalsIgnoreCase(language) || "lightFrench".equalsIgnoreCase(language)) {
                return new FrenchLightStemFilter(tokenStream);
            } else if ("minimal_french".equalsIgnoreCase(language) || "minimalFrench".equalsIgnoreCase(language)) {
                return new FrenchMinimalStemFilter(tokenStream);
                
            } else if ("galician".equalsIgnoreCase(language)) {
                return new GalicianStemFilter(tokenStream);
            } else if ("minimal_galician".equalsIgnoreCase(language)) {
                return new GalicianMinimalStemFilter(tokenStream);
                
            } else if ("german".equalsIgnoreCase(language)) {
                return new SnowballFilter(tokenStream, new GermanStemmer());
            } else if ("german2".equalsIgnoreCase(language)) {
                return new SnowballFilter(tokenStream, new German2Stemmer());
            } else if ("light_german".equalsIgnoreCase(language) || "lightGerman".equalsIgnoreCase(language)) {
                return new GermanLightStemFilter(tokenStream);
            } else if ("minimal_german".equalsIgnoreCase(language) || "minimalGerman".equalsIgnoreCase(language)) {
                return new GermanMinimalStemFilter(tokenStream);
            } else if ("greek".equalsIgnoreCase(language)) {
                return new GreekStemFilter(tokenStream);
            } else if ("hindi".equalsIgnoreCase(language)) {
                return new HindiStemFilter(tokenStream);
                
            } else if ("hungarian".equalsIgnoreCase(language)) {
                return new SnowballFilter(tokenStream, new HungarianStemmer());
            } else if ("light_hungarian".equalsIgnoreCase(language) || "lightHungarian".equalsIgnoreCase(language)) {
                return new HungarianLightStemFilter(tokenStream);
            } else if ("indonesian".equalsIgnoreCase(language)) {
                return new IndonesianStemFilter(tokenStream);