поле документа в solr / lucene, называемое COLORS, имеет группу слов, подобную этой:
поле1: синий / темно-красный / зеленый
поле 2: синий / желтый / оранжевый
[...]
Мне нужно выполнить граненый поиск, чтобы получить все цвета и количество каждого цвета.
Сначала я попробовал PatternTokenizerFactory, затем список стоп-слов:
<analyzer>
<tokenizer class="solr.PatternTokenizerFactory" pattern="/" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords"
enablePositionIncrements="true"
/>
</analyzer>
К сожалению, список стоп-слов кажется игнорируемым. Стоп-слова отображаются в результатах граненого поиска.
Этот ТАК вопрос описывает ту же проблему. К сожалению, опубликованное решение не работает для меня, потому что я не могу использовать solr.StandardTokenizerFactory, потому что стандартный токенизатор также разделяет токены на пробелах. Это означает, что «темно-красный» становится «темным» и «красным», что неправильно.
Есть ли способ использовать шаблонизатор токенов?
Спасибо за любую помощь!