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

Lil*_*ila 4 solr upgrade filter

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

solr.StandardFilterFactory
Run Code Online (Sandbox Code Playgroud)

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

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

ERROR: Error CREATEing SolrCore 'core-test': Unable to create core [core-test] Caused by: solr.StandardFilterFactory
Run Code Online (Sandbox Code Playgroud)

而是显示。

我的实际代码是

<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>
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*ndh 6

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

luceneMatchVersion(in solrconfig.xml) 高于“3.1”时,此过滤器在 Solr 中不再可用。

它不会影响任何事情,除非您明确使用了luceneMatchVersion低于 3.2 的版本。

您的词干分析器可能已经完成了标准过滤器已经完成的部分工作 - 即它删除了复数。

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

<tokenizer class="solr.ClassicTokenizerFactory"/>
<filter class="solr.ClassicFilterFactory"/>
Run Code Online (Sandbox Code Playgroud)

  • 您可以通过在请求处理程序定义中设置“q.op”来解决这个问题 (2认同)