【问题标题】:Lucene MultiFieldQueryParser and HighlighterLucene MultiFieldQueryParser 和 Highlighter
【发布时间】:2015-08-21 11:05:59
【问题描述】:

我正在通过不同的字段索引 lucene 索引中的文章,即titledescriptionlinkpublishDate

我使用 MultiFieldQueryParser 查询索引,例如

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

然后我将文章显示为搜索结果。 到目前为止一切都很好。 现在我想突出显示标题中的搜索文本,描述

我该怎么办? 正常的 Highlighter 在生成片段时给了我 NullPointerExceptionPostingHighlighter 给了我一个Map,结果根据字段组合在一起。但我不希望这样。 I 是要返回的整个文档,同时在标题和描述中突出显示搜索文本。

感谢任何帮助或建议或代码 sn-p..

【问题讨论】:

  • 发布您的荧光笔代码,以便我们查看您缺少的内容。

标签: lucene query-parser lucene-highlighter fast-vector-highlighter


【解决方案1】:

我通过使用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);

【讨论】:

    猜你喜欢
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 2015-03-20
    相关资源
    最近更新 更多