Обновите фильтр в schema.xml с помощью solr.StandardFilterFactory из существующего ядра на новом сервере - PullRequest
1 голос
/ 06 июля 2019

Мне нужно переместить ядро ​​solr, работающее на 5.5.3, на новый сервер, где я установил solr 8.1.1. К сожалению, exixsting 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

1 Ответ

2 голосов
/ 06 июля 2019

StandardFilter ничего не делал с 3.1, так что вы можете безопасно удалить его:

Этот фильтр больше не работает в Solr, когда luceneMatchVersionsolrconfig.xml) больше, чем "3.1".

Это не должно влиять ни на что, кроме случаев, когда вы явно использовали luceneMatchVersion ниже 3,2.

Ваш стеммер, вероятно, выполняет часть того, что уже сделал Стандартный фильтр - то есть он удаляет множественное число.

Если вам все еще требуются некоторые функциональные возможности от старого StandardFilter, вы можете удалить StandardTokenizer и использовать вместо него классические версии:

<tokenizer class="solr.ClassicTokenizerFactory"/>
<filter class="solr.ClassicFilterFactory"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...