Я делаю поиск работы по сайту, используя Lucene, и справился с такой проблемой.Мне нужно искать C #, .net, поэтому мне нужно использовать WhiteSpaceAnalyzer, но если я использую его, поиск будет чувствительным к регистру.
Как я могу сделать этот случай нечувствительным?Сейчас я вижу только одно решение - сделать собственный анализатор.Но я новичок в Lucene, не могли бы вы помочь мне с примером кода для этого.Я сделал что-то, что я думаю, должно работать, но это не так.Посмотрите
public sealed class NewWhitespaceAnalyzer : Analyzer
{
public override TokenStream TokenStream(System.String fieldName, System.IO.TextReader reader)
{
return new LowerCaseFilter(new WhitespaceTokenizer(reader));
}
public override TokenStream ReusableTokenStream(System.String fieldName, System.IO.TextReader reader)
{
Tokenizer tokenizer = (Tokenizer)GetPreviousTokenStream();
if (tokenizer == null)
{
tokenizer = new WhitespaceTokenizer(reader);
SetPreviousTokenStream(tokenizer);
}
else
tokenizer.Reset(reader);
return tokenizer;
}
}
Если вы увидите здесь ошибку, пожалуйста, исправьте меня.
Если у вас есть какие-либо другие предложения, мы будем рады.
Спасибо за любую помощь, Дима.