使用新服务器上现有核心的 solr.StandardFilterFactory 升级 schema.xml 中的过滤器

Upgrade filter in schema.xml with solr.StandardFilterFactory from existing core on new server

我需要将 5.5.3 上的 solr 核心 运行 移动到新服务器,我在其中安装了 solr 8.1.1。不幸的是,现有的 schema.xml 使用了

的多个实例
solr.StandardFilterFactory

现在已经删除了,我不知道如何在没有这些的情况下重写架构。

当我尝试添加核心时,出现错误

ERROR: Error CREATEing SolrCore 'core-test': Unable to create core [core-test] Caused by: solr.StandardFilterFactory

改为显示。

我的实际代码是

<analyzer type="index">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.StandardFilterFactory"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_fr.txt"/>
            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" splitOnNumerics="0"/>
            <filter class="solr.ASCIIFoldingFilterFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.SnowballPorterFilterFactory" language="French" protected="protwords_fr.txt" />
            <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        </analyzer>

我查了手册,但他们只说它已被删除https://github.com/apache/lucene-solr/blob/master/lucene/CHANGES.txt

StandardFilter 自 3.1 以来没有做任何事情,因此您可以安全地删除它:

This filter is no longer operational in Solr when the luceneMatchVersion (in solrconfig.xml) is higher than "3.1".

它应该不会有任何影响,除非您明确使用了低于 3.2 的 luceneMatchVersion

您的词干分析器可能会执行标准过滤器已经执行的部分操作 - 即它会删除复数。

如果您仍然需要旧 StandardFilter 的某些功能,您可以放弃 StandardTokenizer 并改用经典版本:

<tokenizer class="solr.ClassicTokenizerFactory"/>
<filter class="solr.ClassicFilterFactory"/>