2014-10-10 4 views
2

Я пытаюсь выделить слова в результатах поиска.
Я использую Umbraco и Lucene.Net
Я установил Lucene.Net Contrib с NuGet и его версия 3.0.3.0
Перед установкой была установлена ​​версия 2.9.4.1.
После установки Lucene.Net.Contrib.Highlighter также добавлен в «Ссылки» Но я не могу объявить его как использование Lucene.Net.Contrib.Highlighter или с помощью другого способа. Таким образом, в некоторых строках не работают, какLucene.Net Highlight Not Working

var highlighter = Highlighter(HighlightFormatter, FragmentScorer(searchQuery, highlightField, searcher)); 

private QueryScorer FragmentScorer(string searchQuery, string highlightField, IndexSearcher searcher) 
{ 
    Query query = 
     GetLuceneQueryObject(searchQuery, highlightField).Rewrite(searcher.GetIndexReader()); 
    return new QueryScorer(query); 
} 

HighlightFormatter = new SimpleHTMLFormatter("<em><strong>", "</strong></em> "); 

Для Highlighter, SimpleHTMLFormatter и QueryScorer,
я получаю 'не ..could найти (Вы не нашли, используя ..)' ошибка

Как я могу решить эту проблему?

+1

Я получил Lucene.Net выделения проекта Version 2.9.4.1 и скомпилирован. Lucene.Net.Contrib.Highlighter.dll создан, и я использовал его. Проблема решена, но я до сих пор не знаю, есть ли другой способ ее решения. – user1451549

+0

Мне также нужна подсветка Lucene.Net в этой версии. Не могли бы вы поделиться файлом DLL? :) –

ответ

2

В версии 2.9.4.1 из пакета Lucene.Net.Contrib NuGet три класса Highlighter, SimpleHTMLFormatter и QueryScorer объявлены в пространстве имен Lucene.Net.Highlight.

В версии 3.0.3 Lucene.Net.Contrib классы были перемещены в пространство имен Lucene.Net.Search.Highlight.

Вы должны включить using Lucene.Net.Search.Highlight. Также проверьте, что ссылки в проекте указывают на DLL, включенные в версию 3.0.3 пакета NuGet. Проверьте путь ссылки - это должно быть что-то вроде

<base>\packages\Lucene.Net.Contrib.3.0.3\lib\net40\Lucene.Net.Contrib.Highlighter.dll 

и не

<base>\packages\Lucene.Net.Contrib.2.9.4.1\lib\net40\Lucene.Net.Contrib.Highlighter.dll 
+1

Привет, Даниэль, какой путь я должен проверить для \ packages \ Lucene.Net.Contrib.3.0.3 \ lib \ net40 \ Lucene.Net.Contrib.Highlighter.dll Я не смог найти ссылку. – user1451549

+0

@ user1451549: Вы должны найти «Lucene.Net.Contrib.Highlighter» в разделе «Ссылки» в Visual Studio. Щелкните правой кнопкой мыши и проверьте значение «Путь». –