2013-12-03 4 views
0

Я пытаюсь сделать выделение по результатам поиска. Вот соответствующая часть моего кода.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. Я попытался заменить исходную Lucene.net dll Lucene.Net.Contrib, но на этот раз я не знаю, что я должен написать вместо TokenStream. Он не существует в Lucene.Net.Contrib. * Dlls.

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

Thanx

+0

Когда вы говорите, замените lucene.net на lucene.net.contrib ... Мне кажется, вам все еще нужна ссылка на обоих? – geedubb

+0

некоторые более ранние сообщения могут вам помочь: http://stackoverflow.com/questions/20331760/sitecore-7-highlight-search-results – remco

+0

@remco: Это также было опубликовано мной. Информация в этом сообщении привела меня к этому вопросу – EngelbertCoder

ответ

0

Проблема была что-то о развертывании, что новый совместимый Lucene.dll был заменен несовместимого DLL Sitecore7.

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

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

Смежные вопросы