Как заставить Solr распознавать синонимы с любыми цифрами перед ними? например # Молярная как #M (и наоборот) - PullRequest
0 голосов
/ 02 ноября 2018

Мне нужно, чтобы Solr мог распознавать # Molar как #M (и наоборот) при поиске, а также # Normal как #N (и наоборот).

У меня есть много документов с 6-ти или 1-мольным или 0,5-мольным в названии, однако много раз они написаны как 6М или 1М или 0,5М. Я хочу, чтобы Solr мог распознавать # Molar как #M (и наоборот) при поиске, кроме того, он может содержать более 1 цифры (например, 12M) или как десятичную (например, 0,1M).

Не могу понять, как это сделать с помощью синонимов или чего-либо еще. Версия Solr - 6.2.1

1 Ответ

0 голосов
/ 02 ноября 2018

Я бы, вероятно, добавил для этого анализатор PatternReplaceCharFilter .

Что-то вроде:

<analyzer>
  <charFilter class="solr.PatternReplaceCharFilterFactory"
         pattern="(\d+(.\d+)?)M" replacement="$1 Molar"/>
  <tokenizer ...
</analyzer>

CharFilters предварительно обрабатывают входные данные до того, как произойдет токенизация, поэтому вам не нужно беспокоиться о шаблоне, охватывающем несколько терминов (как это было бы с фильтром токена PatternReplace) или нижнем регистре, если вы также имеете дело с моляльностью.

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