Могу ли я использовать patternfilterfactory для удаления строки поля, которое я импортирую в Solr?

Для такой фразы, как «БЫСТРАЯ КОРИЧНЕВАЯ ЛИСА», я хочу удалить слово «THE» в начале, чтобы оно отображалось как «БЫСТРАЯ КОРИЧНЕВАЯ ЛИСА».

Я пробовал следующие настройки в schema.xml, и ни одна из них не сработала. В итоге происходит удаление слова «THE», даже если его нет в начале фразы.

т.е. "БЫСТРЫЙ И МЕРТВЫЙ" превращается в "БЫСТРЫЙ И МЕРТВЫЙ"

"solr.PatternReplaceFilterFactory" pattern="(the )" replace="" replace="all"/>

"solr.PatternReplaceFilterFactory" pattern="(\s)" replace="" replace="all"/>

"solr.PatternReplaceFilterFactory" pattern="(\s)" replace="" replace="all"/>

Я использую KeywordTokenizerFactory, потому что я делаю точное совпадение.

Цель состоит в том, чтобы отправить Solr следующую фразу для индексации:

"THE QUICK BROWN FOX", слово "THE" будет опущено только в начале фразы и трансформируется в solr в "QUICK BROWN FOX".

Любые идеи будут высоко оценены. Спасибо.


person user3286012    schedule 30.04.2015    source источник
comment
Пока вы это делаете, вы также можете исключить другие статьи, a и an.   -  person Andy Lester    schedule 30.04.2015
comment
Ага. Пользователи хотели, чтобы вместе с LA и EL   -  person user3286012    schedule 16.05.2015


Ответы (2)


Значение pattern является регулярным выражением, и, поскольку вы только хотите удалить ведущую букву «The», вы должны привязать его в начале, используя ^:

pattern="^the\s+"
person BlueM    schedule 30.04.2015
comment
Спасибо. Я пробовал это быстро и мертво в анализе solr, и теперь он отображается как быстрый и мертвый. - person user3286012; 30.04.2015

в дополнение к ответу BlueM

check that you have not used solr.StopFilterFactory and if you have used it
than remove "the" from stopwords.txt
person Keval    schedule 30.04.2015