Sitecore 7 Lucene.Net.Contrib выделяет результаты поиска

Я пытаюсь сделать выделение в результатах поиска. Вот соответствующая часть моего кода.

QueryScorer scorer = new QueryScorer(q);
Lucene.Net.Search.Highlight.IFormatter formatter = new SimpleHTMLFormatter("<b>", "</b>");
Lucene.Net.Search.Highlight.Highlighter highlighter = new Highlighter(formatter, scorer);
highlighter.TextFragmenter = new SimpleFragmenter(800);
Lucene.Net.Util.Version vers = new Lucene.Net.Util.Version();
vers = Lucene.Net.Util.Version.LUCENE_30;
TokenStream stream = new StandardAnalyzer(vers).TokenStream(string.Empty, new StringReader(text));

string s = string.Empty;
try
{
    s = highlighter.GetBestFragments(stream, text, 10, "...");
}

Здесь метод GetBestFragments генерирует исключение System.MissingMethodException. Я попытался заменить исходную dll Lucene.net на Lucene.Net.Contrib, но на этот раз я не знаю, что мне следует написать вместо TokenStream. Его нет в dll Lucene.Net.Contrib.*.

Я работаю над существующим кодом, и мне нужно выяснить, как я могу переписать класс TokenStream и метод GetBestFragments.

спасибо


person EngelbertCoder    schedule 03.12.2013    source источник
comment
Когда вы говорите заменить lucene.net на lucene.net.contrib... Я думаю, вам все еще нужна ссылка на оба?   -  person geedubb    schedule 03.12.2013
comment
некоторые более ранние сообщения могут вам помочь: stackoverflow.com/questions/ 20331760/   -  person remco    schedule 04.12.2013
comment
@remco: Это также было опубликовано мной. Информация в этом посте привела меня к этому моменту   -  person EngelbertCoder    schedule 04.12.2013
comment
@EngelbertCoder, у вас есть ссылка как на lucene.net, так и на lucene.net.contrib...   -  person geedubb    schedule 05.12.2013
comment
@geedubb У меня есть ссылка на обе dll, но lucene.net была старой несовместимой dll, которая поставляется с sitecore7. И проблема была в процессе развертывания, что каким-то образом новый lucene.net был заменен старым. Я исправил это. Теперь это работает!   -  person EngelbertCoder    schedule 05.12.2013


Ответы (1)


Проблема заключалась в том, что новая совместимая Lucene.dll была заменена несовместимой dll Sitecore7.

Итак, если есть ссылки и на lucene.net, и на lucene.net.contrib dll, это должно работать.

Не напрямую решение моего вопроса, но этот источник стоит упомянуть еще раз. (о версиях lucene.dll): http://laubplusco.net/sitecore-7-lucen-3-0-highlighted-results/

person EngelbertCoder    schedule 05.12.2013