Версия 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 *".
Я могу справиться с токенизацией из цепочки анализатора, имея синонимы на карте и вызывая замену синонимов только тогда, когда римские цифры появляются как токен, разделенный пробелами, но хотел посмотреть, может ли это быть сделано цепочкой безлюбой код на стороне сервера.