【问题标题】:FastVectorhighlighter with External Database带有外部数据库的 FastVectorhighlighter
【发布时间】:2011-05-17 12:16:04
【问题描述】:

我在我的一个项目中使用 Lucene.NET 2.9。我正在使用 Lucene 为文档创建索引并搜索这些文档。我文档中的一个字段包含大量文本,我已将其存储到我的 MS SQL 数据库中。所以基本上我通过 lucene 搜索它的索引,然后从 MS SQL 数据库中获取完整的文档。

我面临的问题是我想在结果中突出显示我的搜索查询词。为此,我正在使用 FastVectorHighlighter。现在这个特殊的荧光笔需要 Lucence DocId 和字段来突出显示字段。问题是这个特定的文本重字段因为没有存储在 lucene 数据库中,所以在我的搜索结果中没有突出显示。

关于如何实现相同的任何建议。我要么将相同的字段添加到我的 lucene 数据库中。它将解决问题,但会使我的数据库非常繁重。其次,如果有一些替代方法来突出显示文本,它将给我很大的灵活性。

感谢您阅读问题, 纳文

【问题讨论】:

    标签: lucene lucene.net fast-vector-highlighter


    【解决方案1】:

    如果您不想将文本存储在 Lucene 索引中,则应使用 Highlighter contrib。

    可以在https://svn.apache.org/repos/asf/incubator/lucene.net/trunk/src/contrib/Highlighter/获取它的最新资源

    【讨论】:

    • 它支持哪些类型的查询?以及与 fastvectorhighlight 相比性能如何。在使用 fastvectorhighlight 创建索引时,这是否也需要偏移条件?
    • 它支持几乎所有的查询,如果我没记错的话,我唯一需要实现的就是 FuzzyQuery。您不需要索引中的偏移量。它比 FastVectorHighlighter 慢得多,因为您需要从另一个来源检索文本,并对其进行标记以使其突出显示
    • 当我搜索一个短语时,荧光笔会在每个术语周围添加格式标记,而不是针对整个查询。是否可以使其针对整个短语添加格式标签。
    • Highlighter 包作者建议的方法是对短语进行后处理以合并突出显示的术语:mail-archives.apache.org/mod_mbox/lucene-java-user/200906.mbox/…
    • 是的,我想在我的客户端(通过正则表达式 + js)上做这件事会容易得多。因为在给定时间我有大约 20-30 个结果,每个结果有 300 个字符,我想这会更容易。你觉得这种做法对吗?
    猜你喜欢
    • 2012-04-13
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多