2009-03-17 3 views
1

Lucene highlighter.net API this 버전을 사용 중입니다. 나는 모든 단어가 검색 결과에있는 경우에만 강조 표시된 구를 원합니다. 그러나 그렇게 할 수 없습니다 .... 예를 들어, 입력 검색 문자열이 "선두 통신 회사"인 경우형광펜을 사용하여 구문 검색

SimpleHTMLFormatter htmlFormatter = new SimpleHTMLFormatter(); 

var appData = (string)AppDomain.CurrentDomain.GetData("DataDirectory"); 
var folderpath = System.IO.Path.Combine(appData, "MyFolder"); 

indexReader = IndexReader.Open(folderpath); 

Highlighter highlighter = new Highlighter(htmlFormatter, new QueryScorer(finalQuery.Rewrite(indexReader))); 

highlighter.SetTextFragmenter(new SimpleFragmenter(800)); 

int maxNumFragmentsRequired = 5; 

string highlightedText = string.Empty; 

TokenStream tokenStream = this._analyzer.TokenStream(fieldName, new System.IO.StringReader(fieldText)); 

highlightedText = highlighter.GetBestFragments(tokenStream, fieldText, maxNumFragmentsRequired, "..."); 

return highlightedText; 

것은 도와주세요 : 결과는 단어 "선도"와 "회사"를 포함하지 않는 경우 API는 다음

내가 사용하고 코드입니다 ... 결과에서 "통신"을 강조 !

답변

0

this question에 대한 답변을 확인하십시오. 이제 형광펜은 구문 쿼리를 이해하지 못합니다. QueryTermExtractor을 사용하고 강조 표시 할 단어 목록을 가져옵니다.