【问题标题】:How to use Lucene FastVectorHighlighter on multiple fields?如何在多个字段上使用 Lucene FastVectorHighlighter?
【发布时间】:2014-07-30 01:17:09
【问题描述】:

我有一个基本的搜索工作,我正在使用FastVectorHighlighter 突出显示。当您向荧光笔询问“最佳片段”时,您有一些 getBestFragment(s) 的重载可供选择,documented here。我现在用的是最简单的,像这样:

highlightedText = highlighter.getBestFragment(fieldQuery, searcher.getIndexReader(), 
     scoreDoc.doc, "description", 100)

所以我在“描述”字段中突出显示匹配项。然而,我的查询搜索另一个字段“注释”。如何将其包含在突出显示中?有一个重载需要一个Set<String> matchedFields 和一个String storedField,但我不理解文档。该方法的文档说:

建议所有matchedFields 与storedField 共享相同的源或至少是它的前缀。

这是什么意思?如何索引“notes”和“description”字符串,matchedFieldsstoredField 传递什么?

【问题讨论】:

    标签: lucene lucene-highlighter


    【解决方案1】:

    我认为,该调用旨在针对同一内容的多个索引形式突出显示。也就是说,如果您有一个存储的全文内容字段,但您已经以多种不同的方式对其进行索引以扩展您可以搜索它的方式。也许您有一个使用标准分析的索引字段,另一个使用特定语言的词干提取,另一个使用 ngram,以及另一个索引变音位。

    如果您想突出显示两个不同的存储字段,将调用两次getBestFragment。或者您可以使用不同的荧光笔来同时突出显示多个存储的字段,例如PostingsHighlighter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-12
      • 2018-01-05
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 2012-02-25
      相关资源
      最近更新 更多