我在客户端-服务器架构中使用 Lucene 3.5,如下所示:客户端向服务器发出查询。服务器返回查询中使用的术语列表和命中列表,包括由应用程序生成的片段Highlighter
到检索到的文档。然后用户可以请求显示完整的文档。该文档来自我正在构建的系统中的另一项服务。
当显示请求的文档时,我想突出显示用于检索它的相同术语。我可以在不涉及 Lucene 基础架构的情况下编写一些其他代码来执行此操作,但由于我已经有了生成代码片段的代码,我希望能够重用它。(干燥等等。)
所以我的问题是如何最好地做到这一点:当需要用搜索结果标记文档时,客户端有一组用于检索文档的术语和检索到的文档的 id。它还知道文档中的哪些字段可以用查询词进行标记。
一些可能的策略:
创建仅选择所需文档的查询过滤器,然后仅在该文档上重新运行查询。
不知何故(如何?)构造 a
Scorer
不依赖于 aQuery
但可以用我已经拥有的术语播种。完全跳过 Lucene 基础架构。
还有什么?