You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by to...@apache.org on 2019/07/11 14:41:08 UTC

[lucene-solr] branch branch_8_2 updated: LUCENE-8907: Revert LUCENE-8778 and succeeding commits.

This is an automated email from the ASF dual-hosted git repository.

tomoko pushed a commit to branch branch_8_2
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/branch_8_2 by this push:
     new 824a196d LUCENE-8907: Revert LUCENE-8778 and succeeding commits.
824a196d is described below

commit 824a196d780a5d5694a579969c2aaf45554555c8
Author: Tomoko Uchida <to...@apache.org>
AuthorDate: Thu Jul 11 23:19:13 2019 +0900

    LUCENE-8907: Revert LUCENE-8778 and succeeding commits.
---
 .gitignore                                         |  1 -
 lucene/CHANGES.txt                                 |  7 ---
 .../ar/ArabicNormalizationFilterFactory.java       |  4 --
 .../analysis/ar/ArabicStemFilterFactory.java       |  4 --
 .../analysis/bg/BulgarianStemFilterFactory.java    |  6 +-
 .../bn/BengaliNormalizationFilterFactory.java      |  4 --
 .../analysis/bn/BengaliStemFilterFactory.java      |  4 --
 .../analysis/br/BrazilianStemFilterFactory.java    |  4 --
 .../charfilter/HTMLStripCharFilterFactory.java     |  5 --
 .../charfilter/MappingCharFilterFactory.java       |  4 --
 .../analysis/cjk/CJKBigramFilterFactory.java       |  5 --
 .../lucene/analysis/cjk/CJKWidthFilterFactory.java |  4 --
 .../ckb/SoraniNormalizationFilterFactory.java      |  4 --
 .../analysis/ckb/SoraniStemFilterFactory.java      |  4 --
 .../commongrams/CommonGramsFilterFactory.java      |  7 +--
 .../commongrams/CommonGramsQueryFilterFactory.java |  3 -
 .../DictionaryCompoundWordTokenFilterFactory.java  |  5 --
 .../HyphenationCompoundWordTokenFilterFactory.java |  5 --
 .../analysis/core/DecimalDigitFilterFactory.java   |  4 --
 .../analysis/core/FlattenGraphFilterFactory.java   |  4 --
 .../analysis/core/KeywordTokenizerFactory.java     |  5 --
 .../analysis/core/LetterTokenizerFactory.java      |  5 --
 .../analysis/core/LowerCaseFilterFactory.java      |  4 --
 .../lucene/analysis/core/StopFilterFactory.java    |  5 --
 .../analysis/core/TypeTokenFilterFactory.java      |  5 --
 .../analysis/core/UpperCaseFilterFactory.java      |  4 --
 .../analysis/core/WhitespaceTokenizerFactory.java  |  5 --
 .../lucene/analysis/cz/CzechStemFilterFactory.java |  4 --
 .../analysis/de/GermanLightStemFilterFactory.java  |  4 --
 .../de/GermanMinimalStemFilterFactory.java         |  4 --
 .../de/GermanNormalizationFilterFactory.java       |  4 --
 .../analysis/de/GermanStemFilterFactory.java       |  4 --
 .../analysis/el/GreekLowerCaseFilterFactory.java   |  4 --
 .../lucene/analysis/el/GreekStemFilterFactory.java |  4 --
 .../en/EnglishMinimalStemFilterFactory.java        |  4 --
 .../en/EnglishPossessiveFilterFactory.java         |  4 --
 .../lucene/analysis/en/KStemFilterFactory.java     |  4 --
 .../analysis/en/PorterStemFilterFactory.java       |  4 --
 .../analysis/es/SpanishLightStemFilterFactory.java |  4 --
 .../analysis/fa/PersianCharFilterFactory.java      |  4 --
 .../fa/PersianNormalizationFilterFactory.java      |  4 --
 .../analysis/fi/FinnishLightStemFilterFactory.java |  4 --
 .../analysis/fr/FrenchLightStemFilterFactory.java  |  4 --
 .../fr/FrenchMinimalStemFilterFactory.java         |  4 --
 .../analysis/ga/IrishLowerCaseFilterFactory.java   |  4 --
 .../gl/GalicianMinimalStemFilterFactory.java       |  4 --
 .../analysis/gl/GalicianStemFilterFactory.java     |  4 --
 .../hi/HindiNormalizationFilterFactory.java        |  4 --
 .../lucene/analysis/hi/HindiStemFilterFactory.java |  4 --
 .../hu/HungarianLightStemFilterFactory.java        |  4 --
 .../hunspell/HunspellStemFilterFactory.java        |  5 --
 .../analysis/id/IndonesianStemFilterFactory.java   |  5 --
 .../in/IndicNormalizationFilterFactory.java        |  4 --
 .../analysis/it/ItalianLightStemFilterFactory.java |  4 --
 .../analysis/lv/LatvianStemFilterFactory.java      |  4 --
 .../analysis/minhash/MinHashFilterFactory.java     |  5 --
 .../miscellaneous/ASCIIFoldingFilterFactory.java   |  5 --
 .../miscellaneous/CapitalizationFilterFactory.java |  5 --
 .../miscellaneous/CodepointCountFilterFactory.java |  5 --
 .../ConcatenateGraphFilterFactory.java             |  4 --
 .../ConditionalTokenFilterFactory.java             |  4 --
 .../miscellaneous/DateRecognizerFilterFactory.java |  4 --
 .../DelimitedTermFrequencyTokenFilterFactory.java  |  5 --
 .../miscellaneous/FingerprintFilterFactory.java    |  4 --
 .../FixBrokenOffsetsFilterFactory.java             |  4 --
 .../HyphenatedWordsFilterFactory.java              |  4 --
 .../miscellaneous/KeepWordFilterFactory.java       |  5 --
 .../miscellaneous/KeywordMarkerFilterFactory.java  |  5 --
 .../miscellaneous/KeywordRepeatFilterFactory.java  |  4 --
 .../miscellaneous/LengthFilterFactory.java         |  5 --
 .../LimitTokenCountFilterFactory.java              |  4 --
 .../LimitTokenOffsetFilterFactory.java             |  4 --
 .../LimitTokenPositionFilterFactory.java           |  4 --
 .../miscellaneous/ProtectedTermFilterFactory.java  |  3 -
 .../RemoveDuplicatesTokenFilterFactory.java        |  4 --
 .../ScandinavianFoldingFilterFactory.java          |  4 --
 .../ScandinavianNormalizationFilterFactory.java    |  4 --
 .../StemmerOverrideFilterFactory.java              |  5 --
 .../analysis/miscellaneous/TrimFilterFactory.java  |  4 --
 .../miscellaneous/TruncateTokenFilterFactory.java  |  4 --
 .../miscellaneous/TypeAsSynonymFilterFactory.java  |  5 --
 .../miscellaneous/WordDelimiterFilterFactory.java  |  5 --
 .../WordDelimiterGraphFilterFactory.java           |  5 --
 .../analysis/ngram/EdgeNGramFilterFactory.java     |  5 --
 .../analysis/ngram/EdgeNGramTokenizerFactory.java  |  5 --
 .../lucene/analysis/ngram/NGramFilterFactory.java  |  5 --
 .../analysis/ngram/NGramTokenizerFactory.java      |  5 --
 .../no/NorwegianLightStemFilterFactory.java        |  4 --
 .../no/NorwegianMinimalStemFilterFactory.java      |  4 --
 .../path/PathHierarchyTokenizerFactory.java        |  5 --
 .../pattern/PatternCaptureGroupFilterFactory.java  |  5 --
 .../pattern/PatternReplaceCharFilterFactory.java   |  5 --
 .../pattern/PatternReplaceFilterFactory.java       |  5 --
 .../analysis/pattern/PatternTokenizerFactory.java  |  5 --
 .../SimplePatternSplitTokenizerFactory.java        |  5 --
 .../pattern/SimplePatternTokenizerFactory.java     |  5 --
 .../DelimitedPayloadTokenFilterFactory.java        |  5 --
 .../payloads/NumericPayloadTokenFilterFactory.java |  5 --
 .../TokenOffsetPayloadTokenFilterFactory.java      |  4 --
 .../payloads/TypeAsPayloadTokenFilterFactory.java  |  4 --
 .../pt/PortugueseLightStemFilterFactory.java       |  4 --
 .../pt/PortugueseMinimalStemFilterFactory.java     |  4 --
 .../analysis/pt/PortugueseStemFilterFactory.java   |  4 --
 .../reverse/ReverseStringFilterFactory.java        |  4 --
 .../analysis/ru/RussianLightStemFilterFactory.java |  4 --
 .../shingle/FixedShingleFilterFactory.java         |  4 --
 .../analysis/shingle/ShingleFilterFactory.java     |  5 --
 .../snowball/SnowballPorterFilterFactory.java      |  5 --
 .../sr/SerbianNormalizationFilterFactory.java      |  5 --
 .../analysis/standard/ClassicFilterFactory.java    |  4 --
 .../analysis/standard/ClassicTokenizerFactory.java |  5 --
 .../standard/StandardTokenizerFactory.java         |  5 --
 .../standard/UAX29URLEmailTokenizerFactory.java    |  5 --
 .../analysis/sv/SwedishLightStemFilterFactory.java |  4 --
 .../analysis/synonym/SynonymFilterFactory.java     |  5 --
 .../synonym/SynonymGraphFilterFactory.java         |  5 --
 .../lucene/analysis/th/ThaiTokenizerFactory.java   |  4 --
 .../analysis/tr/ApostropheFilterFactory.java       |  4 --
 .../analysis/tr/TurkishLowerCaseFilterFactory.java |  4 --
 .../analysis/util/AbstractAnalysisFactory.java     | 22 --------
 .../lucene/analysis/util/AnalysisSPILoader.java    | 64 +++++++++-------------
 .../lucene/analysis/util/CharFilterFactory.java    |  9 ---
 .../lucene/analysis/util/ElisionFilterFactory.java |  5 --
 .../lucene/analysis/util/TokenFilterFactory.java   | 16 ++----
 .../lucene/analysis/util/TokenizerFactory.java     | 11 +---
 .../wikipedia/WikipediaTokenizerFactory.java       |  5 --
 .../analysis/util/TestAbstractAnalysisFactory.java | 41 --------------
 .../analysis/util/TestAnalysisSPILoader.java       |  6 +-
 .../analysis/icu/ICUFoldingFilterFactory.java      |  5 --
 .../icu/ICUNormalizer2CharFilterFactory.java       |  5 --
 .../analysis/icu/ICUNormalizer2FilterFactory.java  |  5 --
 .../analysis/icu/ICUTransformFilterFactory.java    |  5 --
 .../icu/segmentation/ICUTokenizerFactory.java      |  5 --
 .../analysis/ja/JapaneseBaseFormFilterFactory.java |  4 --
 .../ja/JapaneseIterationMarkCharFilterFactory.java |  4 --
 .../ja/JapaneseKatakanaStemFilterFactory.java      |  5 --
 .../analysis/ja/JapaneseNumberFilterFactory.java   |  4 --
 .../ja/JapanesePartOfSpeechStopFilterFactory.java  |  4 --
 .../ja/JapaneseReadingFormFilterFactory.java       |  5 --
 .../analysis/ja/JapaneseTokenizerFactory.java      |  5 --
 .../morfologik/MorfologikFilterFactory.java        |  5 --
 .../analysis/ko/KoreanNumberFilterFactory.java     |  4 --
 .../ko/KoreanPartOfSpeechStopFilterFactory.java    |  5 --
 .../ko/KoreanReadingFormFilterFactory.java         |  4 --
 .../lucene/analysis/ko/KoreanTokenizerFactory.java |  5 --
 .../opennlp/OpenNLPChunkerFilterFactory.java       |  5 --
 .../opennlp/OpenNLPLemmatizerFilterFactory.java    |  5 --
 .../analysis/opennlp/OpenNLPPOSFilterFactory.java  |  5 --
 .../analysis/opennlp/OpenNLPTokenizerFactory.java  |  5 --
 .../phonetic/BeiderMorseFilterFactory.java         |  5 --
 .../DaitchMokotoffSoundexFilterFactory.java        |  5 --
 .../phonetic/DoubleMetaphoneFilterFactory.java     |  5 --
 .../analysis/phonetic/PhoneticFilterFactory.java   |  5 --
 .../cn/smart/HMMChineseTokenizerFactory.java       |  4 --
 .../stempel/StempelPolishStemFilterFactory.java    |  6 +-
 lucene/common-build.xml                            |  2 -
 .../analysis/AnalysisChainDialogFactory.java       |  9 +--
 .../lucene/luke/models/analysis/AnalysisImpl.java  |  7 +--
 .../luke/models/analysis/AnalysisImplTest.java     |  6 +-
 .../analyzing/SuggestStopFilterFactory.java        |  7 +--
 .../tools/src/groovy/check-source-patterns.groovy  | 11 ----
 .../solr/analysis/LowerCaseTokenizerFactory.java   |  4 --
 .../analysis/ReversedWildcardFilterFactory.java    |  4 --
 .../schema/analysis/ManagedStopFilterFactory.java  |  4 --
 .../analysis/ManagedSynonymFilterFactory.java      |  4 --
 .../analysis/ManagedSynonymGraphFilterFactory.java |  4 --
 .../tagger/WordLengthTaggingFilterFactory.java     |  6 --
 167 files changed, 46 insertions(+), 853 deletions(-)

diff --git a/.gitignore b/.gitignore
index 1a3e1db..11d7f83 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,4 +28,3 @@ pom.xml
 .pydevproject
 __pycache__
 /dev-tools/scripts/scripts.iml
-
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index da9402e..dea2c87 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -116,12 +116,8 @@ Improvements
 
 * LUCENE-8793: Luke enhanced UI for CustomAnalyzer: show detailed analysis steps. (Jun Ohtani via Tomoko Uchida)
 
-* LUCENE-8874: Show SPI names instead of class names in Luke Analysis tab. (Tomoko Uchida)
-
 * LUCENE-8855: Add Accountable to some Query implementations (ab, Adrien Grand)
 
-* LUCENE-8894: Add APIs to find SPI names for Tokenizer/CharFilter/TokenFilter factory classes. (Tomoko Uchida)
-
 Optimizations
 
 * LUCENE-8796: Use exponential search instead of binary search in
@@ -163,9 +159,6 @@ Other
 
 * LUCENE-8852: ReleaseWizard tool for release managers (janhoy)
 
-* LUCENE-8778: Define analyzer SPI names as static final fields and document the names in Javadocs.
-  (Tomoko Uchida, Uwe Schindler)
-
 * LUCENE-8838: Remove support for Steiner points on Tessellator. (Ignacio Vera)
 
 * LUCENE-8879: Improve BKDRadixSelector tests. (Ignacio Vera)
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicNormalizationFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicNormalizationFilterFactory.java
index a1b5c2d..3bf2227 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicNormalizationFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicNormalizationFilterFactory.java
@@ -33,13 +33,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class ArabicNormalizationFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "arabicNormalization";
-
   /** Creates a new ArabicNormalizationFilterFactory */
   public ArabicNormalizationFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicStemFilterFactory.java
index 5a12a71..93864e7 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ar/ArabicStemFilterFactory.java
@@ -34,13 +34,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class ArabicStemFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "arabicStem";
-
   /** Creates a new ArabicStemFilterFactory */
   public ArabicStemFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/bg/BulgarianStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/bg/BulgarianStemFilterFactory.java
index 980708b..380adbd 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/bg/BulgarianStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/bg/BulgarianStemFilterFactory.java
@@ -33,13 +33,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class BulgarianStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "bulgarianStem";
-
+  
   /** Creates a new BulgarianStemFilterFactory */
   public BulgarianStemFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/bn/BengaliNormalizationFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/bn/BengaliNormalizationFilterFactory.java
index 975805b..d537f22 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/bn/BengaliNormalizationFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/bn/BengaliNormalizationFilterFactory.java
@@ -32,13 +32,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 7.1.0
- * @lucene.spi {@value #NAME}
  */
 public class BengaliNormalizationFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "bengaliNormalization";
-
   public BengaliNormalizationFilterFactory(Map<String,String> args) {
     super(args);
     if (!args.isEmpty()) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/bn/BengaliStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/bn/BengaliStemFilterFactory.java
index 999e1c1..7383dbb 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/bn/BengaliStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/bn/BengaliStemFilterFactory.java
@@ -32,13 +32,9 @@ import java.util.Map;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 7.1.0
- * @lucene.spi {@value #NAME}
  */
 public class BengaliStemFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "bengaliStem";
-
   public BengaliStemFilterFactory(Map<String,String> args) {
     super(args);
     if (!args.isEmpty()) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/br/BrazilianStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/br/BrazilianStemFilterFactory.java
index bcf00d6..065bdcc 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/br/BrazilianStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/br/BrazilianStemFilterFactory.java
@@ -34,12 +34,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class BrazilianStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "brazilianStem";
   
   /** Creates a new BrazilianStemFilterFactory */
   public BrazilianStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilterFactory.java
index 372e349..8ad1488 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilterFactory.java
@@ -35,13 +35,8 @@ import java.util.regex.Pattern;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class HTMLStripCharFilterFactory extends CharFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "htmlStrip";
-
   final Set<String> escapedTags;
   static final Pattern TAG_NAME_PATTERN = Pattern.compile("[^\\s,]+");
   
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/MappingCharFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/MappingCharFilterFactory.java
index dbf9358..de0e22b 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/MappingCharFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/MappingCharFilterFactory.java
@@ -40,14 +40,10 @@ import org.apache.lucene.analysis.util.ResourceLoaderAware;
  * &lt;/fieldType&gt;</pre>
  *
  * @since Solr 1.4
- * @lucene.spi {@value #NAME}
  */
 public class MappingCharFilterFactory extends CharFilterFactory implements
     ResourceLoaderAware {
 
-  /** SPI name */
-  public static final String NAME = "mapping";
-
   protected NormalizeCharMap normMap;
   private final String mapping;
 
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/cjk/CJKBigramFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/cjk/CJKBigramFilterFactory.java
index c5100d6..e0c6097 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/cjk/CJKBigramFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/cjk/CJKBigramFilterFactory.java
@@ -36,13 +36,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class CJKBigramFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "cjkBigram";
-
   final int flags;
   final boolean outputUnigrams;
 
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/cjk/CJKWidthFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/cjk/CJKWidthFilterFactory.java
index 6c9aa83..6754bf5 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/cjk/CJKWidthFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/cjk/CJKWidthFilterFactory.java
@@ -34,12 +34,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class CJKWidthFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "cjkWidth";
   
   /** Creates a new CJKWidthFilterFactory */
   public CJKWidthFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniNormalizationFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniNormalizationFilterFactory.java
index 9237cc1..b552ae9 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniNormalizationFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniNormalizationFilterFactory.java
@@ -32,13 +32,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 4.7.0
- * @lucene.spi {@value #NAME}
  */
 public class SoraniNormalizationFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "soraniNormalization";
-
   /** Creates a new SoraniNormalizationFilterFactory */
   public SoraniNormalizationFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniStemFilterFactory.java
index 1b18c44..50aa971 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ckb/SoraniStemFilterFactory.java
@@ -33,13 +33,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 4.7.0
- * @lucene.spi {@value #NAME}
  */
 public class SoraniStemFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "soraniStem";
-
   /** Creates a new SoraniStemFilterFactory */
   public SoraniStemFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/commongrams/CommonGramsFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/commongrams/CommonGramsFilterFactory.java
index 523601b..77ba8a8 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/commongrams/CommonGramsFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/commongrams/CommonGramsFilterFactory.java
@@ -39,14 +39,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class CommonGramsFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "commonGrams";
-
-  // TODO: shared base class for Stop/Keep/CommonGrams?
+  // TODO: shared base class for Stop/Keep/CommonGrams? 
   private CharArraySet commonWords;
   private final String commonWordFiles;
   private final String format;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/commongrams/CommonGramsQueryFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/commongrams/CommonGramsQueryFilterFactory.java
index 0431b58..2d65c57 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/commongrams/CommonGramsQueryFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/commongrams/CommonGramsQueryFilterFactory.java
@@ -34,12 +34,9 @@ import org.apache.lucene.analysis.TokenStream;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class CommonGramsQueryFilterFactory extends CommonGramsFilterFactory {
 
-  public static final String NAME = "commonGramsQuery";
-
   /** Creates a new CommonGramsQueryFilterFactory */
   public CommonGramsQueryFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilterFactory.java
index ee80e1e..db475e3 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilterFactory.java
@@ -38,13 +38,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class DictionaryCompoundWordTokenFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "dictionaryCompoundWord";
-
   private CharArraySet dictionary;
   private final String dictFile;
   private final int minWordSize;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java
index b7f3037..6b018d6 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java
@@ -58,13 +58,8 @@ import org.xml.sax.InputSource;
  *
  * @see HyphenationCompoundWordTokenFilter
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class HyphenationCompoundWordTokenFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "hyphenationCompoundWord";
-
   private CharArraySet dictionary;
   private HyphenationTree hyphenator;
   private final String dictFile;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/DecimalDigitFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/DecimalDigitFilterFactory.java
index 1ebca98..2db789a 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/DecimalDigitFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/DecimalDigitFilterFactory.java
@@ -32,12 +32,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 5.4.0
- * @lucene.spi {@value #NAME}
  */
 public class DecimalDigitFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "decimalDigit";
   
   /** Creates a new DecimalDigitFilterFactory */
   public DecimalDigitFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/FlattenGraphFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/FlattenGraphFilterFactory.java
index c3afe4f..1021c74 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/FlattenGraphFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/FlattenGraphFilterFactory.java
@@ -27,13 +27,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *
  * @lucene.experimental
  * @since 6.4.0
- * @lucene.spi {@value #NAME}
  */
 public class FlattenGraphFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "flattenGraph";
-
   /** Creates a new FlattenGraphFilterFactory */
   public FlattenGraphFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/KeywordTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/KeywordTokenizerFactory.java
index 1256472..f2d84f4 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/KeywordTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/KeywordTokenizerFactory.java
@@ -40,13 +40,8 @@ import static org.apache.lucene.analysis.standard.StandardTokenizer.MAX_TOKEN_LE
  * </ul>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class KeywordTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "keyword";
-
   private final int maxTokenLen;
   
   /** Creates a new KeywordTokenizerFactory */
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/LetterTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/LetterTokenizerFactory.java
index 6cb9242..ab5cefd 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/LetterTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/LetterTokenizerFactory.java
@@ -42,13 +42,8 @@ import static org.apache.lucene.analysis.standard.StandardTokenizer.MAX_TOKEN_LE
  * </ul>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class LetterTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "letter";
-
   private final int maxTokenLen;
 
   /** Creates a new LetterTokenizerFactory */
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/LowerCaseFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/LowerCaseFilterFactory.java
index f47b860..d0e0791 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/LowerCaseFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/LowerCaseFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class LowerCaseFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "lowercase";
   
   /** Creates a new LowerCaseFilterFactory */
   public LowerCaseFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/StopFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/StopFilterFactory.java
index a2b5b80..3806b83 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/StopFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/StopFilterFactory.java
@@ -71,13 +71,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * </ul>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class StopFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "stop";
-
   public static final String FORMAT_WORDSET = "wordset";
   public static final String FORMAT_SNOWBALL = "snowball";
   
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/TypeTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/TypeTokenFilterFactory.java
index 920f24f..ffa0853 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/TypeTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/TypeTokenFilterFactory.java
@@ -39,13 +39,8 @@ import java.util.Set;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class TypeTokenFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "type";
-
   private final boolean useWhitelist;
   private final String stopTypesFiles;
   private Set<String> stopTypes;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/UpperCaseFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/UpperCaseFilterFactory.java
index 5d1e1b7..24515d2 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/UpperCaseFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/UpperCaseFilterFactory.java
@@ -37,12 +37,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * when you require uppercase tokens.  Use the {@link LowerCaseFilterFactory} for 
  * general search matching
  * @since 4.7.0
- * @lucene.spi {@value #NAME}
  */
 public class UpperCaseFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "uppercase";
   
   /** Creates a new UpperCaseFilterFactory */
   public UpperCaseFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/WhitespaceTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/WhitespaceTokenizerFactory.java
index c2aac5d..b04e9ac 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/WhitespaceTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/core/WhitespaceTokenizerFactory.java
@@ -47,13 +47,8 @@ import static org.apache.lucene.analysis.standard.StandardTokenizer.MAX_TOKEN_LE
  * </ul>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class WhitespaceTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "whitespace";
-
   public static final String RULE_JAVA = "java";
   public static final String RULE_UNICODE = "unicode";
   private static final Collection<String> RULE_NAMES = Arrays.asList(RULE_JAVA, RULE_UNICODE);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/cz/CzechStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/cz/CzechStemFilterFactory.java
index 75c8851..2e4ff76 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/cz/CzechStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/cz/CzechStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class CzechStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "czechStem";
   
   /** Creates a new CzechStemFilterFactory */
   public CzechStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanLightStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanLightStemFilterFactory.java
index 63b4468..b85faa4 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanLightStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanLightStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class GermanLightStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "germanLightStem";
   
   /** Creates a new GermanLightStemFilterFactory */
   public GermanLightStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanMinimalStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanMinimalStemFilterFactory.java
index 0e0eb78..f0ccfa9 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanMinimalStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanMinimalStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class GermanMinimalStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "germanMinimalStem";
   
   /** Creates a new GermanMinimalStemFilterFactory */
   public GermanMinimalStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanNormalizationFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanNormalizationFilterFactory.java
index b99c305..bed3203 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanNormalizationFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanNormalizationFilterFactory.java
@@ -33,13 +33,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre> 
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class GermanNormalizationFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "germanNormalization";
-
   /** Creates a new GermanNormalizationFilterFactory */
   public GermanNormalizationFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanStemFilterFactory.java
index 567b126..545fcff 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/de/GermanStemFilterFactory.java
@@ -34,12 +34,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class GermanStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "germanStem";
   
   /** Creates a new GermanStemFilterFactory */
   public GermanStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekLowerCaseFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekLowerCaseFilterFactory.java
index 4149c41..17e7adf 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekLowerCaseFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekLowerCaseFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class GreekLowerCaseFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "greekLowerCase";
  
   /** Creates a new GreekLowerCaseFilterFactory */
   public GreekLowerCaseFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekStemFilterFactory.java
index 66e415f..4ced779 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekStemFilterFactory.java
@@ -33,13 +33,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class GreekStemFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "greekStem";
-
   /** Creates a new GreekStemFilterFactory */
   public GreekStemFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/EnglishMinimalStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/EnglishMinimalStemFilterFactory.java
index 99953ea..062579b 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/EnglishMinimalStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/EnglishMinimalStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class EnglishMinimalStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "englishMinimalStem";
   
   /** Creates a new EnglishMinimalStemFilterFactory */
   public EnglishMinimalStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/EnglishPossessiveFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/EnglishPossessiveFilterFactory.java
index dbefeec..ef09093 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/EnglishPossessiveFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/EnglishPossessiveFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class EnglishPossessiveFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "englishPossessive";
   
   /** Creates a new EnglishPossessiveFilterFactory */
   public EnglishPossessiveFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemFilterFactory.java
index 0bf1a71..b72c805 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemFilterFactory.java
@@ -34,13 +34,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.3.0
- * @lucene.spi {@value #NAME}
  */
 public class KStemFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "kStem";
-
   /** Creates a new KStemFilterFactory */
   public KStemFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/PorterStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/PorterStemFilterFactory.java
index 10fba1f..b62865c 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/PorterStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/PorterStemFilterFactory.java
@@ -34,12 +34,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class PorterStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "porterStem";
   
   /** Creates a new PorterStemFilterFactory */
   public PorterStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/es/SpanishLightStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/es/SpanishLightStemFilterFactory.java
index a9cc487..7ad81fa 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/es/SpanishLightStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/es/SpanishLightStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class SpanishLightStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "spanishLightStem";
   
   /** Creates a new SpanishLightStemFilterFactory */
   public SpanishLightStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianCharFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianCharFilterFactory.java
index 1084e50..1f59ecf 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianCharFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianCharFilterFactory.java
@@ -33,13 +33,9 @@ import org.apache.lucene.analysis.util.CharFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class PersianCharFilterFactory extends CharFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "persian";
-
   /** Creates a new PersianCharFilterFactory */
   public PersianCharFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianNormalizationFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianNormalizationFilterFactory.java
index 1801bd3..256b501 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianNormalizationFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/fa/PersianNormalizationFilterFactory.java
@@ -34,12 +34,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class PersianNormalizationFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "persianNormalization";
   
   /** Creates a new PersianNormalizationFilterFactory */
   public PersianNormalizationFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/fi/FinnishLightStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/fi/FinnishLightStemFilterFactory.java
index e8311ae..02719ff 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/fi/FinnishLightStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/fi/FinnishLightStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class FinnishLightStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "finnishLightStem";
   
   /** Creates a new FinnishLightStemFilterFactory */
   public FinnishLightStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchLightStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchLightStemFilterFactory.java
index 368289f..1f957d2 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchLightStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchLightStemFilterFactory.java
@@ -34,12 +34,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class FrenchLightStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "frenchLightStem";
   
   /** Creates a new FrenchLightStemFilterFactory */
   public FrenchLightStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchMinimalStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchMinimalStemFilterFactory.java
index 08f7071..b6e91a2 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchMinimalStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchMinimalStemFilterFactory.java
@@ -34,12 +34,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class FrenchMinimalStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "frenchMinimalStem";
   
   /** Creates a new FrenchMinimalStemFilterFactory */
   public FrenchMinimalStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ga/IrishLowerCaseFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ga/IrishLowerCaseFilterFactory.java
index 2e551a5..abaad3d 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ga/IrishLowerCaseFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ga/IrishLowerCaseFilterFactory.java
@@ -32,13 +32,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class IrishLowerCaseFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "irishLowerCase";
-
   /** Creates a new IrishLowerCaseFilterFactory */
   public IrishLowerCaseFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/gl/GalicianMinimalStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/gl/GalicianMinimalStemFilterFactory.java
index 6c63583..c739c7e 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/gl/GalicianMinimalStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/gl/GalicianMinimalStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class GalicianMinimalStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "galicianMinimalStem";
   
   /** Creates a new GalicianMinimalStemFilterFactory */
   public GalicianMinimalStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/gl/GalicianStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/gl/GalicianStemFilterFactory.java
index 0d11dac..bd4bcf1 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/gl/GalicianStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/gl/GalicianStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class GalicianStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "galicianStem";
   
   /** Creates a new GalicianStemFilterFactory */
   public GalicianStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiNormalizationFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiNormalizationFilterFactory.java
index 8c366fd..fbc0a24 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiNormalizationFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiNormalizationFilterFactory.java
@@ -32,12 +32,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class HindiNormalizationFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "hindiNormalization";
   
   /** Creates a new HindiNormalizationFilterFactory */
   public HindiNormalizationFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiStemFilterFactory.java
index 32f5287..e0562a4 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/hi/HindiStemFilterFactory.java
@@ -32,12 +32,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class HindiStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "hindiStem";
   
   /** Creates a new HindiStemFilterFactory */
   public HindiStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/hu/HungarianLightStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/hu/HungarianLightStemFilterFactory.java
index 3b57a40..6720fd1 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/hu/HungarianLightStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/hu/HungarianLightStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class HungarianLightStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "hungarianLightStem";
   
   /** Creates a new HungarianLightStemFilterFactory */
   public HungarianLightStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/HunspellStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/HunspellStemFilterFactory.java
index 73de215..3e9b9ba 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/HunspellStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/HunspellStemFilterFactory.java
@@ -49,13 +49,8 @@ import org.apache.lucene.util.IOUtils;
  * See <a href="http://wiki.apache.org/solr/Hunspell">http://wiki.apache.org/solr/Hunspell</a>
  * @lucene.experimental
  * @since 3.5.0
- * @lucene.spi {@value #NAME}
  */
 public class HunspellStemFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "hunspellStem";
-
   private static final String PARAM_DICTIONARY    = "dictionary";
   private static final String PARAM_AFFIX         = "affix";
   // NOTE: this one is currently unused?:
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/id/IndonesianStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/id/IndonesianStemFilterFactory.java
index f975418..d81426b 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/id/IndonesianStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/id/IndonesianStemFilterFactory.java
@@ -33,13 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class IndonesianStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "indonesianStem";
-
   private final boolean stemDerivational;
 
   /** Creates a new IndonesianStemFilterFactory */
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/in/IndicNormalizationFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/in/IndicNormalizationFilterFactory.java
index d7391d1..e4a6900 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/in/IndicNormalizationFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/in/IndicNormalizationFilterFactory.java
@@ -32,12 +32,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class IndicNormalizationFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "indicNormalization";
   
   /** Creates a new IndicNormalizationFilterFactory */
   public IndicNormalizationFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/it/ItalianLightStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/it/ItalianLightStemFilterFactory.java
index 53f56bf..2c324a4 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/it/ItalianLightStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/it/ItalianLightStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre> 
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class ItalianLightStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "italianLightStem";
   
   /** Creates a new ItalianLightStemFilterFactory */
   public ItalianLightStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/lv/LatvianStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/lv/LatvianStemFilterFactory.java
index b00a3c1..0be2828 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/lv/LatvianStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/lv/LatvianStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.2.0
- * @lucene.spi {@value #NAME}
  */
 public class LatvianStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "latvianStem";
   
   /** Creates a new LatvianStemFilterFactory */
   public LatvianStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/minhash/MinHashFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/minhash/MinHashFilterFactory.java
index 70132f2..f93f65b 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/minhash/MinHashFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/minhash/MinHashFilterFactory.java
@@ -25,13 +25,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
 /**
  * {@link TokenFilterFactory} for {@link MinHashFilter}.
  * @since 6.2.0
- * @lucene.spi {@value #NAME}
  */
 public class MinHashFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "minHash";
-
   private int hashCount = MinHashFilter.DEFAULT_HASH_COUNT;
   
   private int bucketCount = MinHashFilter.DEFAULT_BUCKET_COUNT;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilterFactory.java
index 8a3a803..4dabd88 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilterFactory.java
@@ -33,13 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class ASCIIFoldingFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "asciiFolding";
-
   private static final String PRESERVE_ORIGINAL = "preserveOriginal";
 
   private final boolean preserveOriginal;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/CapitalizationFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/CapitalizationFilterFactory.java
index f0c7988..0397de7 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/CapitalizationFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/CapitalizationFilterFactory.java
@@ -56,13 +56,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since solr 1.3
- * @lucene.spi {@value #NAME}
  */
 public class CapitalizationFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "capitalization";
-
   public static final String KEEP = "keep";
   public static final String KEEP_IGNORE_CASE = "keepIgnoreCase";
   public static final String OK_PREFIX = "okPrefix";
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/CodepointCountFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/CodepointCountFilterFactory.java
index 2f13dc6..abadf25 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/CodepointCountFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/CodepointCountFilterFactory.java
@@ -32,13 +32,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 4.5.1
- * @lucene.spi {@value #NAME}
  */
 public class CodepointCountFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "codepointCount";
-
   final int min;
   final int max;
   public static final String MIN_KEY = "min";
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ConcatenateGraphFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ConcatenateGraphFilterFactory.java
index 2b0aab9..5d8ccba 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ConcatenateGraphFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ConcatenateGraphFilterFactory.java
@@ -44,13 +44,9 @@ import org.apache.lucene.util.automaton.TooComplexToDeterminizeException;
  * </ul>
  * @see ConcatenateGraphFilter
  * @since 7.4.0
- * @lucene.spi {@value #NAME}
  */
 public class ConcatenateGraphFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "concatenateGraph";
-
   private boolean preserveSep;
   private boolean preservePositionIncrements;
   private int maxGraphExpansions;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ConditionalTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ConditionalTokenFilterFactory.java
index deddbc6..6296082 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ConditionalTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ConditionalTokenFilterFactory.java
@@ -32,13 +32,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * Abstract parent class for analysis factories that create {@link ConditionalTokenFilter} instances
  *
  * @since 7.4.0
- * @lucene.spi {@value #NAME}
  */
 public abstract class ConditionalTokenFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
 
-  /** SPI name */
-  public static final String NAME = "conditional";
-
   private List<TokenFilterFactory> innerFilters;
 
   protected ConditionalTokenFilterFactory(Map<String, String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DateRecognizerFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DateRecognizerFilterFactory.java
index 4e0a2ad..7a426c5 100755
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DateRecognizerFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DateRecognizerFilterFactory.java
@@ -42,13 +42,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * format of the system. The {@code locale} is optional and if omitted the filter will be created with
  * {@link Locale#ENGLISH}.
  * @since 5.5.0
- * @lucene.spi {@value #NAME}
  */
 public class DateRecognizerFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "dateRecognizer";
-
   public static final String DATE_PATTERN = "datePattern";
   public static final String LOCALE = "locale";
 
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DelimitedTermFrequencyTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DelimitedTermFrequencyTokenFilterFactory.java
index a9479c1..422da77 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DelimitedTermFrequencyTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DelimitedTermFrequencyTokenFilterFactory.java
@@ -32,13 +32,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 7.0.0
- * @lucene.spi {@value #NAME}
  */
 public class DelimitedTermFrequencyTokenFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "delimitedTermFrequency";
-
   public static final String DELIMITER_ATTR = "delimiter";
 
   private final char delimiter;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/FingerprintFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/FingerprintFilterFactory.java
index 89556c5..70bc668 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/FingerprintFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/FingerprintFilterFactory.java
@@ -32,13 +32,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * {@link FingerprintFilter} for an explanation of its use.
  * </pre>
  * @since 5.4.0
- * @lucene.spi {@value #NAME}
  */
 public class FingerprintFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "fingerprint";
-
   public static final String MAX_OUTPUT_TOKEN_SIZE_KEY = "maxOutputTokenSize";
   public static final String SEPARATOR_KEY = "separator";
   final int maxOutputTokenSize;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/FixBrokenOffsetsFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/FixBrokenOffsetsFilterFactory.java
index 04503e4..1f58841 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/FixBrokenOffsetsFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/FixBrokenOffsetsFilterFactory.java
@@ -25,13 +25,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
 /**
  * Factory for {@link FixBrokenOffsetsFilter}.
  * @since 7.0.0
- * @lucene.spi {@value #NAME}
  */
 public class FixBrokenOffsetsFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "fixBrokenOffsets";
-
   /** Sole constructor */
   public FixBrokenOffsetsFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/HyphenatedWordsFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/HyphenatedWordsFilterFactory.java
index 3b9804a..f55a49d 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/HyphenatedWordsFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/HyphenatedWordsFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class HyphenatedWordsFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "hyphenatedWords";
   
   /** Creates a new HyphenatedWordsFilterFactory */
   public HyphenatedWordsFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeepWordFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeepWordFilterFactory.java
index 64a83ca..b1c4bae 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeepWordFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeepWordFilterFactory.java
@@ -37,13 +37,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class KeepWordFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "keepWord";
-
   private final boolean ignoreCase;
   private final String wordFiles;
   private CharArraySet words;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeywordMarkerFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeywordMarkerFilterFactory.java
index efc0159..e9293bc 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeywordMarkerFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeywordMarkerFilterFactory.java
@@ -37,13 +37,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class KeywordMarkerFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "keywordMarker";
-
   public static final String PROTECTED_TOKENS = "protected";
   public static final String PATTERN = "pattern";
   private final String wordFiles;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeywordRepeatFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeywordRepeatFilterFactory.java
index 717a7ee..900b357 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeywordRepeatFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/KeywordRepeatFilterFactory.java
@@ -29,12 +29,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * later in the analysis chain will be in the document twice. Therefore, consider adding
  * {@link RemoveDuplicatesTokenFilterFactory} later in the analysis chain.
  * @since 4.3.0
- * @lucene.spi {@value #NAME}
  */
 public final class KeywordRepeatFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "keywordRepeat";
   
   /** Creates a new KeywordRepeatFilterFactory */
   public KeywordRepeatFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LengthFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LengthFilterFactory.java
index 01f4b77..29d789d 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LengthFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LengthFilterFactory.java
@@ -33,13 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class LengthFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "length";
-
   final int min;
   final int max;
   public static final String MIN_KEY = "min";
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilterFactory.java
index b36aab0..547bd9b 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilterFactory.java
@@ -35,13 +35,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * The {@code consumeAllTokens} property is optional and defaults to {@code false}.  
  * See {@link LimitTokenCountFilter} for an explanation of its use.
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class LimitTokenCountFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "limitTokenCount";
-
   public static final String MAX_TOKEN_COUNT_KEY = "maxTokenCount";
   public static final String CONSUME_ALL_TOKENS_KEY = "consumeAllTokens";
   final int maxTokenCount;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenOffsetFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenOffsetFilterFactory.java
index 954be4b..fd01e87 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenOffsetFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenOffsetFilterFactory.java
@@ -34,13 +34,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * <p>
  * The {@code consumeAllTokens} property is optional and defaults to {@code false}.
  * @since 5.2.0
- * @lucene.spi {@value #NAME}
  */
 public class LimitTokenOffsetFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "limitTokenOffset";
-
   public static final String MAX_START_OFFSET = "maxStartOffset";
   public static final String CONSUME_ALL_TOKENS_KEY = "consumeAllTokens";
 
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenPositionFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenPositionFilterFactory.java
index 8b5bdf2..a6c055b 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenPositionFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/LimitTokenPositionFilterFactory.java
@@ -34,13 +34,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * The {@code consumeAllTokens} property is optional and defaults to {@code false}.  
  * See {@link LimitTokenPositionFilter} for an explanation of its use.
  * @since 4.3.0
- * @lucene.spi {@value #NAME}
  */
 public class LimitTokenPositionFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "limitTokenPosition";
-
   public static final String MAX_TOKEN_POSITION_KEY = "maxTokenPosition";
   public static final String CONSUME_ALL_TOKENS_KEY = "consumeAllTokens";
   final int maxTokenPosition;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ProtectedTermFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ProtectedTermFilterFactory.java
index 65c8edf..c528996 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ProtectedTermFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ProtectedTermFilterFactory.java
@@ -77,12 +77,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * <p>See related {@link org.apache.lucene.analysis.custom.CustomAnalyzer.Builder#whenTerm(Predicate)}
  *
  * @since 7.4.0
- * @lucene.spi {@value #NAME}
  */
 public class ProtectedTermFilterFactory extends ConditionalTokenFilterFactory implements ResourceLoaderAware {
 
-  public static final String NAME = "protectedTerm";
-
   public static final String PROTECTED_TERMS = "protected";
   public static final char FILTER_ARG_SEPARATOR = '.';
   public static final char FILTER_NAME_ID_SEPARATOR = '-';
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilterFactory.java
index 70a3678..0c97245 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class RemoveDuplicatesTokenFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "removeDuplicates";
   
   /** Creates a new RemoveDuplicatesTokenFilterFactory */
   public RemoveDuplicatesTokenFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ScandinavianFoldingFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ScandinavianFoldingFilterFactory.java
index 62beb64..ae6465d 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ScandinavianFoldingFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ScandinavianFoldingFilterFactory.java
@@ -32,13 +32,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 4.4.0
- * @lucene.spi {@value #NAME}
  */
 public class ScandinavianFoldingFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "scandinavianFolding";
-
   public ScandinavianFoldingFilterFactory(Map<String,String> args) {
     super(args);
     if (!args.isEmpty()) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ScandinavianNormalizationFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ScandinavianNormalizationFilterFactory.java
index 3d40daa..f58d42d 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ScandinavianNormalizationFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/ScandinavianNormalizationFilterFactory.java
@@ -32,13 +32,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 4.4.0
- * @lucene.spi {@value #NAME}
  */
 public class ScandinavianNormalizationFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "scandinavianNormalization";
-
   public ScandinavianNormalizationFilterFactory(Map<String, String> args) {
     super(args);
     if (!args.isEmpty()) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/StemmerOverrideFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/StemmerOverrideFilterFactory.java
index 9373454..eb6654c 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/StemmerOverrideFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/StemmerOverrideFilterFactory.java
@@ -37,13 +37,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class StemmerOverrideFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "stemmerOverride";
-
   private StemmerOverrideMap dictionary;
   private final String dictionaryFiles;
   private final boolean ignoreCase;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TrimFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TrimFilterFactory.java
index 285fc72..4f00e41 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TrimFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TrimFilterFactory.java
@@ -35,12 +35,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * @see TrimFilter
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class TrimFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "trim";
   
   /** Creates a new TrimFilterFactory */
   public TrimFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilterFactory.java
index 1c37d1e..83800cd 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilterFactory.java
@@ -37,13 +37,9 @@ import java.util.Map;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 4.8.0
- * @lucene.spi {@value #NAME}
  */
 public class TruncateTokenFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "truncate";
-
   public static final String PREFIX_LENGTH_KEY = "prefixLength";
   private final byte prefixLength;
 
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TypeAsSynonymFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TypeAsSynonymFilterFactory.java
index 8dc0c46..8487877 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TypeAsSynonymFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TypeAsSynonymFilterFactory.java
@@ -38,13 +38,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * the emitted synonym will have text "_type_&lt;URL&gt;".
  *
  * @since 7.3.0
- * @lucene.spi {@value #NAME}
  */
 public class TypeAsSynonymFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "typeAsSynonym";
-
   private final String prefix;
 
   public TypeAsSynonymFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilterFactory.java
index 3cd13e4..8e29ac2 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilterFactory.java
@@ -54,14 +54,9 @@ import static org.apache.lucene.analysis.miscellaneous.WordDelimiterFilter.*;
  * the search time analyzer.
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 @Deprecated
 public class WordDelimiterFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "wordDelimiter";
-
   public static final String PROTECTED_TOKENS = "protected";
   public static final String TYPES = "types";
 
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterGraphFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterGraphFilterFactory.java
index 7b936f6..4666c7d 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterGraphFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterGraphFilterFactory.java
@@ -49,13 +49,8 @@ import static org.apache.lucene.analysis.miscellaneous.WordDelimiterIterator.*;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 6.5.0
- * @lucene.spi {@value #NAME}
  */
 public class WordDelimiterGraphFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "wordDelimiterGraph";
-
   public static final String PROTECTED_TOKENS = "protected";
   public static final String TYPES = "types";
   public static final String OFFSETS = "adjustOffsets";
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java
index 6b02208..efabafb 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java
@@ -34,13 +34,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class EdgeNGramFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "edgeNGram";
-
   private final int maxGramSize;
   private final int minGramSize;
   private final boolean preserveOriginal;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java
index 4ba1a47..4cc3d2f 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java
@@ -33,13 +33,8 @@ import java.util.Map;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class EdgeNGramTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "edgeNGram";
-
   private final int maxGramSize;
   private final int minGramSize;
 
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramFilterFactory.java
index 3c9c4d2..a04a107 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramFilterFactory.java
@@ -34,13 +34,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class NGramFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "nGram";
-
   private final int maxGramSize;
   private final int minGramSize;
   private final boolean preserveOriginal;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramTokenizerFactory.java
index 12d60d7..b6c55ba 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramTokenizerFactory.java
@@ -35,13 +35,8 @@ import java.util.Map;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class NGramTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "nGram";
-
   private final int maxGramSize;
   private final int minGramSize;
 
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/no/NorwegianLightStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/no/NorwegianLightStemFilterFactory.java
index b4f54e3..5f6be56 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/no/NorwegianLightStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/no/NorwegianLightStemFilterFactory.java
@@ -36,12 +36,8 @@ import static org.apache.lucene.analysis.no.NorwegianLightStemmer.NYNORSK;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class NorwegianLightStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "norwegianLightStem";
   
   private final int flags;
   
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/no/NorwegianMinimalStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/no/NorwegianMinimalStemFilterFactory.java
index d07ad47..03d5090 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/no/NorwegianMinimalStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/no/NorwegianMinimalStemFilterFactory.java
@@ -36,12 +36,8 @@ import static org.apache.lucene.analysis.no.NorwegianLightStemmer.NYNORSK;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class NorwegianMinimalStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "norwegianMinimalStem";
   
   private final int flags;
   
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/path/PathHierarchyTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/path/PathHierarchyTokenizerFactory.java
index cbe3092..aebd6bd 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/path/PathHierarchyTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/path/PathHierarchyTokenizerFactory.java
@@ -68,13 +68,8 @@ import org.apache.lucene.util.AttributeFactory;
  * </pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class PathHierarchyTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "pathHierarchy";
-
   private final char delimiter;
   private final char replacement;
   private final boolean reverse;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternCaptureGroupFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternCaptureGroupFilterFactory.java
index 20ce2f6..d0df49b 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternCaptureGroupFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternCaptureGroupFilterFactory.java
@@ -35,13 +35,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *
  * @see PatternCaptureGroupTokenFilter
  * @since 4.4.0
- * @lucene.spi {@value #NAME}
  */
 public class PatternCaptureGroupFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "patternCaptureGroup";
-
   private Pattern pattern;
   private boolean preserveOriginal = true;
   
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternReplaceCharFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternReplaceCharFilterFactory.java
index 99b5ae8..6b71c76 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternReplaceCharFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternReplaceCharFilterFactory.java
@@ -35,13 +35,8 @@ import org.apache.lucene.analysis.util.CharFilterFactory;
  * &lt;/fieldType&gt;</pre>
  * 
  * @since Solr 3.1
- * @lucene.spi {@value #NAME}
  */
 public class PatternReplaceCharFilterFactory extends CharFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "patternReplace";
-
   private final Pattern pattern;
   private final String replacement;
 
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternReplaceFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternReplaceFilterFactory.java
index 03d6642..8c4572c 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternReplaceFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternReplaceFilterFactory.java
@@ -38,13 +38,8 @@ import java.util.regex.Pattern;
  * @see PatternReplaceFilter
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class PatternReplaceFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "patternReplace";
-
   final Pattern pattern;
   final String replacement;
   final boolean replaceAll;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternTokenizerFactory.java
index 2a79482..b919dae 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/PatternTokenizerFactory.java
@@ -57,13 +57,8 @@ import org.apache.lucene.util.AttributeFactory;
  * 
  * @see PatternTokenizer
  * @since solr1.2
- * @lucene.spi {@value #NAME}
  */
 public class PatternTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "pattern";
-
   public static final String PATTERN = "pattern";
   public static final String GROUP = "group";
  
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/SimplePatternSplitTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/SimplePatternSplitTokenizerFactory.java
index 5518ed8..200a975 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/SimplePatternSplitTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/SimplePatternSplitTokenizerFactory.java
@@ -55,13 +55,8 @@ import org.apache.lucene.util.automaton.RegExp;
  * @see SimplePatternSplitTokenizer
  *
  * @since 6.5.0
- * @lucene.spi {@value #NAME}
  */
 public class SimplePatternSplitTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "simplePatternSplit";
-
   public static final String PATTERN = "pattern";
   private final Automaton dfa;
   private final int maxDeterminizedStates;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/SimplePatternTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/SimplePatternTokenizerFactory.java
index b605115..5c73ad8 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/SimplePatternTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pattern/SimplePatternTokenizerFactory.java
@@ -55,13 +55,8 @@ import org.apache.lucene.util.automaton.RegExp;
  * @see SimplePatternTokenizer
  *
  * @since 6.5.0
- * @lucene.spi {@value #NAME}
  */
 public class SimplePatternTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "simplePattern";
-
   public static final String PATTERN = "pattern";
   private final Automaton dfa;
   private final int maxDeterminizedStates;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/DelimitedPayloadTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/DelimitedPayloadTokenFilterFactory.java
index f55293c..f0bcd02 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/DelimitedPayloadTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/DelimitedPayloadTokenFilterFactory.java
@@ -35,13 +35,8 @@ import java.util.Map;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class DelimitedPayloadTokenFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "delimitedPayload";
-
   public static final String ENCODER_ATTR = "encoder";
   public static final String DELIMITER_ATTR = "delimiter";
 
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/NumericPayloadTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/NumericPayloadTokenFilterFactory.java
index be2ad6c..0d3a23f 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/NumericPayloadTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/NumericPayloadTokenFilterFactory.java
@@ -32,13 +32,8 @@ import java.util.Map;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class NumericPayloadTokenFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "numericPayload";
-
   private final float payload;
   private final String typeMatch;
   
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/TokenOffsetPayloadTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/TokenOffsetPayloadTokenFilterFactory.java
index 5518eff..1836f96 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/TokenOffsetPayloadTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/TokenOffsetPayloadTokenFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class TokenOffsetPayloadTokenFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "tokenOffsetPayload";
   
   /** Creates a new TokenOffsetPayloadTokenFilterFactory */
   public TokenOffsetPayloadTokenFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/TypeAsPayloadTokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/TypeAsPayloadTokenFilterFactory.java
index 016176d..5209758 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/TypeAsPayloadTokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/payloads/TypeAsPayloadTokenFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class TypeAsPayloadTokenFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "typeAsPayload";
   
   /** Creates a new TypeAsPayloadTokenFilterFactory */
   public TypeAsPayloadTokenFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseLightStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseLightStemFilterFactory.java
index 8bfca4c..1060179 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseLightStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseLightStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class PortugueseLightStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "portugueseLightStem";
   
   /** Creates a new PortugueseLightStemFilterFactory */
   public PortugueseLightStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseMinimalStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseMinimalStemFilterFactory.java
index cab3174..15b4fd0 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseMinimalStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseMinimalStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class PortugueseMinimalStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "portugueseMinimalStem";
   
   /** Creates a new PortugueseMinimalStemFilterFactory */
   public PortugueseMinimalStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseStemFilterFactory.java
index cbdf1dd..c9e082f 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class PortugueseStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "portugueseStem";
   
   /** Creates a new PortugueseStemFilterFactory */
   public PortugueseStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/reverse/ReverseStringFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/reverse/ReverseStringFilterFactory.java
index c51018d..f186b95 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/reverse/ReverseStringFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/reverse/ReverseStringFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since solr 1.4
- * @lucene.spi {@value #NAME}
  */
 public class ReverseStringFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "reverseString";
   
   /** Creates a new ReverseStringFilterFactory */
   public ReverseStringFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ru/RussianLightStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ru/RussianLightStemFilterFactory.java
index 673db07..64769a3 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/ru/RussianLightStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/ru/RussianLightStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class RussianLightStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "russianLightStem";
   
   /** Creates a new RussianLightStemFilterFactory */
   public RussianLightStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/shingle/FixedShingleFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/shingle/FixedShingleFilterFactory.java
index 83ae485..0176d1c 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/shingle/FixedShingleFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/shingle/FixedShingleFilterFactory.java
@@ -33,13 +33,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * </ul>
  *
  * @since 7.4.0
- * @lucene.spi {@value #NAME}
  */
 public class FixedShingleFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "fixedShingle";
-
   private final int shingleSize;
   private final String tokenSeparator;
   private final String fillerToken;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/shingle/ShingleFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/shingle/ShingleFilterFactory.java
index 612a5d9..3c86e9b 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/shingle/ShingleFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/shingle/ShingleFilterFactory.java
@@ -34,13 +34,8 @@ import java.util.Map;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class ShingleFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "shingle";
-
   private final int minShingleSize;
   private final int maxShingleSize;
   private final boolean outputUnigrams;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/snowball/SnowballPorterFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/snowball/SnowballPorterFilterFactory.java
index 864eca9..ee3876d 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/snowball/SnowballPorterFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/snowball/SnowballPorterFilterFactory.java
@@ -43,13 +43,8 @@ import org.tartarus.snowball.SnowballProgram;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class SnowballPorterFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "snowballPorter";
-
   public static final String PROTECTED_TOKENS = "protected";
 
   private final String language;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/sr/SerbianNormalizationFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/sr/SerbianNormalizationFilterFactory.java
index e2f87ca..c47d471 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/sr/SerbianNormalizationFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/sr/SerbianNormalizationFilterFactory.java
@@ -35,13 +35,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre> 
  * @since 5.0.0
- * @lucene.spi {@value #NAME}
  */
 public class SerbianNormalizationFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "serbianNormalization";
-
   final String haircut;
 
   /** Creates a new SerbianNormalizationFilterFactory */
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicFilterFactory.java
index 2eff55c..a81dcd6 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class ClassicFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "classic";
   
   /** Creates a new ClassicFilterFactory */
   public ClassicFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerFactory.java
index 83ac4d5..04c1fd6 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/ClassicTokenizerFactory.java
@@ -32,13 +32,8 @@ import java.util.Map;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class ClassicTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "classic";
-
   private final int maxTokenLength;
 
   /** Creates a new ClassicTokenizerFactory */
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerFactory.java
index 2866bae..74467a2 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/StandardTokenizerFactory.java
@@ -32,13 +32,8 @@ import java.util.Map;
  * &lt;/fieldType&gt;</pre> 
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class StandardTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "standard";
-
   private final int maxTokenLength;
   
   /** Creates a new StandardTokenizerFactory */
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerFactory.java
index 250fd14..526f5f6 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerFactory.java
@@ -32,13 +32,8 @@ import java.util.Map;
  * &lt;/fieldType&gt;</pre> 
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class UAX29URLEmailTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "uaX29UrlEmail";
-
   private final int maxTokenLength;
 
   /** Creates a new UAX29URLEmailTokenizerFactory */
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/sv/SwedishLightStemFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/sv/SwedishLightStemFilterFactory.java
index dd9bb9a..c7eb119 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/sv/SwedishLightStemFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/sv/SwedishLightStemFilterFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class SwedishLightStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "swedishLightStem";
   
   /** Creates a new SwedishLightStemFilterFactory */
   public SwedishLightStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilterFactory.java
index c9e575a..b0addcf 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilterFactory.java
@@ -78,14 +78,9 @@ import org.apache.lucene.analysis.util.TokenizerFactory;
  * use {@link FlattenGraphFilterFactory} at index time (not at search time) as well.
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 @Deprecated
 public class SynonymFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "synonym";
-
   private final boolean ignoreCase;
   private final String tokenizerFactory;
   private final String synonyms;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymGraphFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymGraphFilterFactory.java
index f94f687..4fe68bc 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymGraphFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymGraphFilterFactory.java
@@ -74,13 +74,8 @@ import org.apache.lucene.analysis.util.TokenizerFactory;
  *
  * @lucene.experimental
  * @since 6.4.0
- * @lucene.spi {@value #NAME}
  */
 public class SynonymGraphFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "synonymGraph";
-
   private final boolean ignoreCase;
   private final String tokenizerFactory;
   private final String synonyms;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiTokenizerFactory.java
index f798d15..04c91e7 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiTokenizerFactory.java
@@ -33,12 +33,8 @@ import org.apache.lucene.util.AttributeFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 4.10.0
- * @lucene.spi {@value #NAME}
  */
 public class ThaiTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "thai";
   
   /** Creates a new ThaiTokenizerFactory */
   public ThaiTokenizerFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/ApostropheFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/ApostropheFilterFactory.java
index 6543978..47161ae 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/ApostropheFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/ApostropheFilterFactory.java
@@ -33,13 +33,9 @@ import java.util.Map;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 4.8.0
- * @lucene.spi {@value #NAME}
  */
 public class ApostropheFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "apostrophe";
-
   public ApostropheFilterFactory(Map<String, String> args) {
     super(args);
     if (!args.isEmpty()) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/TurkishLowerCaseFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/TurkishLowerCaseFilterFactory.java
index d5152b6..be43d34 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/TurkishLowerCaseFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/TurkishLowerCaseFilterFactory.java
@@ -32,12 +32,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class TurkishLowerCaseFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "turkishLowerCase";
   
   /** Creates a new TurkishLowerCaseFilterFactory */
   public TurkishLowerCaseFilterFactory(Map<String,String> args) {
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AbstractAnalysisFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AbstractAnalysisFactory.java
index 4253018..954f300 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AbstractAnalysisFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AbstractAnalysisFactory.java
@@ -21,8 +21,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CodingErrorAction;
 import java.nio.charset.StandardCharsets;
@@ -34,7 +32,6 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -339,23 +336,4 @@ public abstract class AbstractAnalysisFactory {
   public void setExplicitLuceneMatchVersion(boolean isExplicitLuceneMatchVersion) {
     this.isExplicitLuceneMatchVersion = isExplicitLuceneMatchVersion;
   }
-
-  /**
-   * Looks up SPI name (static "NAME" field) with appropriate modifiers.
-   * Also it must be a String class and declared in the concrete class.
-   * @return the SPI name
-   * @throws NoSuchFieldException - if the "NAME" field is not defined.
-   * @throws IllegalAccessException - if the "NAME" field is inaccessible.
-   * @throws IllegalStateException - if the "NAME" field does not have appropriate modifiers or isn't a String field.
-   */
-  static String lookupSPIName(Class<? extends AbstractAnalysisFactory> service) throws NoSuchFieldException, IllegalAccessException, IllegalStateException {
-    final Field field = service.getField("NAME");
-    int modifier = field.getModifiers();
-    if (Modifier.isStatic(modifier) && Modifier.isFinal(modifier) &&
-        field.getType().equals(String.class) &&
-        Objects.equals(field.getDeclaringClass(), service)) {
-      return ((String) field.get(null));
-      }
-    throw new IllegalStateException("No SPI name defined.");
-  }
 }
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AnalysisSPILoader.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AnalysisSPILoader.java
index 39c2c5a..13f5028 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AnalysisSPILoader.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/AnalysisSPILoader.java
@@ -18,15 +18,14 @@ package org.apache.lucene.analysis.util;
 
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
 import java.util.Collections;
-import java.util.LinkedHashSet;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 import java.util.LinkedHashMap;
 import java.util.Set;
 import java.util.ServiceConfigurationError;
-import java.util.regex.Pattern;
 
 import org.apache.lucene.util.SPIClassIterator;
 
@@ -37,17 +36,24 @@ import org.apache.lucene.util.SPIClassIterator;
 public final class AnalysisSPILoader<S extends AbstractAnalysisFactory> {
 
   private volatile Map<String,Class<? extends S>> services = Collections.emptyMap();
-  private volatile Set<String> originalNames = Collections.emptySet();
   private final Class<S> clazz;
-
-  private static final Pattern SERVICE_NAME_PATTERN = Pattern.compile("^[a-zA-Z][a-zA-Z0-9_]+$");
-
+  private final String[] suffixes;
+  
   public AnalysisSPILoader(Class<S> clazz) {
-    this(clazz, null);
+    this(clazz, new String[] { clazz.getSimpleName() });
+  }
+
+  public AnalysisSPILoader(Class<S> clazz, ClassLoader loader) {
+    this(clazz, new String[] { clazz.getSimpleName() }, loader);
   }
 
-  public AnalysisSPILoader(Class<S> clazz, ClassLoader classloader) {
+  public AnalysisSPILoader(Class<S> clazz, String[] suffixes) {
+    this(clazz, suffixes, null);
+  }
+  
+  public AnalysisSPILoader(Class<S> clazz, String[] suffixes, ClassLoader classloader) {
     this.clazz = clazz;
+    this.suffixes = suffixes;
     // if clazz' classloader is not a parent of the given one, we scan clazz's classloader, too:
     final ClassLoader clazzClassloader = clazz.getClassLoader();
     if (classloader == null) {
@@ -58,7 +64,7 @@ public final class AnalysisSPILoader<S extends AbstractAnalysisFactory> {
     }
     reload(classloader);
   }
-
+  
   /** 
    * Reloads the internal SPI list from the given {@link ClassLoader}.
    * Changes to the service list are visible after the method ends, all
@@ -72,27 +78,22 @@ public final class AnalysisSPILoader<S extends AbstractAnalysisFactory> {
    */
   public synchronized void reload(ClassLoader classloader) {
     Objects.requireNonNull(classloader, "classloader");
-    final LinkedHashMap<String,Class<? extends S>> services = new LinkedHashMap<>(this.services);
-    final LinkedHashSet<String> originalNames = new LinkedHashSet<>(this.originalNames);
+    final LinkedHashMap<String,Class<? extends S>> services =
+      new LinkedHashMap<>(this.services);
     final SPIClassIterator<S> loader = SPIClassIterator.get(clazz, classloader);
     while (loader.hasNext()) {
       final Class<? extends S> service = loader.next();
+      final String clazzName = service.getSimpleName();
       String name = null;
-      String originalName = null;
-      Throwable cause = null;
-      try {
-        originalName = AbstractAnalysisFactory.lookupSPIName(service);
-        name = originalName.toLowerCase(Locale.ROOT);
-        if (!isValidName(originalName)) {
-          throw new ServiceConfigurationError("The name " + originalName + " for " + service.getName() +
-              " is invalid: Allowed characters are (English) alphabet, digits, and underscore. It should be started with an alphabet.");
+      for (String suffix : suffixes) {
+        if (clazzName.endsWith(suffix)) {
+          name = clazzName.substring(0, clazzName.length() - suffix.length()).toLowerCase(Locale.ROOT);
+          break;
         }
-      } catch (NoSuchFieldException | IllegalAccessException | IllegalStateException e) {
-        cause = e;
       }
       if (name == null) {
         throw new ServiceConfigurationError("The class name " + service.getName() +
-            " has no service name field: [public static final String NAME]", cause);
+          " has wrong suffix, allowed are: " + Arrays.toString(suffixes));
       }
       // only add the first one for each name, later services will be ignored
       // this allows to place services before others in classpath to make 
@@ -104,26 +105,11 @@ public final class AnalysisSPILoader<S extends AbstractAnalysisFactory> {
       // When changing this be careful to allow reload()!
       if (!services.containsKey(name)) {
         services.put(name, service);
-        // preserve (case-sensitive) original name for reference
-        originalNames.add(originalName);
       }
     }
-
-    // make sure that the number of lookup keys is same to the number of original names.
-    // in fact this constraint should be met in existence checks of the lookup map key,
-    // so this is more like an assertion rather than a status check.
-    if (services.keySet().size() != originalNames.size()) {
-      throw new ServiceConfigurationError("Service lookup key set is inconsistent with original name set!");
-    }
-
     this.services = Collections.unmodifiableMap(services);
-    this.originalNames = Collections.unmodifiableSet(originalNames);
   }
-
-  private boolean isValidName(String name) {
-    return SERVICE_NAME_PATTERN.matcher(name).matches();
-  }
-
+  
   public S newInstance(String name, Map<String,String> args) {
     final Class<? extends S> service = lookupClass(name);
     return newFactoryClassInstance(service, args);
@@ -141,7 +127,7 @@ public final class AnalysisSPILoader<S extends AbstractAnalysisFactory> {
   }
 
   public Set<String> availableServices() {
-    return originalNames;
+    return services.keySet();
   }  
   
   /** Creates a new instance of the given {@link AbstractAnalysisFactory} by invoking the constructor, passing the given argument map. */
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/CharFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/CharFilterFactory.java
index 722025c..7a5eccb 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/CharFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/CharFilterFactory.java
@@ -49,15 +49,6 @@ public abstract class CharFilterFactory extends AbstractAnalysisFactory {
     return loader.availableServices();
   }
 
-  /** looks up a SPI name for the specified char filter factory */
-  public static String findSPIName(Class<? extends CharFilterFactory> serviceClass) {
-    try {
-      return lookupSPIName(serviceClass);
-    } catch (NoSuchFieldException | IllegalAccessException | IllegalStateException e) {
-      throw new IllegalStateException(e);
-    }
-  }
-
   /** 
    * Reloads the factory list from the given {@link ClassLoader}.
    * Changes to the factories are visible after the method ends, all
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/ElisionFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/ElisionFilterFactory.java
index ee4e9ee..3e67c3c 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/ElisionFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/ElisionFilterFactory.java
@@ -37,13 +37,8 @@ import org.apache.lucene.analysis.fr.FrenchAnalyzer;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class ElisionFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "elision";
-
   private final String articlesFile;
   private final boolean ignoreCase;
   private CharArraySet articles;
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/TokenFilterFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/TokenFilterFactory.java
index 1d7d5c7..f18b4de 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/TokenFilterFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/TokenFilterFactory.java
@@ -31,8 +31,9 @@ import org.apache.lucene.analysis.TokenStream;
 public abstract class TokenFilterFactory extends AbstractAnalysisFactory {
 
   private static final AnalysisSPILoader<TokenFilterFactory> loader =
-      new AnalysisSPILoader<>(TokenFilterFactory.class);
-
+      new AnalysisSPILoader<>(TokenFilterFactory.class,
+          new String[] { "TokenFilterFactory", "FilterFactory" });
+  
   /** looks up a tokenfilter by name from context classpath */
   public static TokenFilterFactory forName(String name, Map<String,String> args) {
     return loader.newInstance(name, args);
@@ -47,16 +48,7 @@ public abstract class TokenFilterFactory extends AbstractAnalysisFactory {
   public static Set<String> availableTokenFilters() {
     return loader.availableServices();
   }
-
-  /** looks up a SPI name for the specified token filter factory */
-  public static String findSPIName(Class<? extends TokenFilterFactory> serviceClass) {
-    try {
-      return lookupSPIName(serviceClass);
-    } catch (NoSuchFieldException | IllegalAccessException | IllegalStateException e) {
-      throw new IllegalStateException(e);
-    }
-  }
-
+  
   /** 
    * Reloads the factory list from the given {@link ClassLoader}.
    * Changes to the factories are visible after the method ends, all
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/TokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/TokenizerFactory.java
index 2cd3a15..8b3e1f9 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/TokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/util/TokenizerFactory.java
@@ -49,16 +49,7 @@ public abstract class TokenizerFactory extends AbstractAnalysisFactory {
   public static Set<String> availableTokenizers() {
     return loader.availableServices();
   }
-
-  /** looks up a SPI name for the specified tokenizer factory */
-  public static String findSPIName(Class<? extends TokenizerFactory> serviceClass) {
-    try {
-      return lookupSPIName(serviceClass);
-    } catch (NoSuchFieldException | IllegalAccessException | IllegalStateException e) {
-      throw new IllegalStateException(e);
-    }
-  }
-
+  
   /** 
    * Reloads the factory list from the given {@link ClassLoader}.
    * Changes to the factories are visible after the method ends, all
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerFactory.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerFactory.java
index b2cedb6..e9833af 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerFactory.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/wikipedia/WikipediaTokenizerFactory.java
@@ -33,13 +33,8 @@ import org.apache.lucene.util.AttributeFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class WikipediaTokenizerFactory extends TokenizerFactory {
-
-  /** SPI name */
-  public static final String NAME = "wikipedia";
-
   public static final String TOKEN_OUTPUT = "tokenOutput";
   public static final String UNTOKENIZED_TYPES = "untokenizedTypes";
 
diff --git a/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestAbstractAnalysisFactory.java b/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestAbstractAnalysisFactory.java
deleted file mode 100644
index b8d028e..0000000
--- a/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestAbstractAnalysisFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.lucene.analysis.util;
-
-import org.apache.lucene.analysis.charfilter.HTMLStripCharFilterFactory;
-import org.apache.lucene.analysis.core.LowerCaseFilterFactory;
-import org.apache.lucene.analysis.core.WhitespaceTokenizerFactory;
-import org.apache.lucene.util.LuceneTestCase;
-
-public class TestAbstractAnalysisFactory extends LuceneTestCase {
-
-  public void testLookupTokenizerSPIName() throws NoSuchFieldException, IllegalAccessException {
-    assertEquals("whitespace", AbstractAnalysisFactory.lookupSPIName(WhitespaceTokenizerFactory.class));
-    assertEquals("whitespace", TokenizerFactory.findSPIName(WhitespaceTokenizerFactory.class));
-  }
-
-  public void testLookupCharFilterSPIName() throws NoSuchFieldException, IllegalAccessException {
-    assertEquals("htmlStrip", AbstractAnalysisFactory.lookupSPIName(HTMLStripCharFilterFactory.class));
-    assertEquals("htmlStrip", CharFilterFactory.findSPIName(HTMLStripCharFilterFactory.class));
-  }
-
-  public void testLookupTokenFilterSPIName() throws NoSuchFieldException, IllegalAccessException{
-    assertEquals("lowercase", AbstractAnalysisFactory.lookupSPIName(LowerCaseFilterFactory.class));
-    assertEquals("lowercase", TokenFilterFactory.findSPIName(LowerCaseFilterFactory.class));
-  }
-}
diff --git a/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestAnalysisSPILoader.java b/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestAnalysisSPILoader.java
index 2398c1e..098b98b 100644
--- a/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestAnalysisSPILoader.java
+++ b/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestAnalysisSPILoader.java
@@ -30,7 +30,7 @@ import org.apache.lucene.util.Version;
 public class TestAnalysisSPILoader extends LuceneTestCase {
   
   private Map<String,String> versionArgOnly() {
-    return new HashMap<String, String>() {{
+    return new HashMap<String,String>() {{
       put("luceneMatchVersion", Version.LATEST.toString());
     }};
   }
@@ -113,7 +113,7 @@ public class TestAnalysisSPILoader extends LuceneTestCase {
   
   public void testAvailableTokenFilters() {
     assertTrue(TokenFilterFactory.availableTokenFilters().contains("lowercase"));
-    assertTrue(TokenFilterFactory.availableTokenFilters().contains("removeDuplicates"));
+    assertTrue(TokenFilterFactory.availableTokenFilters().contains("removeduplicates"));
   }
   
   public void testLookupCharFilter() {
@@ -149,6 +149,6 @@ public class TestAnalysisSPILoader extends LuceneTestCase {
   }
   
   public void testAvailableCharFilters() {
-    assertTrue(CharFilterFactory.availableCharFilters().contains("htmlStrip"));
+    assertTrue(CharFilterFactory.availableCharFilters().contains("htmlstrip"));
   }
 }
diff --git a/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUFoldingFilterFactory.java b/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUFoldingFilterFactory.java
index b6e7df2..8825c66 100644
--- a/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUFoldingFilterFactory.java
+++ b/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUFoldingFilterFactory.java
@@ -35,13 +35,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class ICUFoldingFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "icuFolding";
-
   private final Normalizer2 normalizer;
 
   /** Creates a new ICUFoldingFilterFactory */
diff --git a/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2CharFilterFactory.java b/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2CharFilterFactory.java
index 8a4db89..57a8ee1 100644
--- a/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2CharFilterFactory.java
+++ b/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2CharFilterFactory.java
@@ -43,13 +43,8 @@ import org.apache.lucene.analysis.util.CharFilterFactory;
  * @see FilteredNormalizer2
  *
  * @since 4.10.0
- * @lucene.spi {@value #NAME}
  */
 public class ICUNormalizer2CharFilterFactory extends CharFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "icuNormalizer2";
-
   private final Normalizer2 normalizer;
 
   /** Creates a new ICUNormalizer2CharFilterFactory */
diff --git a/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2FilterFactory.java b/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2FilterFactory.java
index d4e1ecd..93b9f40 100644
--- a/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2FilterFactory.java
+++ b/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUNormalizer2FilterFactory.java
@@ -42,13 +42,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * @see Normalizer2
  * @see FilteredNormalizer2
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class ICUNormalizer2FilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "icuNormalizer2";
-
   private final Normalizer2 normalizer;
 
   /** Creates a new ICUNormalizer2FilterFactory */
diff --git a/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilterFactory.java b/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilterFactory.java
index b2b24dd..b70d477 100644
--- a/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilterFactory.java
+++ b/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/ICUTransformFilterFactory.java
@@ -34,13 +34,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * </ul>
  * @see Transliterator
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
 public class ICUTransformFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "icuTransform";
-
   private final Transliterator transliterator;
   
   // TODO: add support for custom rules
diff --git a/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/segmentation/ICUTokenizerFactory.java b/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/segmentation/ICUTokenizerFactory.java
index b2e3446..b57117e 100644
--- a/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/segmentation/ICUTokenizerFactory.java
+++ b/lucene/analysis/icu/src/java/org/apache/lucene/analysis/icu/segmentation/ICUTokenizerFactory.java
@@ -74,13 +74,8 @@ import com.ibm.icu.text.RuleBasedBreakIterator;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class ICUTokenizerFactory extends TokenizerFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "icu";
-
   static final String RULEFILES = "rulefiles";
   private final Map<Integer,String> tailored;
   private ICUTokenizerConfig config;
diff --git a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseBaseFormFilterFactory.java b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseBaseFormFilterFactory.java
index 5d59b11..504953b 100644
--- a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseBaseFormFilterFactory.java
+++ b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseBaseFormFilterFactory.java
@@ -33,13 +33,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;
  * </pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class JapaneseBaseFormFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "japaneseBaseForm";
-
   /** Creates a new JapaneseBaseFormFilterFactory */
   public JapaneseBaseFormFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseIterationMarkCharFilterFactory.java b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseIterationMarkCharFilterFactory.java
index c865a73..568989a 100644
--- a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseIterationMarkCharFilterFactory.java
+++ b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseIterationMarkCharFilterFactory.java
@@ -33,13 +33,9 @@ import org.apache.lucene.analysis.util.CharFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 4.0.0
- * @lucene.spi {@value #NAME}
  */
 public class JapaneseIterationMarkCharFilterFactory extends CharFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "japaneseIterationMark";
-
   private static final String NORMALIZE_KANJI_PARAM = "normalizeKanji";
   private static final String NORMALIZE_KANA_PARAM = "normalizeKana";
 
diff --git a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseKatakanaStemFilterFactory.java b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseKatakanaStemFilterFactory.java
index 7ba5df9..d5b240b 100644
--- a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseKatakanaStemFilterFactory.java
+++ b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseKatakanaStemFilterFactory.java
@@ -34,13 +34,8 @@ import java.util.Map;
  * &lt;/fieldType&gt;
  * </pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class JapaneseKatakanaStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "japaneseKatakanaStem";
-
   private static final String MINIMUM_LENGTH_PARAM = "minimumLength";
   private final int minimumLength;
   
diff --git a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseNumberFilterFactory.java b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseNumberFilterFactory.java
index 2584266..471f6cb 100644
--- a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseNumberFilterFactory.java
+++ b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseNumberFilterFactory.java
@@ -37,13 +37,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * It is important that punctuation is not discarded by the tokenizer so use
  * {@code discardPunctuation="false"} in your {@link JapaneseTokenizerFactory}.
  * @since 6.0.0
- * @lucene.spi {@value #NAME}
  */
 public class JapaneseNumberFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "japaneseNumber";
-
   public JapaneseNumberFilterFactory(Map<String, String> args) {
     super(args);
     if (!args.isEmpty()) {
diff --git a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapanesePartOfSpeechStopFilterFactory.java b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapanesePartOfSpeechStopFilterFactory.java
index 6ca368f..059457f 100644
--- a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapanesePartOfSpeechStopFilterFactory.java
+++ b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapanesePartOfSpeechStopFilterFactory.java
@@ -40,12 +40,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;
  * </pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class JapanesePartOfSpeechStopFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  public static final String NAME = "japanesePartOfSpeechStop";
-
   private final String stopTagFiles;
   private Set<String> stopTags;
 
diff --git a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseReadingFormFilterFactory.java b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseReadingFormFilterFactory.java
index f23aac7..082eae8 100644
--- a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseReadingFormFilterFactory.java
+++ b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseReadingFormFilterFactory.java
@@ -34,13 +34,8 @@ import java.util.Map;
  * &lt;/fieldType&gt;
  * </pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class JapaneseReadingFormFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "japaneseReadingForm";
-
   private static final String ROMAJI_PARAM = "useRomaji";
   private final boolean useRomaji;
   
diff --git a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseTokenizerFactory.java b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseTokenizerFactory.java
index 1eaecd7..a45b3c1 100644
--- a/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseTokenizerFactory.java
+++ b/lucene/analysis/kuromoji/src/java/org/apache/lucene/analysis/ja/JapaneseTokenizerFactory.java
@@ -78,13 +78,8 @@ import org.apache.lucene.analysis.util.ResourceLoaderAware;
  * modes, but it makes the most sense to use them with NORMAL mode.
  *
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class JapaneseTokenizerFactory extends TokenizerFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "japanese";
-
   private static final String MODE = "mode";
 
   private static final String USER_DICT_PATH = "userDictionary";
diff --git a/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilterFactory.java b/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilterFactory.java
index 8b2841c..4afc370 100644
--- a/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilterFactory.java
+++ b/lucene/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikFilterFactory.java
@@ -49,13 +49,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * 
  * @see <a href="http://morfologik.blogspot.com/">Morfologik web site</a>
  * @since 4.0.0
- * @lucene.spi {@value #NAME}
  */
 public class MorfologikFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "morfologik";
-
   /** Dictionary resource attribute (should have {@code ".dict"} suffix), loaded from {@link ResourceLoader}. */
   public static final String DICTIONARY_ATTRIBUTE = "dictionary";
 
diff --git a/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanNumberFilterFactory.java b/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanNumberFilterFactory.java
index 7cfe4a8..f114420 100644
--- a/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanNumberFilterFactory.java
+++ b/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanNumberFilterFactory.java
@@ -37,13 +37,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * It is important that punctuation is not discarded by the tokenizer so use
  * {@code discardPunctuation="false"} in your {@link KoreanTokenizerFactory}.
  * @since 8.2.0
- * @lucene.spi {@value #NAME}
  */
 public class KoreanNumberFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "koreanNumber";
-
   public KoreanNumberFilterFactory(Map<String, String> args) {
     super(args);
     if (!args.isEmpty()) {
diff --git a/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanPartOfSpeechStopFilterFactory.java b/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanPartOfSpeechStopFilterFactory.java
index c60848f..b79ecac 100644
--- a/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanPartOfSpeechStopFilterFactory.java
+++ b/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanPartOfSpeechStopFilterFactory.java
@@ -43,13 +43,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * @lucene.experimental
  *
  * @since 7.4.0
- * @lucene.spi {@value #NAME}
  */
 public class KoreanPartOfSpeechStopFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "koreanPartOfSpeechStop";
-
   private Set<POS.Tag> stopTags;
 
   /** Creates a new KoreanPartOfSpeechStopFilterFactory */
diff --git a/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanReadingFormFilterFactory.java b/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanReadingFormFilterFactory.java
index 1a08df1..2225a1d 100644
--- a/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanReadingFormFilterFactory.java
+++ b/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanReadingFormFilterFactory.java
@@ -34,13 +34,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * @lucene.experimental
  *
  * @since 7.4.0
- * @lucene.spi {@value #NAME}
  */
 public class KoreanReadingFormFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "koreanReadingForm";
-
   /** Creates a new KoreanReadingFilterFactory */
   public KoreanReadingFormFilterFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanTokenizerFactory.java b/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanTokenizerFactory.java
index f63922d..f722273 100644
--- a/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanTokenizerFactory.java
+++ b/lucene/analysis/nori/src/java/org/apache/lucene/analysis/ko/KoreanTokenizerFactory.java
@@ -62,13 +62,8 @@ import org.apache.lucene.analysis.ko.KoreanTokenizer.DecompoundMode;
  * @lucene.experimental
  *
  * @since 7.4.0
- * @lucene.spi {@value #NAME}
  */
 public class KoreanTokenizerFactory extends TokenizerFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "korean";
-
   private static final String USER_DICT_PATH = "userDictionary";
   private static final String USER_DICT_ENCODING = "userDictionaryEncoding";
   private static final String DECOMPOUND_MODE = "decompoundMode";
diff --git a/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPChunkerFilterFactory.java b/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPChunkerFilterFactory.java
index b723c7a..96eb672 100644
--- a/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPChunkerFilterFactory.java
+++ b/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPChunkerFilterFactory.java
@@ -39,13 +39,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 7.3.0
- * @lucene.spi {@value #NAME}
  */
 public class OpenNLPChunkerFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "openNlpChunker";
-
   public static final String CHUNKER_MODEL = "chunkerModel";
 
   private final String chunkerModelFile;
diff --git a/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPLemmatizerFilterFactory.java b/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPLemmatizerFilterFactory.java
index bb2aa0f..90a0e43 100644
--- a/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPLemmatizerFilterFactory.java
+++ b/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPLemmatizerFilterFactory.java
@@ -43,13 +43,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 7.3.0
- * @lucene.spi {@value #NAME}
  */
 public class OpenNLPLemmatizerFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "openNlpLemmatizer";
-
   public static final String DICTIONARY = "dictionary";
   public static final String LEMMATIZER_MODEL = "lemmatizerModel";
 
diff --git a/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPPOSFilterFactory.java b/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPPOSFilterFactory.java
index 873f005..952218f 100644
--- a/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPPOSFilterFactory.java
+++ b/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPPOSFilterFactory.java
@@ -37,13 +37,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 7.3.0
- * @lucene.spi {@value #NAME}
  */
 public class OpenNLPPOSFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "openNlppos";
-
   public static final String POS_TAGGER_MODEL = "posTaggerModel";
 
   private final String posTaggerModelFile;
diff --git a/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPTokenizerFactory.java b/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPTokenizerFactory.java
index 1e46083..a60f23f 100644
--- a/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPTokenizerFactory.java
+++ b/lucene/analysis/opennlp/src/java/org/apache/lucene/analysis/opennlp/OpenNLPTokenizerFactory.java
@@ -38,13 +38,8 @@ import org.apache.lucene.util.AttributeFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 7.3.0
- * @lucene.spi {@value #NAME}
  */
 public class OpenNLPTokenizerFactory extends TokenizerFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "openNlp";
-
   public static final String SENTENCE_MODEL = "sentenceModel";
   public static final String TOKENIZER_MODEL = "tokenizerModel";
 
diff --git a/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/BeiderMorseFilterFactory.java b/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/BeiderMorseFilterFactory.java
index 566f86c..d13e052 100644
--- a/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/BeiderMorseFilterFactory.java
+++ b/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/BeiderMorseFilterFactory.java
@@ -40,13 +40,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *   &lt;/analyzer&gt;
  * &lt;/fieldType&gt;</pre>
  * @since 3.6.0
- * @lucene.spi {@value #NAME}
  */
 public class BeiderMorseFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "beiderMorse";
-
   private final PhoneticEngine engine;
   private final LanguageSet languageSet;
   
diff --git a/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DaitchMokotoffSoundexFilterFactory.java b/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DaitchMokotoffSoundexFilterFactory.java
index 5931038..a304324 100644
--- a/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DaitchMokotoffSoundexFilterFactory.java
+++ b/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DaitchMokotoffSoundexFilterFactory.java
@@ -43,13 +43,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *
  * @lucene.experimental
  * @since 5.0.0
- * @lucene.spi {@value #NAME}
  */
 public class DaitchMokotoffSoundexFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "daitchMokotoffSoundex";
-
   /** parameter name: true if encoded tokens should be added as synonyms */
   public static final String INJECT = "inject"; // boolean
 
diff --git a/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DoubleMetaphoneFilterFactory.java b/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DoubleMetaphoneFilterFactory.java
index c261743..112944a 100644
--- a/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DoubleMetaphoneFilterFactory.java
+++ b/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/DoubleMetaphoneFilterFactory.java
@@ -33,14 +33,9 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class DoubleMetaphoneFilterFactory extends TokenFilterFactory
 {
-
-  /** SPI name */
-  public static final String NAME = "doubleMetaphone";
-
   /** parameter name: true if encoded tokens should be added as synonyms */
   public static final String INJECT = "inject"; 
   /** parameter name: restricts the length of the phonetic code */
diff --git a/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/PhoneticFilterFactory.java b/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/PhoneticFilterFactory.java
index 53322e3..d5d3b0e 100644
--- a/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/PhoneticFilterFactory.java
+++ b/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/PhoneticFilterFactory.java
@@ -64,13 +64,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * @see PhoneticFilter
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class PhoneticFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "phonetic";
-
   /** parameter name: either a short name or a full class name */
   public static final String ENCODER = "encoder";
   /** parameter name: true if encoded tokens should be added as synonyms */
diff --git a/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/HMMChineseTokenizerFactory.java b/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/HMMChineseTokenizerFactory.java
index 545f27c..5d30459 100644
--- a/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/HMMChineseTokenizerFactory.java
+++ b/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/HMMChineseTokenizerFactory.java
@@ -32,13 +32,9 @@ import org.apache.lucene.util.AttributeFactory;
  * @lucene.experimental
  *
  * @since 4.10.0
- * @lucene.spi {@value #NAME}
  */
 public final class HMMChineseTokenizerFactory extends TokenizerFactory {
 
-  /** SPI name */
-  public static final String NAME = "hmmChinese";
-
   /** Creates a new HMMChineseTokenizerFactory */
   public HMMChineseTokenizerFactory(Map<String,String> args) {
     super(args);
diff --git a/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java b/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java
index c3d6f0c..3b6e286 100644
--- a/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java
+++ b/lucene/analysis/stempel/src/java/org/apache/lucene/analysis/stempel/StempelPolishStemFilterFactory.java
@@ -26,12 +26,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
 /**
  * Factory for {@link StempelFilter} using a Polish stemming table.
  * @since 3.1.0
- * @lucene.spi {@value #NAME}
  */
-public class StempelPolishStemFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "stempelPolishStem";
+public class StempelPolishStemFilterFactory extends TokenFilterFactory {  
   
   /** Creates a new StempelPolishStemFilterFactory */
   public StempelPolishStemFilterFactory(Map<String,String> args) {
diff --git a/lucene/common-build.xml b/lucene/common-build.xml
index 3ed0841..de149ab 100644
--- a/lucene/common-build.xml
+++ b/lucene/common-build.xml
@@ -2203,8 +2203,6 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
           description="WARNING: This API is experimental and might change in incompatible ways in the next release."/>
         <tag name="lucene.internal"
         description="NOTE: This API is for internal purposes only and might change in incompatible ways in the next release."/>
-        <tag name="lucene.spi"
-        description="SPI Name (Note: This is case-insensitive. e.g., if the name is 'htmlStrip', 'htmlstrip' can be used when looking up the service):" scope="types"/>
         <link offline="true" packagelistLoc="${javadoc.dir}"/>
         <link offline="true" href="${javadoc.link}" packagelistLoc="${javadoc.packagelist.dir}/java8"/>
         <bottom><![CDATA[
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/dialog/analysis/AnalysisChainDialogFactory.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/dialog/analysis/AnalysisChainDialogFactory.java
index 002fdca..31fce6d 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/dialog/analysis/AnalysisChainDialogFactory.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/dialog/analysis/AnalysisChainDialogFactory.java
@@ -37,9 +37,6 @@ import java.awt.Window;
 import java.io.IOException;
 
 import org.apache.lucene.analysis.custom.CustomAnalyzer;
-import org.apache.lucene.analysis.util.CharFilterFactory;
-import org.apache.lucene.analysis.util.TokenFilterFactory;
-import org.apache.lucene.analysis.util.TokenizerFactory;
 import org.apache.lucene.luke.app.desktop.Preferences;
 import org.apache.lucene.luke.app.desktop.PreferencesFactory;
 import org.apache.lucene.luke.app.desktop.util.DialogOpener;
@@ -112,7 +109,7 @@ public class AnalysisChainDialogFactory implements DialogOpener.DialogFactory {
     c.weighty = 0.5;
     panel.add(new JLabel(MessageUtils.getLocalizedMessage("analysis.dialog.chain.label.charfilters")), c);
 
-    String[] charFilters = analyzer.getCharFilterFactories().stream().map(f -> CharFilterFactory.findSPIName(f.getClass())).toArray(String[]::new);
+    String[] charFilters = analyzer.getCharFilterFactories().stream().map(f -> f.getClass().getName()).toArray(String[]::new);
     JList<String> charFilterList = new JList<>(charFilters);
     charFilterList.setVisibleRowCount(charFilters.length == 0 ? 1 : Math.min(charFilters.length, 5));
     c.gridx = 1;
@@ -127,7 +124,7 @@ public class AnalysisChainDialogFactory implements DialogOpener.DialogFactory {
     c.weighty = 0.1;
     panel.add(new JLabel(MessageUtils.getLocalizedMessage("analysis.dialog.chain.label.tokenizer")), c);
 
-    String tokenizer = TokenizerFactory.findSPIName(analyzer.getTokenizerFactory().getClass());
+    String tokenizer = analyzer.getTokenizerFactory().getClass().getName();
     JTextField tokenizerTF = new JTextField(tokenizer);
     tokenizerTF.setColumns(30);
     tokenizerTF.setEditable(false);
@@ -145,7 +142,7 @@ public class AnalysisChainDialogFactory implements DialogOpener.DialogFactory {
     c.weighty = 0.5;
     panel.add(new JLabel(MessageUtils.getLocalizedMessage("analysis.dialog.chain.label.tokenfilters")), c);
 
-    String[] tokenFilters = analyzer.getTokenFilterFactories().stream().map(f -> TokenFilterFactory.findSPIName(f.getClass())).toArray(String[]::new);
+    String[] tokenFilters = analyzer.getTokenFilterFactories().stream().map(f -> f.getClass().getName()).toArray(String[]::new);
     JList<String> tokenFilterList = new JList<>(tokenFilters);
     tokenFilterList.setVisibleRowCount(tokenFilters.length == 0 ? 1 : Math.min(tokenFilters.length, 5));
     tokenFilterList.setMinimumSize(new Dimension(300, 25));
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/models/analysis/AnalysisImpl.java b/lucene/luke/src/java/org/apache/lucene/luke/models/analysis/AnalysisImpl.java
index dd06470..be821a8 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/models/analysis/AnalysisImpl.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/models/analysis/AnalysisImpl.java
@@ -247,7 +247,7 @@ public final class AnalysisImpl implements Analysis {
           Reader readerForWriteOut = new StringReader(charFilteredSource);
           readerForWriteOut = charFilterFactory.create(readerForWriteOut);
           charFilteredSource = writeCharStream(readerForWriteOut);
-          charfilteredTexts.add(new CharfilteredText(CharFilterFactory.findSPIName(charFilterFactory.getClass()), charFilteredSource));
+          charfilteredTexts.add(new CharfilteredText(readerForWriteOut.getClass().getName(), charFilteredSource));
         }
         reader = cs;
       }
@@ -259,14 +259,13 @@ public final class AnalysisImpl implements Analysis {
       ((Tokenizer)tokenStream).setReader(reader);
       List<Token> tokens = new ArrayList<>();
       List<AttributeSource> attributeSources = analyzeTokenStream(tokenStream, tokens);
-      namedTokens.add(new NamedTokens(TokenizerFactory.findSPIName(tokenizerFactory.getClass()), tokens));
-
+      namedTokens.add(new NamedTokens(tokenStream.getClass().getName(), tokens));
       ListBasedTokenStream listBasedTokenStream = new ListBasedTokenStream(tokenStream, attributeSources);
       for (TokenFilterFactory tokenFilterFactory : tokenFilterFactories) {
         tokenStream = tokenFilterFactory.create(listBasedTokenStream);
         tokens = new ArrayList<>();
         attributeSources = analyzeTokenStream(tokenStream, tokens);
-        namedTokens.add(new NamedTokens(TokenFilterFactory.findSPIName(tokenFilterFactory.getClass()), tokens));
+        namedTokens.add(new NamedTokens(tokenStream.getClass().getName(), tokens));
         try {
           listBasedTokenStream.close();
         } catch (IOException e) {
diff --git a/lucene/luke/src/test/org/apache/lucene/luke/models/analysis/AnalysisImplTest.java b/lucene/luke/src/test/org/apache/lucene/luke/models/analysis/AnalysisImplTest.java
index c4bce93..b0a2c68 100644
--- a/lucene/luke/src/test/org/apache/lucene/luke/models/analysis/AnalysisImplTest.java
+++ b/lucene/luke/src/test/org/apache/lucene/luke/models/analysis/AnalysisImplTest.java
@@ -165,12 +165,12 @@ public class AnalysisImplTest extends LuceneTestCase {
     assertNotNull(result);
     assertNotNull(result.getCharfilteredTexts());
     assertEquals(1,result.getCharfilteredTexts().size());
-    assertEquals("htmlStrip", result.getCharfilteredTexts().get(0).getName());
+    assertEquals("org.apache.lucene.analysis.charfilter.HTMLStripCharFilter", result.getCharfilteredTexts().get(0).getName());
 
     assertNotNull(result.getNamedTokens());
     assertEquals(2, result.getNamedTokens().size());
     //FIXME check each namedTokensList
-    assertEquals("keyword", result.getNamedTokens().get(0).getName());
-    assertEquals("lowercase", result.getNamedTokens().get(1).getName());
+    assertEquals("org.apache.lucene.analysis.core.KeywordTokenizer", result.getNamedTokens().get(0).getName());
+    assertEquals("org.apache.lucene.analysis.core.LowerCaseFilter", result.getNamedTokens().get(1).getName());
   }
 }
diff --git a/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/SuggestStopFilterFactory.java b/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/SuggestStopFilterFactory.java
index 22e4c39..2ea52f6 100644
--- a/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/SuggestStopFilterFactory.java
+++ b/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/SuggestStopFilterFactory.java
@@ -71,13 +71,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  *  </li>
  * </ul>
  * @since 5.0.0
- * @lucene.spi {@value #NAME}
  */
-public class SuggestStopFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
-
-  /** SPI name */
-  public static final String NAME = "suggestStop";
-
+  public class SuggestStopFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
   /** the default format, one word per line, whole line comments start with "#" */
   public static final String FORMAT_WORDSET = "wordset";
   /** multiple words may be specified on each line, trailing comments start with "&#124;" */
diff --git a/lucene/tools/src/groovy/check-source-patterns.groovy b/lucene/tools/src/groovy/check-source-patterns.groovy
index 7794963..ccfcc49 100644
--- a/lucene/tools/src/groovy/check-source-patterns.groovy
+++ b/lucene/tools/src/groovy/check-source-patterns.groovy
@@ -75,7 +75,6 @@ def blockBoundaryPattern = ~$/----\s*/$;
 def blockTitlePattern = ~$/\..*/$;
 def unescapedSymbolPattern = ~$/(?<=[^\\]|^)([-=]>|<[-=])/$; // SOLR-10883
 def extendsLuceneTestCasePattern = ~$/public.*?class.*?extends.*?LuceneTestCase[^\n]*?\n/$;
-def validSPINameJavadocTag = ~$/(?s)\s*\*\s*@lucene\.spi\s+\{@value #NAME\}/$;
 
 def isLicense = { matcher, ratDocument ->
   licenseMatcher.reset();
@@ -178,16 +177,6 @@ ant.fileScanner{
         reportViolation(f, 'invalid logger name [log, uses static class name, not specialized logger]')
       }
     }
-    // make sure that SPI names of all tokenizers/charfilters/tokenfilters are documented
-    if (!f.name.contains("Test") && !f.name.contains("Mock") && !text.contains("abstract class") &&
-        !f.name.equals("TokenizerFactory.java") && !f.name.equals("CharFilterFactory.java") && !f.name.equals("TokenFilterFactory.java") &&
-        (f.name.contains("TokenizerFactory") && text.contains("extends TokenizerFactory") ||
-            f.name.contains("CharFilterFactory") && text.contains("extends CharFilterFactory") ||
-            f.name.contains("FilterFactory") && text.contains("extends TokenFilterFactory"))) {
-      if (!validSPINameJavadocTag.matcher(text).find()) {
-        reportViolation(f, 'invalid spi name documentation')
-      }
-    }
     checkLicenseHeaderPrecedes(f, 'package', packagePattern, javaCommentPattern, text, ratDocument);
     if (f.name.contains("Test")) {
       checkMockitoAssume(f, text);
diff --git a/solr/core/src/java/org/apache/solr/analysis/LowerCaseTokenizerFactory.java b/solr/core/src/java/org/apache/solr/analysis/LowerCaseTokenizerFactory.java
index 4f14a7f..953d046 100644
--- a/solr/core/src/java/org/apache/solr/analysis/LowerCaseTokenizerFactory.java
+++ b/solr/core/src/java/org/apache/solr/analysis/LowerCaseTokenizerFactory.java
@@ -41,14 +41,10 @@ import static org.apache.lucene.analysis.standard.StandardTokenizer.MAX_TOKEN_LE
  * else {@link CharTokenizer}::DEFAULT_MAX_WORD_LEN</li>
  * </ul>
  * @deprecated Use {@link org.apache.lucene.analysis.core.LetterTokenizerFactory} and {@link LowerCaseFilterFactory}
- * @lucene.spi {@value #NAME}
  */
 @Deprecated
 public class LowerCaseTokenizerFactory extends TokenizerFactory {
 
-  /** SPI name */
-  public static final String NAME = "lowercase";
-
   private final int maxTokenLen;
 
   /**
diff --git a/solr/core/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java b/solr/core/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java
index a71cd0e..a1917b8 100644
--- a/solr/core/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java
+++ b/solr/core/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java
@@ -61,12 +61,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
  * &lt;/fieldType&gt;</pre>
  *
  * @since 3.1
- * @lucene.spi {@value #NAME}
  */
 public class ReversedWildcardFilterFactory extends TokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "reversedWildcard";
   
   private char markerChar = ReverseStringFilter.START_OF_HEADING_MARKER;
   private boolean withOriginal;
diff --git a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedStopFilterFactory.java b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedStopFilterFactory.java
index 29f3476..5b6fcb7 100644
--- a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedStopFilterFactory.java
+++ b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedStopFilterFactory.java
@@ -29,13 +29,9 @@ import org.apache.solr.rest.ManagedResource;
  * TokenFilterFactory that uses the ManagedWordSetResource implementation
  * for managing stop words using the REST API.
  * @since 4.8.0
- * @lucene.spi {@value #NAME}
  */
 public class ManagedStopFilterFactory extends BaseManagedTokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "managedStop";
-
   // this only gets changed once during core initialization and not every
   // time an update is made to the underlying managed word set.
   private CharArraySet stopWords = null;
diff --git a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java
index 8d77c53..259e4cd 100644
--- a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java
+++ b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java
@@ -55,13 +55,9 @@ import org.slf4j.LoggerFactory;
  * @deprecated Use {@link ManagedSynonymGraphFilterFactory} instead, but be sure to also
  * use {@link FlattenGraphFilterFactory} at index time (not at search time) as well.
  * @since 4.8.0
- * @lucene.spi {@value #NAME}
  */
 @Deprecated
 public class ManagedSynonymFilterFactory extends BaseManagedTokenFilterFactory {
-
-  /** SPI name */
-  public static final String NAME = "managedSynonym";
   
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
   
diff --git a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java
index 80d6a70..caef307 100644
--- a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java
+++ b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java
@@ -51,13 +51,9 @@ import org.slf4j.LoggerFactory;
  * TokenFilterFactory and ManagedResource implementation for 
  * doing CRUD on synonyms using the REST API.
  * @since 7.0.0
- * @lucene.spi {@value #NAME}
  */
 public class ManagedSynonymGraphFilterFactory extends BaseManagedTokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "managedSynonymGraph";
-
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   public static final String SYNONYM_MAPPINGS = "synonymMappings";
diff --git a/solr/core/src/test/org/apache/solr/handler/tagger/WordLengthTaggingFilterFactory.java b/solr/core/src/test/org/apache/solr/handler/tagger/WordLengthTaggingFilterFactory.java
index c0db6cf..dbfc538 100644
--- a/solr/core/src/test/org/apache/solr/handler/tagger/WordLengthTaggingFilterFactory.java
+++ b/solr/core/src/test/org/apache/solr/handler/tagger/WordLengthTaggingFilterFactory.java
@@ -30,14 +30,8 @@ import org.apache.lucene.analysis.util.TokenFilterFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * @lucene.spi {@value #NAME}
- */
 public class WordLengthTaggingFilterFactory extends TokenFilterFactory {
 
-  /** SPI name */
-  public static final String NAME = "wordLengthTagging";
-
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   public static final String MIN_LENGTH = "minLength";