0

我在Lucene索引的索引文章通過不同的領域,即titledescriptionlinkpublishDateLucene的MultiFieldQueryParser和熒光筆

我查詢使用MultiFieldQueryParser指數喜歡

+(title:[text]^5.0 description:[text]^4.0 link:[text]^3.0) +publishDate:[20150101 TO 20150531] 

,然後我展示文章作爲搜索結果。 到目前爲止,一切都很好。 現在我想突出顯示標題中的搜索文字,說明

我該如何解決這個問題? 正常熒光筆給我NullPointerException while generrating fragments。 和PostingHighlighter給了我一個Map結果根據領域組合在一起..但我不想那樣。我是整個文檔,並在標題和說明中突出顯示搜索文本。

任何幫助或建議或代碼片段感激..

+0

安置自己的熒光筆的代碼,所以我們可以看到你錯過了什麼。 – user1071777

回答

0

我得到了它使用FieldType的,我想強調,所有領域的工作:

FieldType ft = new FieldType(); 
ft.setIndexed(true);   
ft.setIndexOptionsFieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS); 
ft.setStored(true); 
ft.setStoreTermVectors(true); 
ft.setStoreTermVectorOffsets(true); 
ft.setTokenized(true); 
ft.stored(); 

QueryScorer qs = new QueryScorer(q); 
Highlighter h = new Highlighter(qs); 
highlighter.setTextFragmenter(new SimpleFragmenter(300));   
String highlighted = h.getBestFragment(new StandardAnalyzer(),f,Text);