solr WordDelimiterGraphFilterFactory, удалить 0 из цифр - PullRequest
1 голос
/ 20 марта 2020

У меня есть это поле в моих документах:

<fieldType name="signature" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
          <filter class="solr.WordDelimiterGraphFilterFactory" preserveOriginal="1" catenateWords="1" catenateNumbers="1" catenateAll="1"/>
          <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>

        <analyzer type="query">
          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
          <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
</fieldType>

Я индексирую строки типа MUS.F.0594, и я могу искать и получать правильные результаты для запросов, таких как:

musf0594 
mus f 0594
mus.f.0594

Я также хотел бы искать запросы типа

musf594
mus f 594
mus.f.594

Мне нужно удалить начальный 0 перед другими цифрами. Как это сделать в анализаторе индекса solr?

1 Ответ

0 голосов
/ 20 марта 2020

Вы можете попробовать, добавив PatternReplaceFilterFactory.

<filter class="solr.PatternReplaceFilterFactory" pattern="^0+" replacement="" replace="all" />

Как только вы измените fieldType и перезагрузите коллекцию. Вы можете проанализировать fieldType на странице администрирования solr.

Вот снимки экрана со страницы анализа.

Первый снимок экрана

Solr analysis page

Второй скриншот

Solr analysis page result

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...