Solr сортировка для строкового литерала - PatternReplaceFilterFactory - PullRequest
0 голосов
/ 03 октября 2011

Каково регулярное выражение для следующих специальных символов в Solr.

, ~,!, @, Двойные кавычки, одинарные кавычки, скобки ,?и для каждого специального символа.

Мой код:

<fieldType name="Custom_sort" class="solr.TextField" sortMissingFirst="true" sortMissingLast="true" positionIncrementGap="100" autoGeneratePhraseQueries="true">
      <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.PatternReplaceFilterFactory" pattern="(#|!|[0-9]|'|~|^|&quot;|[)]|[(])" replacement=""  replace="all" />
      </analyzer>
    </fieldType>

, но это не работает.Как написать шаблон для этих специальных символов.

1 Ответ

4 голосов
/ 03 октября 2011

Вместо обработки отдельных специальных символов, используемых ниже, будут удалены все специальные символы, кроме алфавитов

<filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all" />

Почему анализатор применяется во время запроса, если вы будете использовать его в качестве поля сортировки и вам нужно будет применить анализ во время индекса?

<fieldType name="Custom_sort" class="solr.TextField" sortMissingFirst="true" sortMissingLast="true" positionIncrementGap="100" autoGeneratePhraseQueries="true">
  <analyzer type="index">
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory" />
    <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all" />
  </analyzer>
</fieldType>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...