Lucene多场QueryParser和Highlighter
我通过不同的字段为lucene index中的文章编制索引,如Lucene多场QueryParser和Highlighter,lucene,query-parser,lucene-highlighter,fast-vector-highlighter,Lucene,Query Parser,Lucene Highlighter,Fast Vector Highlighter,我通过不同的字段为lucene index中的文章编制索引,如标题,描述,链接,出版日期 我使用multifiedqueryparser查询索引 然后我将文章显示为搜索结果。 到目前为止一切都很好。 现在我想突出显示标题“描述”中的搜索文本 我该怎么办? 普通的荧光灯在生成片段时会给我NullPointerException。 PostingHighlighter会给我一张地图,根据字段将结果分组。。但我不想这样。我是要返回的整个文档,并在标题和说明中突出显示搜索文本 任何帮助、建议或代码片段都
标题
,描述
,链接
,出版日期
我使用multifiedqueryparser查询索引
然后我将文章显示为搜索结果。
到目前为止一切都很好。
现在我想突出显示标题“描述”中的搜索文本
我该怎么办?
普通的荧光灯在生成片段时会给我NullPointerException。
PostingHighlighter会给我一张地图
,根据字段将结果分组。。但我不想这样。我是要返回的整个文档,并在标题和说明中突出显示搜索文本
任何帮助、建议或代码片段都将不胜感激 我通过使用
字段类型
为我想要突出显示的所有字段实现了该功能:
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);
发布你的荧光灯代码,这样我们就可以看到你遗漏了什么。
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);