Поиск префикса Solr с римскими числами - проблема перепросмотра - PullRequest
1 голос
/ 27 апреля 2019

Версия Solr используется: 4.10. *

Постановка задачи:
У нас есть уникальная проблема, когда «6» вызывает «Недостаток» и т. Д.строки, то есть строки, соответствующие "vi *".Мы сохраняем все префиксы названий следующим образом:

input: Vice
v
vi (это соответствует синониму シ ッ ク ス, 6, six, vi, Ⅵ, 六)
vic
тиски

Цепочка анализатора:

<fieldType name="some_name" class="solr.TextField">
      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.DelimitedPayloadTokenFilterFactory" delimiter="$" encoder="float"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.DelimitedPayloadTokenFilterFactory" delimiter="$" encoder="float"/>
      </analyzer>
</fieldType>

Как получитьвокруг того факта, что «6» не должен напоминать ничего, что соответствует «vi *» в поле?Точно так же "5" вызывает все, что начинается с "v *".

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

...