пользовательский анализатор, использующий ASCIIFoldingFilter, не заменяющий диакритические знаки - PullRequest
1 голос
/ 29 сентября 2010

У нас есть проблема с пользовательским анализатором Lucene.NET, который использует ASCIIFoldingFilter и LowerCaseFilter.

При индексации нашего контента фильтр нижнего регистра работает и делает все термины строчными, но ASCIIFoldingFilter оставляет диакритические знаки нетронутыми (ошибок нет, но такие символы, как őŏő не заменяются на o , они не тронуты и появляются в индексе вот так - я бы ожидал, что это сработает или не получится ничего не делать).

Соответствующий код выглядит так:

public TokenStream TokenStream(String fieldName, TextReader reader) {
  Tokenizer tokenizer = new StandardTokenizer(reader);
  TokenStream stream = new StandardFilter(tokenizer);
  stream = new ASCIIFoldingFilter(stream);
  return new LowerCaseFilter(stream);
}

Есть ли какие-то дополнительные шаги, которые необходимо выполнить, чтобы использовать ASCIIFoldingFilter?

Есть ли какой-нибудь рабочий пример Java, который я мог бы адаптировать к Lucene.NET?

Спасибо!

РЕДАКТИРОВАТЬ: Мне удалось это исправить. Это была ошибка неправильной конфигурации. Таможенный анализатор не использовался, другой использовался, который только делал низкий регистр. Пользовательский фильтр теперь работает правильно. Извините!

...