Dspace Author Индексирование Нечувствительный Акцент - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь переиндексировать пространство dspace и сделать его нечувствительным к акцентам. Мне это нужно, потому что результат без нечувствительности, как:

  • Сантос, Хуан
  • Сазон, Альберта
  • Санчес, Пепе

И я бы хотел, чтобы результаты были такими:

  • Санчес, Пепе
  • Сантос, Хуан
  • Сазон, Альберта

Я настроил solr / search / conf / schema.xml как: Добавление фильтра

        <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <!-- in this example, we will only use synonyms at query time
    <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
    -->
    <!-- Case insensitive stop word removal.
      add enablePositionIncrements=true in both the index and query
      analyzers to leave a 'gap' for more accurate phrase queries.
    -->
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.ASCIIFoldingFilterFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.ICUFoldingFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.ASCIIFoldingFilterFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.ICUFoldingFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>
</fieldType>

После этого я устанавливаю tomcat, перезагружаю его и затем переиндексирую с помощью ./dspace index-discovery -b

но никаких изменений не дано, может кто-нибудь помочь с этим. Может быть, другой вид конфигурации или другие шаги перед переиндексацией?

Я использую: dspace 6

1 Ответ

0 голосов
/ 09 октября 2018

Solr.ASCIIFoldingFilterFactory действительно должен удалять диакритические знаки, чтобы результаты Solr сортировались на основе значений без диакритических знаков.

Я подозреваю, что вы в настоящее время не видите ожидаемого результата, потому что вы адаптировали fieldType с именем "text". Я полагаю, что fieldType, используемый значениями автора в Solr, является "keywordFilter".

Например:

<fieldType name="keywordFilter" class="solr.TextField" sortMissingLast="true" omitNorms="true">
    <analyzer>
        <!--Treats the entire field as a single token, regardless of its content-->
        <tokenizer class="solr.KeywordTokenizerFactory"/>

        <filter class="solr.ASCIIFoldingFilterFactory"/>
        <filter class="solr.TrimFilterFactory" />
    </analyzer>
</fieldType>
...