Индексирование полей с помощью SOLR и LowerCaseFilterFactory - PullRequest
9 голосов
/ 28 июня 2010

У меня есть поле, определенное как

<fieldType name="text_ws_lc" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

, которое отлично работает для поиска без учета регистра в полях этого типа.Однако я хочу, чтобы исходное значение было вставлено в поле, а НЕ в нижнем регистре.Можно ли удалить LowerCaseFilterFactory из анализатора индекса и получить эту функциональность?ALA

<fieldType name="text_ws_lc_std" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

1 Ответ

8 голосов
/ 28 июня 2010

Вы должны определить два поля: одно со значением в нижнем регистре, используемое для поиска, и другое для хранения исходного значения. Вы можете использовать инструкцию копирования поля в вашем schema.xml для синхронизации этих двух полей.

...