2014-10-10 4 views
2

검색 결과에서 단어를 강조 표시하려고합니다.
나는 Umbraco와 Lucene.Net을 사용하고 있습니다.
Lucene.Net을 NuGet과 함께 설치했으며 버전은 3.0.3.0입니다.
설치하기 전에 2.9.4.1 버전이 설치되어 있어야합니다.
설치 후 Lucene.Net.Contrib.Highlighter도 'References'에 추가됩니다. 하지만 Lucene.Net.Contrib.Highlighter를 사용하거나 다른 방법으로 사용할 수 없습니다. 그래서 일부 라인에서 이Lucene.Net Highlight Not Working

형광펜, SimpleHTMLFormatter 및 QueryScorer를 들어
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> "); 

, 내가 할
으로 작동하지 않는 것은 오류 '찾을 수 없습니다 ..could (당신이 사용 .. 누락)'

방법 이 문제를 해결할 수 있습니까? 세 개의 클래스 Highlighter, SimpleHTMLFormatterQueryScorer 네임 스페이스 Lucene.Net.Highlight에 선언 된 NuGet 패키지 Lucene.Net.Contrib 버전 2.9.4.1에서

+1

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

처럼되지는해야한다. Lucene.Net.Contrib.Highlighter.dll이 생성되어 사용되었습니다. 문제는 해결되었지만 해결할 다른 방법이 있는지 아직 모르겠다. – user1451549

+0

또한이 버전에서는 Lucene.Net 하이라이트가 필요합니다. DLL 파일을 공유 할 수 있었습니까? :) –

답변

2

.

Lucene.Net.Contrib의 버전 3.0.3에서는 클래스가 Lucene.Net.Search.Highlight 네임 스페이스로 이동되었습니다.

using Lucene.Net.Search.Highlight을 포함해야합니다. 또한 프로젝트의 참조가 NuGet 패키지의 버전 3.0.3에 포함 된 dll을 가리키는 지 확인하십시오. 참조의 경로를 확인 - 나는 Lucene.Net 강조 프로젝트 버전 2.9.4.1 및 컴파일을 가지고 뭔가

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

Daniel, 어느 경로에서 \ packages \ Lucene.Net.Contrib.3.0.3 \ lib \ net40 \ Lucene.Net.Contrib.Highlighter.dll을 확인해야합니까? 참조를 찾을 수 없습니다. – user1451549

+0

@ user1451549 : Visual Studio에서 '참조'아래에 'Lucene.Net.Contrib.Highlighter'가 있어야합니다. 마우스 오른쪽 버튼을 클릭하고 '경로'의 값을 확인하십시오. –