1
我爲我的應用程序使用Lucene熒光筆2.4.1。我使用熒光筆來獲得最佳匹配片段,並顯示它們。 我調用函數String [] getFragmentsWithHighlightedTerms(分析器分析器,查詢查詢,字符串fieldName,字符串fieldContents,int fragmentsNumber,int fragmentSize)。例如:使用Lucene熒光筆的問題
String text = doc.get("MetaData");
getFragmentsWithHighlightedTerms(analyzer, query, "MetaData", Text, 5, 100);
函數getFragmentsWithHighlightedTerms()被定義如下
private static String[] getFragmentsWithHighlightedTerms(argument list here)
{
TokenStream stream = TokenSources.getTokenStream(fieldName, fieldContents, analyzer);
SpanScorer scorer = new SpanScorer(query, fieldName, new CachingTokenFilter(stream));
Fragmenter fragmenter = new SimpleSpanFragmenter(scorer, fragmentSize);
Highlighter highlighter = new Highlighter(scorer);
highlighter.setTextFragmenter(fragmenter);
highlighter.setMaxDocCharsToAnalyze(Integer.MAX_VALUE);
String[] fragments = highlighter.getBestFragments(stream, fieldContents, fragmentNumber);
return fragments;
}
現在我的麻煩的是,highlighter.getBestFragments()方法返回重複。即如果我顯示前5個片段,不。 1和3是一樣的。我不太明白是什麼造成了這一點。代碼有問題嗎?
重複片段實際上是否多次出現在字段內容中?你可以發佈示例查詢和內容嗎? – KenE 2010-06-08 20:30:58
嗨,謝謝你的回覆。我發現了這個錯誤,它在索引創建中導致重複命中。 – 2010-06-14 08:16:29