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);