0

我在客户端-服务器架构中使用 Lucene 3.5,如下所示:客户端向服务器发出查询。服务器返回查询中使用的术语列表和命中列表,包括由应用程序生成的片段Highlighter到检索到的文档。然后用户可以请求显示完整的文档。该文档来自我正在构建的系统中的另一项服务。

当显示请求的文档时,我想突出显示用于检索它的相同术语。我可以在不涉及 Lucene 基础架构的情况下编写一些其他代码来执行此操作,但由于我已经有了生成代码片段的代码,我希望能够重用它。(干燥等等。)

所以我的问题是如何最好地做到这一点:当需要用搜索结果标记文档时,客户端有一组用于检索文档的术语和检索到的文档的 id。它还知道文档中的哪些字段可以用查询词进行标记。

一些可能的策略:

  1. 创建仅选择所需文档的查询过滤器,然后仅在该文档上重新运行查询。

  2. 不知何故(如何?)构造 aScorer不依赖于 aQuery但可以用我已经拥有的术语播种。

  3. 完全跳过 Lucene 基础架构。

  4. 还有什么?

4

1 回答 1

0

我相信您可以使用TermVector为您的文档编制索引,它会告诉您每个术语在原始文档中的位置。使突出显示变得微不足道。或者简单地重复使用contrib 荧光笔

于 2012-11-25T23:04:08.707 回答